linux指令学习小笔记,不断更新。

来源:互联网 发布:mac iphone 蓝牙配对 编辑:程序博客网 时间:2024/05/17 02:40

都是一些零散的小知识,在学习中不断完善。


知识一.

 解释执行:执行效率高,但与平台有关

 编译执行:执行效率低,但具有平台无关性

 

知识二.

 gcc –Wall 选项:让GCC提供所有的警告信息。

 

知识三.

 字符常量用单引号括起来,eg‘}’ (注意:单引号只能括一个字符

 

知识四.

 在UNIX系统中,管道是一种先进先出的单向数据通路。利用管道符号“|”,可以把一个命令的标准输出连接到另一个命令的标准输入

    eg  ls /usr | wc –w

    (“-w”选项表示以字为单位进行计数)

 

知识五.

 return 0 成功完成

    return 非0  失败

 

知识六.

 重定向输出:

eg ls –l > lsoutput.txt

(把 ls 命令的输出保存到文件lsoutput.txt中,若文件已存在,则覆盖原文件)

 

eg ls –l >> lsoutput.txt

(把 ls 命令的输出保存到文件lsoutput.txt中,若文件已存在,则将信息添加到文件尾部)

 

知识七.

  linux的通用“回收站”/dev/null来有效地丢弃所有的输出信息,如下所示:

kill –l 1234 > /dev/null 2>&1

(这条命令将把标准输出和标准错误输出都重定向到同一个文件中,注意操作符出现的顺序,这条命令的含义是“将标准输出重定向到文件/dev/null,然后将标准错误输出重定向到与标准输出相同的地方。”)

 

 

知识八.

  grep –l POSIX * | more

(搜索并输出当前目录下包含POSIX字符串的文件名)

 

知识九.

 一般情况下,linux和UNIX很少利用文件扩展名来决定文件的类型。你可以为脚本使用.sh或者其他扩展名,但shell并不关心这一点。大多数预安装的脚本程序并没有使用任何文件扩展名,检查这些文件是否是脚本程序的最好方法是使用file命令,例如,file testshell 或 file /bin/bash。

 

 

知识十.

当编辑完shell文件(例如文件名为test)后,要用chmod +x test命令把它设置为可执行。

 

 

知识十一.

 因为test命令在shell脚本程序以外用的很少,所以那些很少编写shell脚本的linux用户往往会将自己编写的简单程序命名为test。如果程序不能正常工作,很可能是因为它与shell中的test命令发生了冲突。(以后别用test做为文件名了

 

知识十二.

 一般来说,如果需要循环至少执行一次,那么就使用while循环;如果可能根本都不需要执行循环,就使用until循环。

 

知识十三.

 linux指令:touch file_one  (检查文件file_one是否存在,如果不存在就创建它)

                 rm –f file_two  (强制删除文件file_two,忽略不存在的文件,不提示确认)

 

知识十四.

 echo命令总是返回true

 

知识十五.

kill命令:当需要中断一个前台进程的时候,通常是使用< Ctrl+c >组合键;但是对于一个后台进程恐怕就不是一个组合键所能解决的了,这时就必须求助于kill命令。该命令可以终止后台进程。kill命令是通过向进程发送指定的信号来结束进程的。如果没有指定发送信号,那么默认值为TERM信号。TERM信号将终止所有不能捕获该信号的进程。至于那些可以捕获该信号的进程可能就需要使用kill(9)信号了,该信号是不能被捕捉的。
kill命令的语法格式很简单,大致有以下两种方式:
kill [-s 信号 | -p ] [ -a ]进程号 ...
kill -l [信号]
-s 指定需要送出的信号。既可以是信号名也可以对应数字。
-p 指定kill命令只是显示进程的pid,并不真正送出结束信号。
-l 显示信号名称列表,这也可以在/usr/include/linux/signal.h文件中找到。

应用实例一:
1强行中止(经常使用杀掉)一个进程标识号为324的进程:
kill-9324



知识十六.

Linux下NAT操作:

案例

1.源NAT(SNAT)

比如,更改所有来自192.168.1.0/24的数据包的源ip地址为1.2.3.4

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0-j SNAT --to1.2.3.4

系统在路由及过虑等处理直到数据包要被送出时才进行SNAT

有一种SNAT的特殊情况是ip欺骗,也就是所谓的Masquerading,通常建议在使用拨号上网的时候使用,或者说在合法ip地址不固定的情况下使用。比如

# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

2.目的NAT(DNAT)

比如,更改所有来自192.168.1.0/24的数据包的目的ip地址为1.2.3.4

iptables -t nat-A PREROUTING -s 192.168.1.0/24 -i eth1 -j DNAT --to1.2.3.4

系统是先进行DNAT,然后才进行路由及过虑等操作。

有一种DNAT的特殊情况是重定向,也就是所谓的Redirection,这时候就相当于将符合条件的数据包的目的ip地址改为数据包进入系统时的网络接口的ip地址。通常是在与squid配置形成透明代理时使用,假设squid的监听端口是3128,我们可以通过以下语句来将来自192.168.1.0/24,目的端口为80的数据包重定向到squid监听

端口:

iptables -t nat-A PREROUTING -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT--to-port 3128




知识十七.

linux  指令:ifconfig -a              -----在所有接口报告的选项
            netstat -in              -----n e t s t a t( 1 )命令也提供系统上的接口信息。- i参数将打印出接口信息,-n参数则打印出I P地址,而不是主机名字。
            arp -a     -----用来检查arp高速缓存存放了最近I n t e r n e t地址到硬件地址之间的映射记录,参数-a的意思是显示高速缓存中所有的内容。

添加路由表中的表项:
route add default sun 1
route add slip bsdi 1
第3个参数(d e f a u l t和s l i p)代表目的端,第4个参数代表网关(路由器),最后一个参数代表路由的度量( m e t r i c )。r o u t e命令在度量值大于0时要为该路由设置G标志,否则,当耗费值为0时就不设置G标志。


搜索无线接入点:
iwlist wlan0 scanning
接入指定无线接入点:
iwconfig wlan0 essid "NETGEAR_11g(1)"

数据包通过指定的网卡出去:
route add 192.168.0.1 dev wlan0
删除上面的操作:
route del 192.168.0.1 dev wlan0
设置IP
sudo ifconfig eth0 133.133.133.190 netmask 255.255.255.0
这样就算设置好了网卡eth0的IP地址和子网掩码


重启网卡:/etc/init.d/networking restart


网卡自动获取IP:dhclient wlan0


知识十八

每个账号都可以有多个用户组的支持


知识十九

chgrp:改变文件所属用户组

例:chgrp -R users install.log

其中-R表示进行递归(recursive)的持续更改,即连同子目录下的所有文件、目录都更新成为这个用户组。常常用在更改某一目录内所有的文件情况。

chown:改变文件所有者

chmod:改变文件的权限

各权限的分数:r-4   w-2   x-1

例: -rwxrwx---     分数则是owner = rwx = 4+2+1 = 7

group = rwx = 4+2+1 = 7

others=  ---  = 0+0+0 =0

例:chmod 777 .bashrc


知识二十    目录的相关操作

cd:切换目录

pwd:显示当前目录

mkdir:新建一个新的目录

rmdir:删除一个空的目录


. 代表此层目录

.. 代表上一层目录

- 代表前一个工作目录

~ 代表“目前用户身份”所在的主文件夹

~accout 代表accout这个用户的主文件夹


文件默认权限:umask

文件隐藏属性:chattr    lsattr


知识二十一 

Linux系统中,标准输入的文件结束符是控制字符Ctrl-D。

原创粉丝点击