unix命令个人整理:)

[ar命令]
ar -rv file *
打包file目录下的所有文件为file包.
ar -t file
列出包file下的所由文件.
ar -p file xxx.xx
显示file包内的xxx.xx文件的内容.
ar -rav xxx.xx file /root/bb
将/root/bb这个文件加入到包file的xxx.xx文件之后.
ar -dv file bb
删除打包文件中的一个文件bb

[gawk命令]
文字处理相关的命令
参数
-F'字符' 以指定的字符作为分隔符.
-help 显示帮助界面.
-version 显示版本信息.

输出条件
index(字符串,子字符串) 列出字符串中的子字符串所在的位置.
length(字符串) 列出字符串的长度
print(字符串) 列出字符串
split(字符,数组,字符串) 将字符串使用分隔字符分割后,存入数组中.
substr(字符串,m,n) 列出字符串中,从位置m到位置n的字符.

awk '{print}' /etc/passwd
显示/etc/passwd的内容

awk -F':' '{print $1 $6}' /etc/passwd
将/etc/passwd中的内容以冒号分隔,取出第1与第6列.

awk -F':' '{print length(substr($6,1,4))}' /etc/passwd
将/etc/passwd中的第6列的内容取出,计算他的长度输出.

[解开bz2格式的压缩文件]
-f 有同文件名的文件时,强迫覆盖.
-k 解压缩后,不删除原来的压缩文件.默认会删除.
-v 列出详悉的信息.
-s 解压缩时降低内存的使用量.
-V或-L 显示版本信息

