• 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套接字
     
        
     
     
     


     
     
     


     
     
  • 相关阅读:
    关于Snoop的用法
    WPF中Xaml编译正常而Designer Time时出错的解决办法
    TFS自定义开发中的反射应用
    用Fiddler2来监听HTTP(记:用skydrive sdk访问时,出错后用Fidder抓包分析)
    Send Code to evernote by my specify notebook
    Sublime Text2中Evernote 插件的使用
    编译Python出现Tab,空格的问题
    Python 中list, dictionary 与 file相互操作
    import module, from module import funtion区别
    C# 性能总结
  • 原文地址:https://www.cnblogs.com/zxlben/p/6510612.html
Copyright © 2020-2023  润新知