Linux命令总结

su和sudo的区别

"su"和"su -"同样是切换到root用户,二者之间还是有区别的。 前者只是切换了root身份,但是Shell环境仍然是普通用户的Shell; 后者连用户和Shell环境一起切换成了root身份。 sudo执行命令的流程是当前用户切换到root(或其它执行切换到的用户),然后以root(或其他执行切换到的用户)身份执行命令,执行完成后,直接退回到当前用户。

vi

i:插入,从目前光标所在之处插入所输入的文字 a:增加,从目前光标所在的下一个字开始输入文字 o:插入新的一行,从行首开始输入文字 在插入模式下,只能一直打字,如果发现字打错了,要先按ESC切换回命令模式,再把光标往回移动,最后删除打错的字符。删除有一些命令: x:每按一次删除光标所在位置的后面一个字符,例如6x表示删除光标所在位置后面的6个字符 dd:删除光标所在行 这是命令模式,在命令模式下按":"、"/"、"?"都可以进入底线命令模式,底线命令模式下有一些命令: :set nu:在文章的每一行前面列出行号 /关键字:向后搜索关键字,假如不是想要的,按n继续向后搜索 ?关键字:向前搜索关键字,假如不是想要的,按n继续向前搜索 :w:保存文件

ls

-a:列出目录下所有的文件,包括以"."开头的隐藏文件 -l:除了文件名外,还列出文件权限、所有者、大小等详细信息 -r:反向次序排列 -t:以文件修改时间排序 -g:类似-l,但是不列出所有者 -h:以容易理解的文件格式列出(如1K、234M、2G) 例如: ls -l t*:列出所有文件名以"t"开头的文件信息

cd

cd /:进入系统根目录 cd aa/bb/cc:跳转到指定目录,注意这里"aa"前没有"/",指从当前目录跳转到指定目录 cd ~:进入系统主目录 cd ..:跳转到上一级

pwd,mkdir,rm,mv