bunzip2 test/*
将test目录下的所有bz2文件解开

bzip2 test.tar
压缩test.tar这个文件

bzip2 -d test.tar.bz2
解压缩上例所压缩的文件

[cat命令]
-A 显示全部,效果等同于"-vET" 的参数
-b 在所有的非空白行上标示编号
-e 等同于 "-vE"
-E 在每一行的最后标上"$"符号.
-n 在所有的行前标示编号.效果与-b相同,但会包含空行.
-s 当出现连续两行以上的空白行时,会仅显示一行空白.
-t 等同于"-vT"
-T 将TAB键以"^I"来表示.
-v 除了LFD与tab字符之外,其他的控制字符均以"^"表示.
-help 显示帮助界面.
-version 显示版本信息.

cat -b /etc/hosts
显示/etc/hosts的内容,并在非空白行上标示编号.

cat -ET /etc/hosts
显示/etc/hosts的内容,并在每行结束处加上$符号,且将tab字符以^I代替.

[chattr命令]
-R 将该目录下的文件与子目录一并处理.
-V 显示执行的过程
-v 设置文件的版本

a 使得该文件只能以附加方式写入,而无法直接修改.
A 不修改文件的最后存取时间.
c 将文件的数据以压缩方式存取.
d 使用该参数时,执行dump时不会备份该文件.
i 不得修改该文件,即使是文件拥有者.
s 完整的删除文件.使用此参数会将该文件所在的区块以00填满.
S 即时的将文件写回磁盘,而不放在缓冲区.
u 会自动备份数据,预防意外删除.

增加文件的属性,使之可以被附加数据,而无法被修改.
chattr +a testfile
lsattr testfile
更改文件的属性,使之无法被删除
chattr =i testfile
lsattr testfile

[chmod改变文件或目录的权限]
chmod
-c 相同于-v,但只显示变动的部分.
-f 不显示错误信息.
-R 所有该目录下的文件与子目录均会处理.
-v 显示完整的执行过程.
-help 显示在线帮助界面.
-version 显示版本信息.

帐号部分
u:文件或是目录的所有者.
g:文件或是目录的所属组.
o:其他的用户.
a:全部用户.

权限部分
r:读取权限,数字为4;
w:写入权限,数字为2;
x:执行权限,数字为1;
-:没有权限,数字为0;
t:sticky bit,数字为1;

示例
改变文件testfile的属性,文件创建者拥有可读,可写,可执行,文件组内的用户拥有可读,可执行,其他用户拥有可执行的权限.
chmod u=rwx,g=rx,o=x testfile
与八进制数字功能相同
chmod 751 testfile

[chown改变文件或目录的拥有者或组]
-c 类似于-v,但只显示变动的部分.
-f 不显示错误信息.
-h 只对符号连接的文件修改,不会修改原始文件.
-R 会将该目录下的所有文件与子目录一起处理.
-v 显示完整的处理过程.

chown guest testfile
更改文件testfile为guest用户所有.

chown :users testfile
把文件testfile的所属组改为users

[cmp比较两个文件的差异]
-b 列出相差的字节数
-i 略过前面数行,或是略过从a到b行.
-l 列出所有不同的地方.
-n 限止比较的字节数.
-s 安静模式,不做任何输出.
-v 显示版本信息
-help 显示帮助界面.

cmp testfile testfile1

[过滤保留字符]
-b 过滤所有的控制字符,包含RLF与HRLF
-f 过滤RLF,但保留HRLF
-l 定义内存中缓冲区行数,默认值为128行.
-p 强迫不过滤未知的字符.
-x 以多空格来表示tab

将testfile当中的RLF字符过滤
col -f < testfile

将cat的在线帮助输出至文件cat.txt,并过滤所有控制字符.
man cat | col -b >testfile


[comm比较文件内容]
-1 不显示在文件1出现过的行.
-2 不显示在文件2出现过的行.
-3 不显示同时在文件1与文件2出现过的行.
-help 显示帮助界面
-version 显示版本信息

comm testfile testfile2


[compress压缩或是解压缩扩展名为.Z的文件]
-b 压缩比率,数值介于9~16.数值越高,所压缩出的文件越小,但时间会越久.
-c 压缩后保留原始文件,默认不保留.
-f 强制压缩文件
-r 处理目录下的所有文件与子目录.
-v 显示完整的压缩过程.
-V 显示版本信息.

将文件file1压缩为扩展名为.Z的文件.
compress file1

列出压缩文件file1的过程
compress -v file1

[cp复制文件或目录]
-b 覆盖时会先备份,备份文件会在文件末尾加~
-f 强迫复制
-i 会话模式,覆盖文件前会询问用户.
-p 保留原有文件的属性.
-r 非文件或是目录则视为一般文件处理.
-R 保留特殊文件的属性.
-u 仅复制时间差异的文件.

将文件testfile复制为testfile1
cp testfile testfile1

将/tmp目录复制到当前目录下
cp -r /tmp ./

复制文件时,保留原文件的所有属性
cp -p /usr/bin/passwd ./

仅复制来源文件较新的文件
cp -u file1 file2

若原文件已经存在,则产生备份文件
cp -b /etc/hosts ./testfile

[cut获取文件中每一行的指定范围]
-b 输出指定的字节数或是范围
-c 输出指定的字节数或是范围
-d 指定分隔符的字符
-f 设置输出的范围
-s 若该行没有分隔栏字符,则不显示该行.
-help 显示帮助界面
-version 显示版本信息.

通过cut的选取,将前3个字母抽出.
cut -b 1-3 /etc/passwd

使用冒号(:)为分隔栏字符,如下所示.
cut -f 1 -d : /etc/passwd

[dd转换及输出数据]
bs=bytes数 同时设置ibs(输入)与obs(输出)设为指定的大小.
cbs=bytes数 为block与unblock指定转换的区块大小.
conv=参数 
count=区块数 仅读取指定的区块数目.
ibs=bytes数 每次读取的字节数
if=文件  从文件读取数据
obs=bytes数 每次输出的字节数
of=文件  输出到文件
seek=区块数 开始输出时所跳过的区块数.
skip=区块数 开始读取时所跳过的区块数.
-help  显示帮助界面.
-version 显示版本信息.

将文件file.txt写到磁盘中.
dd if=file.txt of=/dev/fd0

制作启动盘
dd if=boot.img of=/dev/fd0 bs=1440k

将文件in.txt当中的英文字从小写转为大写后,输出到out.txt
dd if=in.txt of=out.txt conv=ucase

[df显示文件系统的使用状况]
-a 显示所有的文件系统,包含大小为零的文件系统.
-h 以较易读取的方式显示.
-H 与-h类似,但以1000B为换算单位,而非1024B
-i 显示inode的信息.
-l 只显示本地端的文件系统
-k 以1KB为单位显示,而非512B
-m 以1MB为单位显示.
-P 使用POSIX输出.
-t 仅显示指定的文件系统.
-T 显示文件系统类型.
-x 文件系统类型  仅显示指定的文件系统
-block-size=指定的大小  以指定区块大小来显示.
-no-sync 显示文件系统用量前,不执行sync
-help 显示帮助界面.
-sync 显示文件系统用量前,执行sync
-version 显示版本信息.

[GCC编译]
-c 编译或解释原始文件,但不进行连接.
-S 编译后就停止,不进行解释.
-E 进行完预处理器的操作后停止,不进行编译的操作.
-o 指定输出的文件名,默认为a.out
-v 显示版本信息.
-help 显示帮助界面.


[gpasswd帐号管理]
-a 增加用户.
-A 设置组管理员.
-d 删除用户
-M 定义成员或管理员或成员的所有权利.
-r 系统管理者可用来删除组的密码.

增加一个用户到user组.
gpasswd -a aaa user

将aaa从user这个组中删除.
gpasswd -d aaa user

将aaa设为user这个组中的管理员.
gpasswd -A aaa users

[grep搜索文件中符合条件的字符串]
-a 不忽略二进制数据.
-A 搜索符合字符串后依指定行数之后行数的所有显示.
-b 显示符合模板样式的那一行前,标示出该行第一个字的位编号.
-B 搜索符合字符串后依指定行数之前行数的所有显示.
-c 计算符合模板条件的行数.
-C 显示符合模板样式的该行与该行之后指定行数内容.
-d 当指定搜索的是目录而非文件时,必须使用此参数,否则会回报信息并停止操作.
-e 搜索符合指定字符串的文件内容.
-E 模板样式视为延伸的普通表示法来使用.
-f 指定模板文件
-F 模板样式视为固定字符串列表.
-G 模板样式视为普通表示法来使用.
-h 显示符合模板样式前,不标示该行所属文件名称.
-H 显示符合模板样式前,不标示该行所属文件名称.
-i 忽略字符大小写.
-l 列出文件内容符合指定模板的文件名称.
-L 列出文件内容不符合指定模板的文件名称.
-n 显示符合模板的该行前,标示出该行的行数.
-q 不显示任何信息.
-r 效果与参数"-d recurse"相同.
-s 不显示错误信息.
-v 搜索不含该字符串的文件内容.
-V 显示版本信息.
-w 显示全字符合的行.
-x 显示全行符合的行.
-y 效果与参数"-i"相同.
-help 显示帮助界面.

[groupadd建立组]
-f 强制建立已存在的组.
-g 设置新建立组的标识符.
-o 重复使用组标识符.
-r 建立系统组.

建立一个名为donub的组.
groupadd donub

建立一个名为abc的系统组
groupadd -r abc

[groupdel删除组]
删除名为donub的组
groupdel donub

[groupmod改变组标识符或名称]
-g 设置组标识符.
-n 改变组名称.
-o 重复使用组标识符.

将组abc的名丞改为donub
groupmod -n donub abc

[groups显示用户所属的组名称]
显示用户donub所属的组名称.

[gunzip解压缩文件]
-a 使用ASCII文字模式.
-c 压缩后文件输出至标准输出设备,不改变源文件.
-f 强制解开压缩文件
-h 显示帮助界面.
-l 显示压缩文件相关信息.
-L 显示版本及版权信息.
-n 压缩文件内含有原文件名称及时间,解压缩时忽略.
-N 压缩文件内含有原文件名称及时间,解压缩时回复至解开文件内.
-q 不显示警告信息.
-r 指定目录下的所有文件及子目录一并处理.
-S 更改压缩字尾字符串.
-t 测试压缩文件.
-v 显示指令执行过程.
-V 显示版本信息.

显示现行目录下所有的gzip文件的信息.
gunzip -l *.gz

将123.tar.gz解压缩,并显示过程.
gunzip -v 123.tar.gz

[gzip压缩文件]
-a 使用ASCII文字模式.
-c 压缩后文件输出至标准输出设备,不改变源文件.
-d 解压缩文件.
-f 强制压缩文件.
-h 显示帮助界面.
-l 显示压缩文件相关信息.
-L 显示版本及版权信息.
-n 压缩文件时,不存储原文件的文件名称及修改时间.
-N 压缩文件时,存储原文件的文件名称及修改时间.
-q 不显示警告信息.
-r 指定目录下的所有文件及子目录一并处理.
-S 更改压缩字尾字符串.
-t 测试压缩文件.
-v 显示指令执行过程.
-V 显示版本信息.
-best 压缩率最大.
-fasr 压缩率最小.

压缩123.txt和223.txt,并显示压缩过程.
gzip -v 123.txt 223.txt

显示当前目录下所有的gzip文件的信息.
gzip -l *.gz

[head输出文件内容最前面的部分]
-c 显示数量 设置显示数量以B为单位.
-n 显示行数 设置显示行数.
-q 不显示文件名称.
-v 显示文件名称.
-help 显示帮助界面.
-version 显示版本信息.

显示1.txt的前3行.
head -n 3 1.txt

显示1.txt的前20个字节.
head -c 20 1.txt

[kill对程序下达信号或终止程序]
-l 列出所有信号的名称.
-V 显示版本信息.

列出所有的信号与代码
kill -l

[ldd列出与文件有关的分享函数库]
-d 重新定位并报告遗失的对象文件.
-r 重新定位并报告遗失的对象数据与函数.
-v 显示完整执行过程.
-V 显示版本信息.
-help 显示帮助界面.

[less显示文件内容]
-e 在文件显示结束后,自动退出,而不需键入q
-f 强迫打开非一般文件.
-g 不特别标示使用搜索指令的关键词.
-i 搜索时忽略大小写.
-N 在每一行开头显示行号.
-Q 关闭警告音.
-s 将连续的空行以一行空行表示.
-S 过长的行不换行显示.
-x n 以Tab字符取代为n个空格符.

执行less当中的指令说明.
b 往后滚动一页.
d 往后滚动半页.
h 显示帮助界面.
Q 退出.
R 重新显示界面,不读取缓冲区的数据.
u 往前滚动半页.
y 往前滚动一行.
回车键 滚动一行.
空格键 滚动一页.
/ 字符串 查找指定字符串

使用less查勘vsftpd.conf这个文件
less vsftpd.txt

[ln建立文件之间的连接]
-d,-F 允许系统管理员建立目录的连接.
-f 要建立的连接已经有同名的存在时,强制覆盖.
-i 要建立的连接已经有同名的存在时,询问用户是否覆盖.
-n 要建立的连接已经有同名的存在时,不覆盖原文件.
-s 符号连接,以连接的方式,而不复制文件.
-v 显示详悉的过程.

建立file1的硬连接,并取名为file2
ln file1 file2

建立软连接,并将源文件删除,看看结果.
ln -s file1 file2

[locate在系统中搜索包含字符串的文件]
-i 搜索字符串时,忽略大小写.
-n N 显示N行.
-q 安静模式,不显示错误信息.
-u 在根目录下新建locate的数据库.
-U 目录 在指定的目录下新建locate的数据库.
-v 显示完整过程.
-help 显示帮助界面.
-version 显示版本信息.

搜索含有nslookup的文件
locate nsloopup

搜索含有cat的文件,并仅显示前10行.
locate -n 10 cat

[lynx在终端机上浏览网页]
-accept_all_cookies 接受所有的cookies.
-anonymous 不以anonymous登录任何网站.
-auth=ID:PASSWD 设置认证ID和密码(PASSWD).
-cache=NUMBER 设置放入缓冲区的文件数,默认是10.
-case 在搜索字符串时,和字母大小写有关.
-ftp 关闭ftp的功能.
-index=URL 指定首页的网址.
-nobrowse 不浏览目录.
-nocolor 关闭色彩.
-noexec  不执行任何本机的程序,这是默认值.
-reload  更新proxy服务器的缓存盘,这只是对首页有效.
-color  如果支持,会激活颜色模式.
-version 显示版本信息.

通过lynx在终端机上浏览网页
lynx tw.yahoo.com

[make维护或是编译程序组]
-C 目录  切换到指定的目录后执行后续操作.
-d  显示调试模式.
-e  优先使用环境变量,而不优先采用Makefile内定的变量.
-f 文件名称 指定Makefile的文件位置.
-i  执行时忽略错误信息.
-k  发生错误仍尽可能的继续执行编译操作.
-l 平均负载 在系统低于平均负载时才会执行编译操作.
-n  显示要执行的操作,但不会真的执行.
-o 文件  不编译指定的文件.
-p  显示makefile当中的规则与变量名称,然后编译.
-q  不做任何编译操作,只显示返回值.
-s  执行时不显示任何输出.
-t  仅更改文件的时间标记,而不会真的改变文件.
-v  显示版本和版权信息.

[md5sum计算并检验MD5的号码]
-b 使用二进制模式检验文件.
-c 检验文件内MD5的正确性.
-t 使用文字模式检验文件.
-w 对于不能计算MD5的部分,列出警告信息.
-help 显示帮助界面.
-version 显示版本信息.

检验file1文件的MD5 sum
md5sum file1

检验file2里头所记载的MD5 sum是否正确
md5sum -c files2

[mke2fs将分区格式化为ext2或ext3的文件系统]
-b 区块大小 指定区块大小,以字节为单位.
-c 检验区块的正确性.
-f 不连续区块 指定不连续区块的大小,以字节为单位.
-i bytes 指定每个inodes的大小,以字节为单位.
-L 卷标  指定文件系统的卷标名称.
-j  建立ext3日志式的文件系统.
-m 保留比率 指定对硬盘的保留比率,默认为95%
-M 记录最近挂接的记录.
-n 并不真的执行格式化,仅显示格式化的过程.
-N inode的个数 指定inode的个数.
-q 安静模式,不显示任何输出,通常用于script的编写.
-v 显示完整过程.

将分区格式化成ext2的文件系统
mke2fs /dev/hda1

将分区格式化为ext3的文件系统
mke2fs -j /dev/hda3

[mkswap新建SWAP区域]
-c 新建SWAP区块前,先做错误的检查.
-f 强迫进行,即使有不合理的参数.
-p 大小 指定分页文件的大小,以B为单位.
-v0 新建旧型的SWAP区块.
-v1 新建新型的SWAP区块.

新建一个SWAP分区
mkswap /dev/hda2

[mount挂接文件系统]
-a 挂接所有列在/etc/fstab的文件系统.
-f 仿真mount的操作,而非真的挂接文件系统.
-h 显示帮助界面.
-I 加上ext2,ext3,xfs的文件系统卷标.
-L 挂接特定名称的文件系统.
-n 不将挂接的信息写到/etc/fstab之中.
-o 
-r 将文件系统挂接为只读模式.
-t 文件系统类型 支持的格式包括:adfs,affs,autofs,coda,coherent,cramfs,devpts,efs,ext,ext2,ext3,hfs,hpfs,iso9660,jfs,minix
 ,msdos,ncpfs,nfs,ntfs,proc,qnx4,ramfs,reiserfs,romfs,smbfs,tmpfs,udf,ufs,umsdos,vfat,xenix,xfs,xiafs.
-v 显示完整过程.
-V 显示版本信息.
-w 将文件系统挂接为可擦写模式,这是默认的模式.

将分区/dev/hda6挂接在/opt上,并指定文件系统为xfs
mount -t xfs /dev/hda6 /opt

将分区/dev/hda6挂接在/opt上,并指定文件系统为ext3,并且不接受SUID文件的执行.
mount -t ext3 -o nosuid /dev/hda6 /opt

挂接NFS服务器所分享的文件系统
mount -t ext3 server1://data /opt

[netstat查询网络的当前状态]
-a 显示所有的信息,包括一般信息,socket信息,路由表,网络接口等.
-c 将网络状态持续列出.
-e 显示其他相关信息.
-l 显示正在listen状态的socket
-M 显示隐藏的联机,必需支持ip伪装的功能才能使用此参数.
-a 直接以IP地址显示,不经过名称服务器.
-p 显示与socket相关的程序名称及PID
-r 显示系统路由表.
-t 仅显示TCP通讯协议的联机状态.
-u 仅显示UDP通讯协议的联机状态.
-v 列出完整的执行过程.
-w 仅显示RAW通讯协议的联机状态.
-help 显示帮助界面.

显示当前TCP的联机状态.
netstat -nt

显示当前TCP应用程序所使用的端口号
netstat -apt

显示路由列表
netstat -r

[pkill传送信号给指定的程序]
-f 显示完整的文件名称.
-g pgrp 显示符合pgrp组代码的程序.
-n 列出符合条件中最新的程序.
-o 列出符合条件中最旧的程序.
-P ppid 列出符合指定父程序的程序码.
-t term 列出符合终端机号码的程序.
-u euid 列出符合用户代号的程序.
-v 列出不符合条件的程序.
-x 列出完全符合条件的程序.

将正在执行且含有vsftp的程序终止.
pkill -9 vsftp 9是强制终止程序的信号.

[ps显示当前程序的状态]
-a 选择同一个TTY之下,除了程序拥有者外
-A 选择所有的程序.
-C 由命令行选择.
-d 选择所有的程序,除了忽略的程序拥有者.
-e 选择所有的程序.
-N 反向选择.
-p 由PID选择.
-r 限制正在执行程序的输出.
-s 由给定的程序选择.
-t 由tty选择.
-T 选择当前终端机的所有程序.
-U 由特定的用户选择.
-x 选择程序且不含正在控制的TTY

输出格式参数
-c 对于-l参数,不同的显示方式.
-f 列出完整列表
-F 特别完整的格式.
-l 长列表输出.
-j 任务格式输出.
-o 用户自定义输出.
-s 使用信号格式输出.
-v 使用虚拟内存格式输出.

显示当前用户所执行的程序.
ps

使用长列表显示所有用户的程序.
ps -ef


[stat显示文件或文件系统的状态]

-f 显示文件系统,而非单独的文件.
-L 显示连接的文件.
-t 以简单的模式列出信息.
-help 显示帮助界面.
-version 显示版本信息.

显示文件report.txt的状态
stat report.txt

显示文件系统/dev/hda1的状态
stat -f /dev/hda1

[tar打包文件]
-A 在存在目录的后面增加打包文件.
-b 设置每一记录区块数,一个区块为512B
-c 建立新打包文件.
-C 目录 切换到指定的目录.
-d 对照打包文件和文件内容的不同处.
-f 指定打包文件文件名与位置.
-h 直接连接所指向的文件.
-i 省略打包文件中0字节的文件.
-j 处理用bzip2格式压缩的文件.
-k 打开打包文件时不覆盖原有的文件.
-K 从指定的文件开始还原.
-l 新建打包文件时,必需持在相同的文件系统中.
-L 设置存储媒体的容量,以1024B为单位.
-m 还原文件时,文件修改时间不变.
-M 处理文件内容时,采用分卷模式.
-N 以指定日期更新文件存到打包文件中.
-O 将从打包文件还原的文件输出至标准输出设备.
-p 用原来文件权限还原文件.
-P 让文件使用的名称,包含"/".
-r 新建打包文件在存在文件的后面.
-s 还原文件顺序,与存放在打包文件顺序相同.
-t 列出打包文件的内容.
-u 仅将时间标志较新的文件放进打包文件中.
-v 显示指令执行过程.
-V 建立使用指定名称的打包文件.
-w 处理文件时,需和用户确认.
-W 数据写到打包文件后,需确认是否有误.
-x 解开打包文件中的文件.
-X 指定FILE,用tar排除符合条件的文件.
-Z 通过compress处理打包文件.
-z 通过gzip处理打包文件.

将/etc/mail下的所有文件打包为mail.tar文件.
tar -cvf mail.tar /etc/mail

将之前执行范例的打包文件解开到当前目录之下.
tar -xvf mail.tar

将之前执行范例的打包文件解开到/tempdir之下.
tar -xvf mail.tar -C ./tempdir/

[tcpdump显示网络上TCP的联机状态]
-A 使用ASCII列出每个信息.
-c 收到计算包退出.
-d 将编译过的包编码以易读的方式显示后退出.
-i 接口 指定tcpdump监听的接口.
-n 不要将IP address反解成domain name
-q 快速输出模式.显示较少的信息,来增快显示的速度.
-r 文件名称 从文件中读入包信息.
-t 不要列出时间信息.
-v 显示更完整的信息.
-x 将输出信息以十六进制显示.
-X 以十六进制且以ASCII的格式显示,这对于了解新的通讯协议很有帮助.

显示 eth0这个网络设备上的包状态
tcpdump -i eth0

[touch更改文件的时间标记]
-a 更改文件被存取的时间.
-c 不要新建文件.
-m 更改文件被修改的时间.
-t 时间 时间格式为MMDDhhmm
-help 显示帮助界面.
-version 显示版本信息.

新建一个名为test1的文件
touch test1

更改已存在文件 /etc/mail/access的时间标记
touch /etc/mail/access

[tracepath追踪网络联机的路径]
追踪联机到163.14.157.13的路径
tracepath 163.14.157.13

[umask设置新建文件的权限屏蔽]
-p 列出umask的字样.
-S 以文字来表示权限屏蔽下的权限设置.

显示文件权限
umask

用较易阅读的方式显示文件权限.
umask -S

[umount卸载文件系统]
-a 将有记录在/etc/mtab内所有已挂上的文件系统全部如下.
-h 显示帮助界面.
-n 卸挂系统但是不在/etc/mtab中记录.
-r 假设卸挂失败,以只读的方式挂载.
-t 文件系统类型 只卸挂指定的文件系统.
-v 显示详细说明.
-V 显示版本信息.

卸下已挂上的目录/cdrom
umount /cdrom

卸载所有定义在/etc/mtab内的文件系统
umount -a

[uptime显示系统已经运行的时间]

显示系统已激活时间
uptime

[vmstat显示虚拟内存的状态]
-a 显示使用与非使用中的虚拟内存状态.
-d 显示磁盘信息.
-f 显示开机后fork的用量.
-s 显示完整的数据与统计
-S 单位 单位为k,K,m,M.
-V 显示版本信息.

显示当前虚拟内存的使用状态.
vmstat

显示磁盘的使用状态
vmstat -d

显示多样的数据与统计.
vmstat -s

[wget从指定的网址下载文件]
-a 记录文件 将所有指令的执行过程记录到记录文件内.
-b   使用后台操作下载文件.
-B 基础连接 设置模板的连接位置. 
-c  继续赏赐未完成的下载.
-d  调试模式.
-e 指令  激活wget后就执行该指令.
-F  将读入的文件视为HTML格式.
-h  显示帮助界面.
-i 文件  从指定的文件读取URL
-nc  不覆盖旧有的文件.
-nv  下载的文件存在现行目录之下,文件明若有重复,则依序加上扩展名1,2,3.
-o 记录文件 同-a,但当记录文件已存在,wget会覆盖该文件. 
-O 输出文件 设置输出文件的名称.
-q  不显示指令执行过程.
-t 尝试次数 设置最大尝试次数,若为0则为无限制.
-v  显示完整的执行过程.
-V  显示版本信息.
下载www.126.com网站首页的数据.
wget www.126.com

[gcc编译]
gcc选项

gcc [options] [filenames]

选项
-x language 指定使用的语言(C,C++或汇编)
-c  只对文件进行编译和汇编,但不进行连接.
-S  只对文件进行编译,但不汇编和连接.
-E  只对文件进行预处理,但不编译汇编和连接.
-o [file1] file2 将文件file2编译成可执行文件file1
-I library  用来指定所使用的库文件.
-I directory 为include文件搜索指定目录.
-w  禁止警告信息.
-pedantic  严格要求符合ANSI标准.
-Wall  显示附加的警告信息.
-g  显示排错信息以便于调试.
-p  产生prof所需的信息.
-pg  产生gprof所使用的信息.
-O(-O1)  对编译出的代码进行优化.
-O2  进行比-O高一级的优化.
-O3  产生更高级别的优化.
-v  显示g c c 版本.
-m***  根据不同的微处理器进行优化.

如果安装多个版本的g c c ,并且要强制执行其中某个版本,可以用命令通知系统用户要使用的版本,例如:
gcc -V 2.6.3 -v

指定查找路径
-I和-选项
指定查找路径
gcc -Wall -I/usr/inlcude/zw -o test test.c
连接库文件
gcc -Wall -L/usr/X11R6/lib -o test test.c -X11

库显示ldd
一个可执行文件可能要使用一些共享函数库,可以通过ldd工具显示它们,ldd是Library Dependency Display的缩写.
ldd ./test

[make使用指南]
makefile
显示规则
隐士规则
变量定义
文件指示
注释

include关键字可以把别的makefile文件包含进来,这类似于C语言的#include,make命令开始时会寻找include所指出的其他makefile
文件,并把包含内容安置在当前的位置.
如果make执行时,有-I或--include-dir参数,make就会在这个参数所指定的目录下寻找.

如果要让make不理会哪些无法读取的文件,而继续执行,可以在include前加一个减号"-".如-include <filename>

通配符
"*"
"?"
"[...]"

如果要让通配符在变量中展开,也就是让objects的值成为所由[.o ]的文件名的集合,如:
objects:=$(wildcard *.o)


文件搜索
VPATH
vpath关键字
vpath <pattern> <direcories>
vpath <pattern>
vpath
vpath使用方法中的<pattern>需要包含"%"字符.
例如
vpath %.c foo
vpath % blish
vpath %.c bar
表示以.c 结尾的文件,先在foo目录,然后在blish目录,最后在bar目录中进行搜索.

伪目标.PHONY:声明伪目标.

静态模式
<targets...>:<target-pattern>:<prereq-patterns...>
 <commands>
 ...
targets定义了一系列的目标文件,可以使用通配符,表示目标的一个集合.
targets-pattern指明了targets的模式,也就是目标集模式.
prereq-patterns是目标的依赖模式,他对target-patterns形成的模式再进行一次依赖目标的定义.

自动化变量
$< 表示所有的依赖目标集.
$@ 表示所由的目标集.

主意:如果要让一条命令的结果应用在下一条命令上,应该使用分号分隔这两条命令.
例如:
exec:
cd /home/rabo
pwd

exec:
cd /home/rabo;pwd

嵌套makefile
在一个大的工程中,如果要用到嵌套的makefile

需要主意,两个系统级的环境变量,一个是SHELL,一个是MAKEFLAGS,这两个变量不管是否进行输出,总是要被传递到下层makefile文件中.特别是MAKEFLAGS变量,其中包含了make的参数信息,如果要执行总控makefile文件时有make参数或是在上层makefile文件中定义了这个变量,MAKEFLAGS变量将会是这些参数.

环境变量
如果在环境变量中设置了"CFLAGS"环境变量,就可以在所有的makefile文件中使用这个变量了.这对于使用统一的编译参数有比较大的好处.如果makefile文件中定义了CFLAGS,则会使用makefile文件中的这个变量.如果没有定义,则会使用系统环境变量的值.

目标变量
可以为某个目标设置局部变量,这种变量称为目标变量,它可以和全局变量同名,因为它的作用范围只在这条规则以及连带规则中,所以其值也只在作用范围内有效.

prog:CFLAGS=-g
 prog:prog.o foo.o bar.o
  $(gcc) $(CFLAGS) prog.o foo.o bar.o
 prog.o:prog.c
  $(gcc) $(CFLAGS) prog.c
 foo.o foo.c
  $(gcc) $(CFLAGS) foo.c
 bar.o bar.c
  $(gcc) $(CFLAGS) bar.c
  
在这个示例中,不管全局的$(CFLAGS)的值是什么,在p ro g 目标以及其所引发的所有规则中,$(CFLAGS)的值都是-g

使用条件判断ifeq,ifneq,ifdef,ifndef
ifeq(param1,param2)
 command1
else
 command2
endif

字符串处理函数
$(subst <from>,<to>,<text>)
把字符串<text>中的<from>字符串替换为<to>

$(patsubst <pattern>,<replacement>,<text>)
模式字符串替换函数
$(patsubst %.c,%.o,far.c.c bar.c)

$(strip <string>)
去空格函数
去掉<string>字符串中开头和结尾的空字符.

$(findstring <find>,<in>)
查找字符串函数,在字符串<in>中查找<find>字符串.

$(filter <pattern...>,<text>)
以<pattern>模式过滤<text>字符串中的单词,保留符合模式<pattern>的单词.

$(filter-out <pattern...>,<text>)
反过滤函数,以<pattern>模式过滤<text>字符串中的单词,去除符合模式<pattern>的单词.

$(sort <list>)
给字符串<list>中的单词排序
备注:sort函数会去掉<list>中相同的单词.

$(word <n>,<text>)
取字符串<text>中的第<n>个单词

$(wordlist <s>,<e>,<text>)
从字符串<text>中取从<s>开始到<e>的单词串.

$(words <text>)
单词个数统计函数,统计<text>中字符串中的单词个数.

$(firstword <text>)
取字符串<text>中的第一个单词.

文件名操作函数
$(dir <names...>)
取目录函数,从文件名序列<names>中取出目录部分.目录部分是指最后一个反斜杠"/"之前的部分.
$(dir src/foo.c hacks)反回值是"src/ ./"

$(notdir <names...>)
取文件函数,从文件名序列<names>中取出非目录部分.非目录部分是指最后一个反斜杠"/"之后的部分.
$(notdir src/foo.c hacks)返回值是"foo.c hacks".

$(suffix <names...>)
取后缀函数,从文件名序列<names>中取出各个文件名的后缀.
$(suffix src/foo.c src-1.0/bar.c hacks)返回值".c .c".

$(basename <names...>)
取前缀函数,从文件名序列<names>中取出各个文件名的前缀部分)
$(basename src/foo.c src-1.0/bar.c hacks)返回值是"src/foo src-1.0/bar hacks"

$(addsuffix <suffix>,<names...>)
加后缀函数,把后缀<suffix>加到<names>中的每个单词后面.
$(addsuffix .c,foo bar)返回值是"foo.c bar.c"

$(addprefix <prefix>,<names...>)
加前缀函数,返回加过前缀的文件名序列.
$(addprefix src/,foo bar)返回值为"src/foo src/bar"

$(join <list1>,<list2>)
把<list2>中的单词对应地加到<list1>的单词后面.如果,list1的单词个数比list2中的多,list1中多出来的单词将保持原样.如果list2的单词个数比list1多,list2中的单词将被复制到list2中.
$(join aaa bbb,111 222 333)返回值"aaa111 bbb222 333"

foreach函数
$(foreach <var>,<list>,<text>)
把参数<list>中的单词取出放到参数<var>所指定的变量中,然后再执行<text>所包含的表达式.每一次<text>会返回一个字符串,循环过程中,<text>所返回的每个字符串会以空格分隔,最后当整个循环结束时,<text>所返回的每个字符串所组成的整个字符串将是foreach函数的返回值.

call函数
$(call <expression>,<param1>,<param2>,<param3...)

Origin函数
origin函数不像其他函数,它并不操作变量的值,它只是告诉这个变量是从哪里来得.
$(origin <variable>)
undefined
如果变量从来没有定义过,那么origin函数返回undefined
default
如果变量是一个默认的定义.
environment
如果变量是一个环境变量,并且当makefile文件被执行时,-e参数没有被打开.
file
如果变量被定义在makefile文件中.
command line
如果变量是被命令行定义的.
override
如果变量是被override指示符定义的.
automatic
如果变量是一个命令运行中的自动化变量.

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值