Linux命令杂记

1.ls
-R 参数可以实现递归展开子目录。
-a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。
-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
 
2.pwd
-P  显示出实际路径,而非使用连接(link)路径。
 
3.mkdir
-p, --parents  使得参数可以是一个路径,递归创建路径中不存在的目录。
 
4.rm
-f, --force    忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive   指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose    详细显示进行的步骤
 
5.cp
-s 创建软连接,而不是复制
-l 创建硬连接,而不是复制
-r,-R, –recursive 递归复
-L, –dereference  跟随符号链接
目录复制 采用cp复制目录时,如果目标目录存在,则会将源目录复制到目标目录内。如果目标目录不存在,则创建一个新的目录,并把源目录的东西放到新创建的目标目录。
 
6.cat
显示一个文件:cat file
从命令行输入文件:cat >file
合并文件:cat file1 file2>file
-A 显示不可见字符
-s 合并连续空行
-n 加行号显示
 
7.nl
为标准输出加上行号
 
8.tail
-f 循环显示,用于持续显示日志的最新部分
 
9.which
用于定位可执行程序,在PATH环境变量指定的路径中找出第一个对应的可执行程序。
 
10.whereis
用于在文件数据库中查找二进制,源码和帮助文件
 
11.locate
用于在文件数据库中定位文件,支持通配符。
 
12.find
用于在文件树种查找文件,并作出相应的处理。
 
格式:
     find pathname -options [-print -exec -ok ...]
 
参数:
     pathname:命令所查找的目录路径
     -print:将匹配的文件输出到标准输出
     -exec:对匹配的文件执行该参数所给出的shell命令,
          格式为:
                'command' {  } ; ]
               注意{ }和;之间的空格,由于各系统对;的解释不同,需要在;前加\,
          示例:
               find . -type f -exec ls -l {} ;
     -ok:同-exec,只是在执行命令前要求用户确认
 
选项:
     -name:按照文件名查找
     -user: 按照文件属主来查找文件。
     -group:按照文件所属的组来查找文件。
     -mtime -n +n: 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前
     -nogroup:  查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
     -nouser:查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
     -newer file1 ! file2:查找更改时间比文件file1新但比文件file2旧的文件。
     -type  查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
     -size n[c]: 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
     -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
     -fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
     -mount:在查找文件时不跨越文件系统mount点。
     -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
     -cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
     -amin n   查找系统中最后N分钟访问的文件
     -atime n  查找系统中最后n*24小时访问的文件
     -cmin n   查找系统中最后N分钟被改变文件状态的文件
     -ctime n  查找系统中最后n*24小时被改变文件状态的文件
     -mmin n   查找系统中最后N分钟被改变文件数据的文件
     -mtime n  查找系统中最后n*24小时被改变文件数据的文件
 
13.xargs
由于很多命令不支持|管道来传递参数,xargs可以从stdin读取数据并进行分割,给后面的命令作为参数。
管道负责把前一条命令的标准输出变成后一条命令的标准输入,xargs负责将标准输入变成c
  • 在使用管道过程中,如果前一条命令产生的输出过多,会导致后一条命令参数过长而导致溢出,xargs可以解决这个问题。
  • 在有些系统中,使用-exec选项会为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次执行;xargs可以解决这个问题
  • xargs的分割方式可以通过xargs命令的选项和一些环境变量进行设置
  • -i选项可以使得xargs默认的前面输出用{}代替
     示例:
     find . -type f -print | xargs file
     find / -name "core" -print | xargs echo "" >/tmp/core.log
     find . -perm -7 -print | xargs chmod o-w
     find . -type f -print | xargs grep "hostname"
     find . -name "*.log" | xargs -i mv {} test4
 