- pwd 查看当前工作目录的完整路径 - mkdir 用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录 -m:创建目录的时候设定权限 -p:若创建目录的路径中有些路径不存在,可一次性地建立多个目录 例如: mkdir test1:创建一个空目录test1 mkdir -p test1/test2:递归创建多个目录 mkdir -m 777 test:在创建目录test3的时候给此目录赋予777的权限
  • rm
    删除一个目录中的一个或多个文件或目录,它可以将某个目录及其下所有文件及子目录删除。对于链接文件,只是删除了链接,原有文件均保持不变
    -f:强制删除且不给出提示
    -r:将参数中列出的目录路和子目录均递归删除
    -v:显示详细进行的步骤
    例如:
    rm -rf *.log:删除任何.log文件并且不询问用户

  • mv
    可以用来移动文件或者将文件改名,常用来备份文件或目录
    例如:
    mv log1.txt log.txt test3:将log1.txt、log2.txt移动到test3文件夹中
    mv dir1 dir2:如果dir2不存在,则将dir1改名为dir2;如果dir2存在,则将dir1移入dir2中
    mv * ../:移动当前文件夹下所有文件至上一级目录
    mv test3/*.txt test5:将test目录下所有的.txt文件全部移动到test5文件夹下

cp,cat,tail

- cp 复制文件或目录 例如: cp log.log test6:将log.log复制进入test6目录下
  • cat
    cat主要有三个功能:
    1、一次性显示整个文件
    2、从键盘创建一个文件
    3、将几个文件合并为一个文件
    tac这个命令和cat一样,无非是将文件内容从最后一行到第一行显示而已。
    -E:在每行结束显示"$"
    -n:对输出的所有行进行从1开始的编号
    -s:对连续两行的空白行代替为一行
    -T:将跳格字符(tab)显示为"^I"
    例如:
    cat -n log1.log log2.log:将log1.log加上行号后输入到log2.log文件中,log2.log在目录中必须存在
    cat -n log1.log > log.log:将log1.log加上行号后输入到log.log文件中,log.log在目录中不存在

  • tail
    用于显示指定文件末尾内容,不指定文件时,作为信息输入进行处理。常用查看日志文件
    -f:不断读取,循环刷新,这样可以看到最新的文件内容
    -q:不显示处理信息
    -v:显示详细的处理信息
    -c<数目>:显示的字节数
    -n<行数>:显示的行数
    例如:
    tail -n 5 log1.log:显示log1.log最后5行的内容
    tail -f log1.log:循环查看log1.log的内容

find

用于在文件树中查找文件并作相应的处理 -name:按照文件名查找文件 -perm:按照文件权限查找文件 -user:按照文件属主来查找文件 -group:按照文件所属的组来查找文件 -mtime<-n><+n>:按照文件更改时间来查找文件,-n表示n天之内,+n表示n天以前 -newer file1 file2:查找更改时间在file1和file2之间的文件 例如: find -mtime -2:查找48小时修改过的文件 find -name "*.log":查找当前目录以"*.log"结尾的文件 find /opt/soft/test -perm 777:查找指定目录下权限为777的文件 find -type f -name "*.log":查找当前目录下以".log"结尾的普通文件 find -type d | sort:查找当前所有目标目录并排序

chmod

用于改变Linux系统文件或目录的访问权限 -f:错误信息不输出 -c:当发生改变时,报告处理信息 -R:处理执行目录及其子目录下所有文件 -v:运行时显示详细处理信息 <权限范围>+<权限设置>:使权限范围内的目录或文件具有指定权限 <权限范围>-<权限设置>:删除权限范围内的目录或文件的指定权限 <权限范围>=<权限设置>:设置权限范围内的目录或文件的权限为指定的值
权限范围 权限代号
u:目录或文件的当前用户 r:读,代号为4
u:目录或文件的当前用户 r:读,代号为4
g:目录或文件的当前群组 w:写,代号为2
o:其他用户或群组 x:执行,代号为1
a:所有用户和群组 -:删除,代号为0
s:特权权限

例如:
chmod a+x log1.log:设定文件log1.log所有用户或群组都有执行权限
chmod ug+x,o-x log1.log:同时设定不同的用户权限
chmod u=x log1.log:撤销用户原有对log1.log的权限并设定为x
chmod -R u+x test4:递归地给test4下所有文件与子目录分配执行权限
chmod 751 file:给file、属主分配读、写、执行权限,给所在组分配读、执行权限,其他用户分配执行权限

tar

用来压缩和解压文件,tar本身不具备压缩功能,它是调用压缩功能实现的 -c:建立新的压缩文件 -d:记录文件差别 -r:添加文件到已压缩的文件中 -x:从压缩的文件中提取文件 -t:显示压缩的文件内容 -z:支持gzip解压文件 -v:显示操作过程 -f:指定压缩文件 例如: tar -cvf log.tar log1.log:仅把log1.log打包成log.tar,不压缩 tar -zcvf log.tar.gz log1.log:把log1.log打包成log.tar.gz,并指出gzip压缩 tar -ztvf log.tar.gz:查阅log.tar.gz中的内容,因log.tar.gz是以gzip压缩的,所以要加上z tar -zcvf log30.tar.gz log1.log log2.log:把多个文件打包压缩成一个文件 tar -zxvf log30.tar.gz log2015.log:把log30.tar.gz中的log2015.log解压出来

grep

用于过滤/搜索指定字符串。可以使用正则表达式,能配合多种命令使用 -A:显示符合的行及之后的内容 -B:显示符合的行及之前的内容 -C:显示符合的行及前后的内容 -c:计算符合的行数目 -i:忽略大小写 规则表达式 ^:'^grep'表示匹配所有以grep开头的行 $:'grep$'表示匹配所有以grep结尾的行 .:'gr.p'表示匹配'gr'后面接任意字符然后是'p' *:'*grep'表示匹配一个或多个空格后紧跟grep的行 []:[Gg]rep表示匹配Grep与grep [^]:[^A-FH-Z]rep表示匹配不以A-F、H-Z开头并紧跟rep的行 例如(grep命令大多数时候多要和别的命令一起使用才有意义): ```python ps -ef | grep -c SVN:查找指定的进程的个数 cat test.txt | grep -f test2.txt:从text2.txt中读取关键字后在test.txt中搜索 cat test.txt | grep nf text2.txt:从text2.txt中读取关键字后在text.txt中搜索并显示行号 grep 'linux' text.txt test2.txt:从多个文件中搜索关键字'linux' cat test.txt | grep -E 'ed|at':显示包含ed或at的行
<h4 id="11">ps</h4>
<font color=red size=4 face="微软雅黑">用来列出系统中运行的那些进程</font>

| 状态     | 含义      |  
| ----- |:-------------| 
|R	|运行:正在运行或在运行队列中等待|
|S	|中断:休眠中,受阻|
|D	|不可中断:收到信号不唤醒和不可运行,进程必须等待直至有中断发生|
|Z	|僵死:进程已终止|
|T	|停止:进程收到SIGSTOP、SIGSTP、SIGSIN、SIGSOU信号后停止运行|

-A:显示所有进程
-e:等同于-A
-c:显示进程的真实名称
-f:显示程序间的关系
例如:
ps -u root:显示root的进程信息
ps -ef:显示所有进程信息连同其命令行
ps -ef | grep ssh:ps常与grep连赢来显示特定进程
ps -l:将目前属于自己登录的pid与相关信息列出来
ps aux:列出目前所有的在内存中的进程

<h4 id="12">netstat</h4>
<font color=red size=4 face="微软雅黑">用于显示各种网络相关信息,如网络连接、路由表、接口状态、多播成员等</font>

netstat输出:

|Proto  |  Recv-Q|	Send-Q|Local Address|	Foreign Address	|State|
| ---|------|----|:---|:------|:----| 
|指协议,有tcp、udp、unix等|	接收队列|	发送队列|	本机地址|	远程地址|	状态|

-a:显示所有选项
-t:仅显示tcp选项
-u:仅显示udp选项
-n:不显示主机别名,能显示数字的全部显示数字
-r:显示路由信息、路由表
-s:按各种协议进行统计
-l:仅列出LISTEN的服务状态
例如:
netstat -at:列出所有tcp端口
netstat -lt:只列出所有监听tcp的端口
netstat -s:显示所有端口的统计信息
netstat -p:在输出中显示pid和进程名称

> 常用
cat -n log2012.log  //带行号显示文件
ls -l -R /home/peidachang //列出所有文件 -R包含所有子目录
ps -ef|grep ssh //Process Status ,ef显示所有进程信息,连同命令行,
grep 'linux' test.txt //文本中查找关键字


[参考:五月的仓颉](http://www.cnblogs.com/xrq730/category/746575.html)
原文地址:https://www.cnblogs.com/lknny/p/6273586.html