高级Unix命令

来源:互联网 发布:lol末日人工智能怎么玩 编辑:程序博客网 时间:2024/06/07 21:32

在Unix操作中有太多太多的命令,这些命令的强大之处就是一个命令只干一件事,并把这件事干好。Do one thing, do it well。这是unix的哲学。而且Unix首创的管道可以把这些命令任意地组合,以完成一个更为强大功能。这些哲学到今天都在深深地影响着整个计算机产业。比如今天最流行的“云计算”——把一个软件以碎片方式部署,然后这些功能可以任意组合。

这篇文章罗列了很多Unix下比较高级的命令,当然,Unix/Linux下还有更多更多的命令,我们相信你可能见过其中的某些命令,也有可能有一些命令没有见过。不管怎么说,我们希望这些命令一方面可以让你知道怎么使用Unix/Linux操作系统,另一方面,我们也希望你能从中感到Unix的那种软件开发的哲学思想。

 

ACCTCOM::查看所有用户执行过的进程(命令)acctcom | tail -20查看指定用户执行过的进程(命令)acctcom -u <username> | tail -20使用一个正则表达式查找相关进程acctcom -n <pattern> | tail -20查找所有以l开头的被用户执行过的命令acctcom -n ‘^l’ | tail -30以反向顺序显示acctom -b | moreAGREP::在文件中查找一个可能拼写错的单词agrep -2 ‘macropperswan’ <file>AT::在未来某个时间执行某个命令at now + 5 days < scriptfileAWK::显示文件的第一列awk ‘{print $1}’ <file>反序显示文件的前两列awk ‘{print $2,”/t”,$1}’ <file>输出前两列的总和awk ‘{print $1 + $2}’ <file>查找所有包括”money” 行并输出最后一列awk ‘/money/ {print $NF}’ <file>查找第二列中包含 “money”awk ‘$2 ~ /money/ {print $0}’ <file>查找第三列中不包括”A”awk ‘$3 !~ /A$/ {print $0}’ <file>BC::计算sin(5)的值echo ’s(5)’ | bc -lCANCEL::取消一个刚开始启动的打印的作业cancel <jobid> ( jobid可以由lpstat -o输出)CASE in ESAC ::sh/bash/ksh中的case语句 CC::编译一个C文件file.ccc -o <outfile> <infile>CHGRP::修改文件的组所属chgrp <newgroupname> <file>CHOWN::修改文件的所属人chown <newowner> <file>CMP::比较两个文件cmp <file1> <file2> || <command>COL::打印man pages,去除其中 “^H”man <command> | col -b | <printcommand>CRONTAB::查看你的crontab 文件crontab -l编译 crontab 文件crontab -e第周一的05:10 执行/home/fred/foo.ksh10 5 * * 1 /home/fred/foo.kshCRYPT::使用一个口令加密一个文件crypt password < infile > cryptfile解密一个被上面命令加密了的文件crypt password < cryptfile > cleanfileCSH ::最好的Berkley shell CUT::从last 命令的输出中得到hostname字段last | cut -c11-40DATE::设置时间(只能由root 执行)date <mmddhhmm>输出指定日期格式 (如:月份)date +%mDF::以kB单位查看磁盘空间df -kDIRCMP::比较两个目录dircmp <dir1> <dir2>DTKSH::dtksh 是一个 X11 图形的ksh93dtkshDU::磁盘使用情况du -ksED ::命令行编译器。ed <file>EGREP::使用“或”条件Grep 文件egrep ‘(A|B)’ <file>grep文件中即不包括A也不包括Begrep -v ‘(A|B)’ <file>EX::使用一个shell脚来来编辑一个文件ex -s file <<EOF
g/money/s//cash/
EOF
以一个脚本文件来编辑一个文件ex -s file < scriptfileEXPR::求模expr 10 % 7查看字串是否在变量$var中expr $var : ’string’显示第一个数字组成的字串expr $var : ‘[^0-9]*/([a-z]*/)’FGREP::查找不匹配于某正规表达式的文件行fgrep ‘*,/.()’ <file>FILE::查看文件类型(如: ascii)file <file>FIND::在整个文件系统中查的一个文件find / -type f -name <file> -print查找所有匹配于模式的文件find . -type f -name “*<foo>*” -print删除系统中所有的core文件find / -type f -name core -exec /bin/rm -f {} /;查找所有包含某单词的文件find . -type f -exec grep -l <word> {} /;查找所有修改日期在30天以前的文件find . -type f -ctime +30 -print使用xargs来备份所有的.c文件(加上.bak后缀)find . -name “*.c” -print | xargs -i cp {} {}.bak只搜索本地文件系统(不搜索nfs文件系统)find . -local …在搜索的过程中,跟随link文件的实际位置find . -follow …查找大于1M的文件find /path -size 1000000c -print运行find命令但忽略”permission denied”find … 2>/dev/null ( 只能在sh/bash/ksh )查找所有的man目录find / -type d -print | egrep ‘.*/(catman|man)$’查找所有有写权限的目录find / -type d -perm -002 -printGAWK ::GNU版本的nawk GREP::以某个正规表达式查找包含其的文件行grep ‘[a-z][0-9]‘ <file>查找不包含指定正则表达式的文件行grep -v ‘^From’ <file>查找一组文件grep -l ‘^[cC]‘ *.f计算包括某正则表达式文件行的数目grep -c ‘[Ss]uccess’ <file>不区分大小写的查找grep -i ‘lAbEgF’ <file>在匹配到的文件内容前输出文件的行号grep -n ‘mo.*y’ <file>HINV ::命令显示系统硬件的详细列表,包括:CPU类型、内存大小、所有的磁盘设备。hinv -vIF then else ENDIF ::csh/tcsh中的if 语句 IF then else FI ::sh/bash/ksh 中的if 语句if [[ condition ]];then commands;fiKSH::Korn shell. (ksh88) LN::创建一个硬链接文件a链接到文件Aln a B创建一个符号链接文件a链接到文件Aln -s a B删除链接文件Brm BLP::在默认打印机上打印文件lp <file>在指定打印机上打印文件lp -d <destination> <file>LPSTAT::显示所有的打印机lpstat -a查看打印机任务队列lpstat -o查看默认打印机lpstat -d查看打印机状态lpstat -p查看计划任何状态lpstat -rMAKE::执行一个 makefile中的第一个目标make执行一个 makefile中的指点目标make <target>指定一个特定的makefile文件名make -f <mymakefile>显示要做什么,但其实什么也没做make -n <target>MKDIR::一次创键目录和子目录mkdir -p <path>/<path>/<path>MOUNT ::查看挂载的文件卷mount查看挂载的文件卷(有格式的)mount -p挂载一个光驱到目录/cdrommount /dev/cdrom /cdrom挂载一个磁盘分区到目录 /usrmount /dev/dsk/c0t3d0s5 /usrNAWK::增强版的 awk NL::以带行号的方式输出文件nl -bt -nln <file>NOHUP::启动一个命令马上退出nohup <command> &PACK::一个很老的文件打包程序,现在被gzip代替了。pack <file>PASSWD::修改你的帐号口令passwd删除一个用户的口令(root使用)passwd -d <username>改变一个用户的口令 (root使用)passwd <username>PASTE::以列的方式把多个文件组合起来paste <file1> <file2> > <newfile>PERL::Perl脚本语言的解释器PR::把一个文件做成可打印的格式(76行一页)pr -l76 -h”title” <filename>  REGCMP::从一个文件中编译正则表达式regcmp <file>文件内容示例varname “^[a-z].*[0-9.*$"RESET::重置终端设备resetRPCINFO::取得某主机的TCP端口信息rpcinfo -p <host>RSH::执行一个远程服务器上的命令rsh <host> <comand>SCRIPT::用来捕捉当前的终端会话中的所有输入输出结果到一个指定的文件script <logfile>SED::把某文件中的fred替换成johnsed -e 's/fred/john/g' <file>替换文件中匹配正则表达式的字符串sed -e 's/[0-9]+/number/g’ <file>把HTML文件中的 “X” 变成红色sed -e ’s!X!<font color=”#FF0000″>X</font>!g;把所有后缀为.suf1 改名成.suf2ls -1 | grep ‘/.suf1$’ | sed -e ’s//(.*/./)suf1/mv & /1suf2/’ | sh把文件中包含c的行中的a 替换成bsed -e ‘/C/s/A/B/’ <infile> ><outfile>删除所有包含 “you owe me”的文件行sed -e ‘/you owe me/d’ <infile> > <outfile>使用commandfile中的命令来编译infile文件,并输出到outfile中。其中的commandfile中包含了一系列的vi命令sed -f <commandfile> <infile> > <outfile>SH::最老的 AT&T shell程序,也是使用最广泛的标准确shell。SHUTDOWN::关机shutdown -h nowSLEEP::sleep 10秒钟sleep 10SORT::以字符顺序把文件的每一行排序sort <file>以数字顺序把文件的每一行排序sort -n <file>反向排序sort -r <file>排序时对于重复项只保留一个sort -u <file>  SPELL::检查拼写错误spell <file>检查拼写错误,但是忽略okfile中包含的单词spell +<okfile> <file>SPLIT::拆分一个大文件,每个文件1msplit -b1m <file>把拆分后的文件合并起来cat x* > <newfile>STRINGS::从二进制文件中读取ascii 字符串strings <file>STTY::显示终端设置stty -a设置 Ctrl+”H”为删除键stty erase “^H”对于用户的输入不回显stty -echo回显用户的输入stty echoSU::切换到root用户su切换到root用户并使用其环境su -切换到另一用户su <username>TAIL::显示某文件中的文件尾中包含pattern的文件行tail -f <file> | grep <pattern>TAR::把整个目录打包(没有压缩)tar cvf <outfile>.tar <dir>解包某个tar文件tar xvf <file>.tar先解压缩再解包gzip -dc <file>.tar.gz | tar xvf -打包成一个压缩包tar xzvf <file>tar.gz在.cshrc中设置 tar命令的tape 变量tape=/dev/rmt/0mbn把一个目录打包到tape变量所指的目录中tar cv <dir>从tape中解包tar xv从tape中解出一个文件tar xv <file>从 tape中得到一个内容表tar t以合适的权限和链接拷贝一个目录(cd fromdir && tar -cBf – . ) | ( cd todir && tar -xBf – )TCSH::Berkly的另一个非常不错的shellTEE::把标准输入重定向到标准输出who | tee -a > <file>TEST::检查是否是一个文件test -a <file>检查是否某文件是否是root属性test -O /usr/bin/su检查某变量是否为 nulltest -n “$foo”以数字的方式比较两个数字字符串test $var1 -gt $var2在ksh 脚本中间接地使用”test”if [[ -a <file> ]];then …;fiTIME::查看运行一个命令需要多少时间time <command>TOUCH::更新文件的修改时间为当前时间,文件不存在则创建文件touch <file>TR::使用x替换a,y替换b,c替换ztr ‘[a-c]‘ ‘[x-z]‘ < infile > outfileTRAP::捕捉”^C” 并执行子程序trap “mysub;exit” 0 1 2 15TRUE::让个不存在的命令返回0ln -s /usr/bin/true ranlibTRUSS::查看一个命令运行时的系统调用truss <command> > /dev/nullTYPSET::查看被激活的功能typsetTTY::查看终端所在的设备文件ttyULIMIT::查看系统所支持的最大文件长度ulimitUMASK::查看目前的umaskumask设置一个umaskumask 077UNIQ::查看一个文件中有多少行是一样的sort <file> | uniq -c仅输出唯一的没有重复的行sort <file> | uniq -uUPTIME::查看你的电脑开机多少时间了uptimeUUENCODE::Encode一个文件以便发送电子邮件uuencode decodedname namenow > codednameUUDECODE::Decode 一个 uuencoded 文件uudecode <file>WAIT::等一个后进和运行结束wait $jobidVI::最主要的unix编译器vi <file>WC::计算一个文件的行号wc -l <file>XARGS::把标准输出作为参数来执行一条命令<command> | xargs -i grep ‘pattern’ {}XON::从另一台电脑上得到一个xtermxon <host>从另一台电脑上得到所有的东西xon <host> <X-client>

 

 

(全文完)http://coolshell.cn/?p=1044#more-1044

原创粉丝点击