14.系统路径
FHS(Filesystem Hierarchy Standard)是Linux中文件系统结构的标准,用于统一不同发行版的文件系统结构。
FHS按照2个维度对目录进行分类:是否可变和是否可共享
按照是否可变进行分类:
     可变的:/var/*,主要保存用户产生的数据(例如邮件,新闻组等)和程序运行时的锁等(/var/lock,/var/run)
     不可变的:/etc,/usr,/opt,/boot:安装完成后不会频繁变化的部分,包括可执行文件,配置信息等
 
按照是否可共享分类:
     可共享:/usr,/opt,/var/mail,其它机器可以使用的数据L如可执行程序二进制,邮件等
     不共享:/etc,/boot,其它机器无法使用的数据,如配置信息,启动用的内核等
 
/          :系统根路径,包含/bin,/boot,/lib,/sbin,/etc,/dev等,直接出现在根这些路径都是和启动直接相关的,需要放在根下
/bin     :重要的可执行,用于启动过程和单用户模式下
/boot  :包含kernel文件和grub
/dev    :设备文件
/etc     :各种配置文件,各种服务的启动脚本
/home :用户的home路径的根
/lib      :共享库(主要用于/bin和/sbin),以及在/lib/moudles下的内核模块
/media:挂载可移除设备
/mnt    :临时挂载
/opt     :安装第三方包的,就是不包括在发新版中的包,也可以放在/usr/local中
/root    :root用户的Home目录
/proc   :临时文件系统,进程信息
/sys     :临时文件系统,内核信息
/usr     :不是user的意思,是Unix Software Resource的缩写,用于存储软件资源,通常是发行版锁带的软件,存在子目录/usr/bin,/usr/sbin,/usr/lib等
/usr/src:存放源码的地方,例如内核源码放在/usr/src/linux
/usr/local:与/usr结构类似,存储用户安装的软件资源,存在子目录/usr/local/bin,/usr/local/sbin,/usr/local/lib等
 
15.文件类型
     -:普通文件
     d:目录文件
     c:字符设备
     b:块设备
     s:socket文件
     l:软连接
     p:管道或者fifo
 
16.chmod
-R:遍历子目录
 
17.tar
linux中需要区分打包和压缩,tar只提供打包,压缩功能由其它程序提供。-c,-x,-t分别是压缩解压和显示,可以三选一,-v用于显示详情,可选,-f用于指定文件名
-c 建立新的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-v 显示操作过程
-f 指定压缩文件
-z 支持gzip解压文件
-j 支持bzip2解压文件
-Z 支持compress解压文件
 
常见后缀的处理方式:
.tar

解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName

.gz

解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName

.bz2

解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName

.bz

解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知

.Z

解压:uncompress FileName.Z
压缩:compress FileName

.zip

解压:unzip FileName.zip
压缩:zip FileName.zip DirName

.rar

解压:rar x FileName.rar
压缩:rar a FileName.rar DirName 

.tar.gz/ .tgz

解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName

.tar.bz2

解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName

.tar.bz

解压:tar jxvf FileName.tar.bz
压缩:未知

.tar.Z

解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName

 
18./etc/group
Linux中一个用户可以属于多个组,每个组也可以包含多个用户。/etc/group记录了系统中所有的组以及各组的成员。
格式如下:
    组名:口令:组标识号:组内用户列表
 
19.diff
diff用于比较文件或者目录,用diff比较文本文件的结果可以用于补丁。采用patch命令,可以对文件进行打补丁。
 
20.grep
grep命令用于文本搜索,能使用正则表达式搜索,并打印匹配行。
 
格式:
    grep [option] pattern [file]
        option是各种搜索选项
        pattern是正则表达式
        file是被搜索的文件,如果省略,则从标准输入读取
 
返回值:
    0:找到匹配
    1:未找到匹配
    2:文件不存在
 
选项:
    -c:对匹配的行计数
    -f:从规则文件中读取pattern,规则文件的每一行代表一个pattern,支持多个规则
    -i:忽略大小写
    -n:显示匹配行的行号
    -v:查找不匹配的行
 
匹配规则:
    ^:锚定行的开始: 
  • '^grep'匹配所有以grep开头的行
    $:锚定行的结束: 
  • 'grep$'匹配所有以grep结尾的行
    . :匹配一个非换行符的字符:
  • 'gr.p'匹配gr后接一个任意字符,然后是p
    * :匹配零个或多个先前字符: 
  • '*grep'匹配所有一个或多个空格后紧跟grep的行
  • ’ab*cd’匹配以a开始cd结束中间包含0个或者多个b的字符串,如acd,abcd,abbacy,abbac
    .*:代表任意字符
    []:匹配一个指定范围内的字符
  • '[Gg]rep'匹配Grep和grep
    [^]:匹配一个不在指定范围内的字符
  • '[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行
    <:锚定单词的开始
  • '<grep'匹配包含以grep开头的单词的行
     >:锚定单词的结束
  • 'grep>'匹配包含以grep结尾的单词的行
    x{m}:重复字符x,m次
  • '0{5}'匹配包含5个0的行
    x{m,}:重复字符x,至少m次
  • 'o{5,}'匹配至少有5个o的行
    x{m,n}:重复字符x,至少m次,不多于n次
  • 'o{5,10}'匹配5--10个o的行
    w:匹配文字和数字字符,也就是[A-Za-z0-9]
  • 'Gw*p'匹配以G后跟零个或多个文字或数字字符,然后是p
    W:w的反置形式,匹配一个或多个非单词字符
    :单词锁定符
  • 'grep'只匹配grep。
 
21.wc
用于统计行数,字符数,单词数
-c:统计字节数
-l:统计行数
-m:统计字符数
-w:统计字数
 
22.ps
 
关于 ps -aux 和 ps aux的区别
ps的命令参数格式支持unix风格和BSD风格,unix风格的参数以’-‘开始,bsd风格参数开始没有’-‘。unix风格参数中-u表示指定用户,严格的说,ps -aux表示显示用户名为x的全部进程,如果用户x不存在则应当报错。但是在实现过程中,为了兼容老的脚本,ps将ps -aux理解为ps aux,按照bsd风格处理。
 
ps命令不加参数显示的是哪些进程
需要满足2个条件:
1.进程的用户为当前调用用户 
2.进程关联的终端为当前调用者的终端
 
选项:
a 去除bsd风格中只显示当前用户进程的限制。
-A,-e 选中所有进程
-f 显示更多的附加列:UID,PPID,STIME等
-F 在-f的基础上增加扩展的附加列:SZ,RSS,PSR
 
23.kill
kill命令可以向指定进程发送信号,如果未指定将发送信号SIGTERM(15)
 
格式:
    kill[选项][进程号]
 
选项:
-l 列出所有信号
-9 发送SIGKILL给进程,强制终止进程。kill命令可以带信号号码选项
 
可以用于终止进程的信号:
HUP       1    终端断线
INT         2    中断(同 Ctrl + C)
QUIT      3    退出(同 Ctrl + )
TERM    15    终止
KILL       9    强制终止
CONT    18    继续(与STOP相反, fg/bg命令)
STOP     19    暂停(同 Ctrl + Z)
 
24.vmstat
显示内存管理系统的状态.
 
25.iostat
显示io设备的状态
 
26.watch
反复重复执行一个命令,用于监视命令执行结果
 
格式:
    watch [选项][命令]
 
27.at
单次的计划任务,用于在指定时间执行一条命令,不支持重复执行,需要atd服务运行。
 
28.crontab
可重复执行的计划任务,用于周期性的执行某种任务。需要crond服务运行
 
29.lsof
显示系统中已经打开的文件
 
格式:
    lsof [选项][文件]
 
支持的文件类型:
  • 普通文件
  • 目录
  • 网络文件系统的文件
  • 字符或设备文件
  • (函数)共享库
  • 管道,命名管道
  • 符号链接
  • 网络文件(例如:NFS file、网络socket,unix域名socket)
  • 其它类型

选项:
    -c:指定进程名
    -p:指定pid
    -u:指定用户uid
 
30.ifconfig
网络设备管理
 
格式:
    ifconfig [网络设备] [选项]
 
选项:
    up:启动设备
    down:关闭设备
    -promisc:混杂模式控制
    -a:显示全部接口信息
    -s:显示各个接口的统计信息
 
31.route
操作或者查看系统路由表。
 
格式:
    route [-f] [-p] [Command] [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]
 
路由表中的项目:
Destination         Gateway             Genmask         Flags     Metric Ref    Use     Iface
0.0.0.0                192.168.85.2       0.0.0.0             UG        100     0        0         ens33
169.254.0.0         0.0.0.0                255.255.0.0     U           1000   0        0         ens33
192.168.85.0       0.0.0.0                255.255.255.0 U            100    0        0         ens33
 
    Destination:目标地址或者网段
    Genmask:目标网段的子网掩码,0.0.0.0表示目标地址任意IP,255.255.255.255表示目标地址只能是Destination指定的IP
    Iface:转发的物理端口
    Gateway:转发到的目标主机,只有在Flags中带有G时有效
    Flags:标志。U表示Up,意思是该路由规则启用。G表示Gateway,代表网关是路由器
 
32.ping
确定网络和各外部主机的状态;跟踪和隔离硬件和软件问题;测试、评估和管理网络。
 
选项:
    -f  极限检测。大量且快速地送网络封包给一台机器,看它的回应。
    -r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
    -i 指定测试间隔,秒为单位,默认一秒
    -I 网络界面,指定测试接口
 
33.netstat
用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
 
选项:
    -a,–all:显示所有连线中的Socket。
    -A:指定网络类型 inet或unix
    -l:显示监听中的socket
    -t,-tcp:显示TCP连接
    -u,-udp:显示UDP连接
    -p:显示正在使用接口的程序名称
    -n:显示ip地址,而不是名称
    -i:显示网络接口统计页面
    -r:显示路由表页面
    -s:显示网络统计页面
    -g:显示组播接口界面
   
34.ss
用来获取socket统计信息,类似netstat,但是信息更详细,速度更快。
 
选项:
-a 显示所有套接字
-l  显示监听状态的套接字
-e 显示详细的套接字信息
-p 显示使用套接字的进程
-i  显示 TCP内部信息
-s 显示套接字使用概况
-4 仅显示IPv4的套接字
-6 仅显示IPv6的套接字
-t  仅显示 TCP套接
-u 仅显示 UCP套接字
 
    
 
 
 


 
 
 


 
 
原文地址:https://www.cnblogs.com/zxlben/p/6510612.html