高级Unix命令
在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 | more |
| AGREP | :: |
| 在文件中查找一个可能拼写错的单词 | agrep -2 ‘macropperswan’ <file> |
| AT | :: |
| 在未来某个时间执行某个命令 | at now + 5 days < scriptfile |
| AWK | :: |
| 显示文件的第一列 | 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 -l |
| CANCEL | :: |
| 取消一个刚开始启动的打印的作业 | cancel <jobid> ( jobid可以由lpstat -o输出) |
| CASE in ESAC | :: |
| sh/bash/ksh中的case语句 | |
| CC | :: |
| 编译一个C文件file.c | cc -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.ksh | 10 5 * * 1 /home/fred/foo.ksh |
| CRYPT | :: |
| 使用一个口令加密一个文件 | crypt password < infile > cryptfile |
| 解密一个被上面命令加密了的文件 | crypt password < cryptfile > cleanfile |
| CSH | :: |
| 最好的Berkley shell | |
| CUT | :: |
| 从last 命令的输出中得到hostname字段 | last | cut -c11-40 |
| DATE | :: |
| 设置时间(只能由root 执行) | date <mmddhhmm> |
| 输出指定日期格式 (如:月份) | date +%m |
| DF | :: |
| 以kB单位查看磁盘空间 | df -k |
| DIRCMP | :: |
| 比较两个目录 | dircmp <dir1> <dir2> |
| DTKSH | :: |
| dtksh 是一个 X11 图形的ksh93 | dtksh |
| DU | :: |
| 磁盘使用情况 | du -ks |
| ED | :: |
| 命令行编译器。 | ed <file> |
| EGREP | :: |
| 使用“或”条件Grep 文件 | egrep ‘(A|B)’ <file> |
| grep文件中即不包括A也不包括B | egrep -v ‘(A|B)’ <file> |
| EX | :: |
| 使用一个shell脚来来编辑一个文件 | ex -s file <<EOF g/money/s//cash/ EOF |
| 以一个脚本文件来编辑一个文件 | ex -s file < scriptfile |
| EXPR | :: |
| 求模 | 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 -print |
| GAWK | :: |
| 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 -v |
| IF then else ENDIF | :: |
| csh/tcsh中的if 语句 | |
| IF then else FI | :: |
| sh/bash/ksh 中的if 语句 | if [[ condition ]];then commands;fi |
| KSH | :: |
| Korn shell. (ksh88) | |
| LN | :: |
| 创建一个硬链接文件a链接到文件A | ln a B |
| 创建一个符号链接文件a链接到文件A | ln -s a B |
| 删除链接文件B | rm B |
| LP | :: |
| 在默认打印机上打印文件 | lp <file> |
| 在指定打印机上打印文件 | lp -d <destination> <file> |
| LPSTAT | :: |
| 显示所有的打印机 | lpstat -a |
| 查看打印机任务队列 | lpstat -o |
| 查看默认打印机 | lpstat -d |
| 查看打印机状态 | lpstat -p |
| 查看计划任何状态 | lpstat -r |
| MAKE | :: |
| 执行一个 makefile中的第一个目标 | make |
| 执行一个 makefile中的指点目标 | make <target> |
| 指定一个特定的makefile文件名 | make -f <mymakefile> |
| 显示要做什么,但其实什么也没做 | make -n <target> |
| MKDIR | :: |
| 一次创键目录和子目录 | mkdir -p <path>/<path>/<path> |
| MOUNT | :: |
| 查看挂载的文件卷 | mount |
| 查看挂载的文件卷(有格式的) | mount -p |
| 挂载一个光驱到目录/cdrom | mount /dev/cdrom /cdrom |
| 挂载一个磁盘分区到目录 /usr | mount /dev/dsk/c0t3d0s5 /usr |
| NAWK | :: |
| 增强版的 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 | :: |
| 重置终端设备 | reset |
| RPCINFO | :: |
| 取得某主机的TCP端口信息 | rpcinfo -p <host> |
| RSH | :: |
| 执行一个远程服务器上的命令 | rsh <host> <comand> |
| SCRIPT | :: |
| 用来捕捉当前的终端会话中的所有输入输出结果到一个指定的文件 | script <logfile> |
| SED | :: |
| 把某文件中的fred替换成john | sed -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 改名成.suf2 | ls -1 | grep ‘\.suf1$’ | sed -e ‘s/\(.*\.\)suf1/mv & \1suf2/’ | sh |
| 把文件中包含c的行中的a 替换成b | sed -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 now |
| SLEEP | :: |
| sleep 10秒钟 | sleep 10 |
| SORT | :: |
| 以字符顺序把文件的每一行排序 | sort <file> |
| 以数字顺序把文件的每一行排序 | sort -n <file> |
| 反向排序 | sort -r <file> |
| 排序时对于重复项只保留一个 | sort -u <file> |
| SPELL | :: |
| 检查拼写错误 | spell <file> |
| 检查拼写错误,但是忽略okfile中包含的单词 | spell +<okfile> <file> |
| SPLIT | :: |
| 拆分一个大文件,每个文件1m | split -b1m <file> |
| 把拆分后的文件合并起来 | cat x* > <newfile> |
| STRINGS | :: |
| 从二进制文件中读取ascii 字符串 | strings <file> |
| STTY | :: |
| 显示终端设置 | stty -a |
| 设置 Ctrl+”H”为删除键 | stty erase “^H” |
| 对于用户的输入不回显 | stty -echo |
| 回显用户的输入 | stty echo |
| SU | :: |
| 切换到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的另一个非常不错的shell | |
| TEE | :: |
| 把标准输入重定向到标准输出 | who | tee -a > <file> |
| TEST | :: |
| 检查是否是一个文件 | test -a <file> |
| 检查是否某文件是否是root属性 | test -O /usr/bin/su |
| 检查某变量是否为 null | test -n “$foo” |
| 以数字的方式比较两个数字字符串 | test $var1 -gt $var2 |
| 在ksh 脚本中间接地使用”test” | if [[ -a <file> ]];then …;fi |
| TIME | :: |
| 查看运行一个命令需要多少时间 | time <command> |
| TOUCH | :: |
| 更新文件的修改时间为当前时间,文件不存在则创建文件 | touch <file> |
| TR | :: |
| 使用x替换a,y替换b,c替换z | tr ‘[a-c]’ ‘[x-z]’ < infile > outfile |
| TRAP | :: |
| 捕捉”^C” 并执行子程序 | trap “mysub;exit” 0 1 2 15 |
| TRUE | :: |
| 让个不存在的命令返回0 | ln -s /usr/bin/true ranlib |
| TRUSS | :: |
| 查看一个命令运行时的系统调用 | truss <command> > /dev/null |
| TYPSET | :: |
| 查看被激活的功能 | typset |
| TTY | :: |
| 查看终端所在的设备文件 | tty |
| ULIMIT | :: |
| 查看系统所支持的最大文件长度 | ulimit |
| UMASK | :: |
| 查看目前的umask | umask |
| 设置一个umask | umask 077 |
| UNIQ | :: |
| 查看一个文件中有多少行是一样的 | sort <file> | uniq -c |
| 仅输出唯一的没有重复的行 | sort <file> | uniq -u |
| UPTIME | :: |
| 查看你的电脑开机多少时间了 | uptime |
| UUENCODE | :: |
| Encode一个文件以便发送电子邮件 | uuencode decodedname namenow > codedname |
| UUDECODE | :: |
| Decode 一个 uuencoded 文件 | uudecode <file> |
| WAIT | :: |
| 等一个后进和运行结束 | wait $jobid |
| VI | :: |
| 最主要的unix编译器 | vi <file> |
| WC | :: |
| 计算一个文件的行号 | wc -l <file> |
| XARGS | :: |
| 把标准输出作为参数来执行一条命令 | <command> | xargs -i grep ‘pattern’ {} |
| XON | :: |
| 从另一台电脑上得到一个xterm | xon <host> |
| 从另一台电脑上得到所有的东西 | xon <host> <X-client> |
高级Unix命令的更多相关文章
- 《转》高级Unix命令
原文链接:http://coolshell.cn/articles/1044.html 在Unix操作中有太多太多的命令,这些命令的强大之处就是一个命令只干一件事,并把这件事干好.Do one thi ...
- Cheat (tldr, bropages) - Unix命令用法备忘单
cheat 是一个Unix命令行小工具,用来查询一些常用命令的惯用法(我们都知道,man page阅读起来太累了,常常是跳到最后去看 examples,但并不是所有man pages里面都有examp ...
- 希望早几年知道的5个Unix命令
原文: http://spin.atomicobject.com/2013/09/09/5-unix-commands/ 希望早几年知道的5个Unix命令 使用*nix系统已经有一段时间了.但是还是有 ...
- 10个很有用的高级Git命令
迄今,我已经使用Git很长一段时间了,考虑分享一些不管你是团队开发还是个人项目,都受用的高级git命令. 1. 输出最后一次提交的改变 这个命令,我经常使用它 来发送其他没有使用git的人来检查或者集 ...
- NoSQL之Redis高级实用命令详解--安全和主从复制
Android IOS JavaScript HTML5 CSS jQuery Python PHP NodeJS Java Spring MySQL MongoDB Redis NOSQL Vim ...
- 5个Unix命令
5个Unix命令 原文: http://spin.atomicobject.com/2013/09/09/5-unix-commands/ 希望早几年知道的5个Unix命令 使用*nix系统已经有一段 ...
- powershell 中常用cmd,unix命令(get-alias)
powershell 中常用cmd,unix命令(get-alias) Get-Content Alias cat -> Get-Content Alias gc -> Get-Conte ...
- 很有用的高级 Git 命令
10 个很有用的高级 Git 命令 迄今,我已经使用Git很长一段时间了,考虑分享一些不管你是团队开发还是个人项目,都受用的高级git命令. 1. 输出最后一次提交的改变 这个命令,我经常使用它 来发 ...
- 10 个很有用的高级 Git 命令(转)
英文原文:10 Useful Advanced Git Commands 迄今,我已经使用Git很长一段时间了,考虑分享一些不管你是团队开发还是个人项目,都受用的高级git命令. 1. 输出最后一次提 ...
随机推荐
- Core Java-多线程-线程的生命周期
0. 在介绍线程前我们先看一下什么是进程? 进程是线程的母亲,如果在大学计算机课程里读过操作系统一定不会陌生. 所谓进程,它是计算机程序关于某数据集上的一次活动,是系统进行资源分配和调度的基本单位,是 ...
- Android studio 导入 github 工程
最近从 github 下载两个开源项目,导入 Android Studio 都以 Studio 卡死结束.第一次以为是项目问题,第二次查询资料发现导入方式不正确,在此整理. 原目录结构如下: Andr ...
- 【树莓派】使用VNC进行远程控制
之前有进行过VNC以及xrdp连接树莓派,并成功了. 这里看到一篇比较新的,基于mac的连接,文章转载收藏,实践可参考. 这一课里我们将学习如何在树莓派上安装和使用VNC.它可以使你通过图形界面的方式 ...
- server.xml引入子文件配置(tomcat虚拟主机)[转]
在配置tomcat虚拟主机时候,如何每一个虚拟主机写成单独文件,server.xml包含这些子文件? 如以下<OneinStack>中,添加JAVA环境虚拟主机后tomcat配置文件详情: ...
- Linux内核配置.config文件
在命令行中,进入顶层内核目录,并输入命令make menuconfig,就可以启动一个基于菜单的内核配置编辑器.从这里开始,你可以访问每个可用的配置参数,并生成一个定制的内核配置. 当你退出配置编辑器 ...
- VB API判断数组为空
1. 'API判断数组为空或没有初始化 Private Declare Function SafeArrayGetDim Lib "oleaut32.dll" (ByRef saA ...
- mysql如何分类统计数量
比如我表test里面有id,mc,xh三个字段(分别是自动编号,钢材名称(若干种),钢材型号(大号,中号,小号)) id mc xh 钢管 大号 铜管 大号 铁管 小号 铝管 中号 钢管 小号 我现在 ...
- mysql保留2位小数字段如何设置 浮点数
保留2位小数字段如何设置 方法1: select cast(avg(75.3333333) as decimal(10,2)) as '平均分' );#format第一个参数传递浮点数
- mysql查询高级用法
联合查询 select a.* , b.adress , b.name from a , b where a.sbNo = b.cdid order by a.sbNo , a.STime selec ...
- django之创建第7-4个项目-配置views文件实现url传值
即:怎么实现url?name=xiaodeng&age=28等类似传值处理 1.配置views文件 # Create your views here. #coding:utf-8 from d ...