• 循序渐进Linux 2:Linux的常用命令及使用技巧


    一、Shell

      shell本身是一个以C语言编写的程序,是用户和操作系统内核之间通信的桥梁。shell既是一种命令解释程序,又是一种功能强大的解释型程序设计语言。shell解释用户输入的命令,提交到内核处理,最后返回结果给用户。

    1. shell命令语法分析

    command [option] -[arguments]

    2. shell的通配符

    bash中常用的通配符有 * ? []

    *:  匹配任意一个或多个字符

    ?:  匹配任意单一字符

    []:   匹配任何包含在方括号内的单字符

    ls /dev/sda[12345]
    
    /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4 /dev/sda5

    3. shell的重定向

      3.1 输入重定向

      输入重定向用于改变命令的输入源,可以把一个文件的内容作为命令的输入

      输入重定向操作符有 < 和 <<

    // 利用wc统计输入文件的行数、单词数、字符数
    wc</etc/shadow
    
    41 41 1275

      << 是告诉shell当前命令的标准输入是来自命令行中一对分隔号之间的内容

      把一对分隔号aa之间的内容作为wc命令的输入,分隔号可以是任意字符

    ALW-VM# wc<< aa
    heredoc> 1.Test1
    heredoc> 2.Test2
    heredoc> 3.Test3
    heredoc> aa
     3  3 24

      3.2 输出重定向

      输出重定向是指把命令的输出结果保存在一个指定文件中(常用)

      输出重定向操作符: > 和 >>

    ALW-VM% ps -ef >ps.txt
    ALW-VM% ls
    a  ps.txt  testgfile1
    ALW-VM% vim ps.txt

      > 与 >>的区别:

      如果 > 后面指定的文件不存在,则会自动创建;如果存在,则覆盖

      >> 操作符不会覆盖原文件,会把新的信息追加到原文件

      3.3 错误重定向

      错误重定向操作符: 2> 和 2>>

    4. shell的管道

      管道可以把很多命令连接起来,可以把第一个命令的输出当作第二个命令的输入,以此类推

      管道符: |

    ALW-VM% ps -ef | grep httpd        
    juntaran  38489  38426  0 20:19 pts/3    00:00:00 grep httpd
    ALW-VM% ps -ef | grep httpd | wc -l
    1

    5. shell的引用

      bash中有很多特殊字符,本身就具有特殊含义。如果shell的参数中使用它们就会出现问题。

      引用技术来忽略这些自负的特殊含义,通知shell把这些特殊字符当作普通字符处理

      转义字符    单引号 ' '  双引号 ""

      5.1 转义字符

      把 放到特殊字符前面,shell就忽略这些特殊字符的特殊含义

      5.2 单引号 ' '

      把字符串放到一对单引号之间,那么字符串中所有特殊字符的特殊含义均忽略

      5.3 双引号

      双引号与单引号基本相同,但是有些特殊字符用双引号括起来也会发挥作用

      比如 $ 和 `

    ALW-VM% echo The date is `date`
    The date is 2016年 11月 07日 星期一 20:25:46 CST
    ALW-VM% echo 'The date is `date`'
    The date is `date`
    ALW-VM% echo "The date is `date`" 
    The date is 2016年 11月 07日 星期一 20:26:23 CST

    二、系统管理与维护

    1. ls命令

      dir命令与ls命令相同,显示工作目录下的内容,列出所含文件与子目录

    ls [选项] [路径或文件]
    选项 说明
    -a 显示所有文件与子目录,包括隐藏文件
    -d 只显示目录列表
    -l 同时列出权限、使用者、大小等
    -s 文件名后输出文件的大小
    -k k字节形式表示文件大小
    -u 以访问时间排序
    -t 以时间排序
    -o 显示除组外详细信息
    -x 按列输出,横向排序
    -r 反向排序
    -q 用?代替不可输出字符
    -m 横向输出文件名,以 , 作为分隔符
    -S 以文件大小排序
    -R 列出所有子目录下文件
    -pF 文件名后说明类型,*是可执行普通文件,/是目录,@是符号链接,|是FIFO,=是套接字
    -C 按列输出,纵向排序
    -Q 把输出文件名用双引号括起来

    2. pwd命令

      显示当前工作目录,绝对路径

    3. cd命令

    cd [目录名]
    选项 说明
    cd 目录 切换到该目录,区分大小写
    cd 或 cd ~ 返回当前用户默认工作目录
    cd ~用户名 返回指定用户工作目录
    cd .. 返回到上级目录
    cd / 返回到根目录

    4. date命令

    date [选项] 显示时间格式(+开头,后面接时间格式)
    选项 说明
    -s / -set 设置系统时间
    -d / -date 显示描述日期

    5. passwd命令

      设置用户密码

    passwd                // 普通用户
    passwd [用户名]        // root用户            

    6. su命令

      改变用户身份

    su [选项] [用户名]
    选项 说明
    - 加载相应用户下环境变量
    -l 是目前shell成为改变身份后用户默认shell
    -c 改变身份运行一个指令就结束
    -m 改变用户身份,不改变环境变量

    7. who命令

      显示目前登录到系统的用户

    who am i
    who am I
    who -m
    // 三条命令结果相同

    8. w命令

      显示登录到系统的用户信息

    9. uname命令

      显示操作系统相关信息

    ALW-VM% uname
    Linux
    
    ALW-VM% uname -a
    Linux ALW-VM 4.4.0-42-generic #62-Ubuntu SMP Fri Oct 7 23:11:45 UTC 2016 
    x86_64 x86_64 x86_64 GNU/Linux ALW-VM% uname -m x86_64 ALW-VM% uname -n ALW-VM ALW-VM% uname -s Linux ALW-VM% uname -r 4.4.0-42-generic

    10. uptime命令

      输出系统人物队列信息

    11. last命令

      读取/var/log/wtmp文件,列出记录登入系统的用户名单

    12. dmesg命令

      显示开机信息

    选项 命令
    -c 显示开机信息后,清除ring buffer信息
    -s 设置缓冲区大小,默认8192
    -n 设置记录信息的层级

    13. free命令

    free [选项] [-s (间隔秒数)]
    选项 说明
    -b 以字节为单位显示内存使用情况
    -m 以MB为单位显示内存使用情况
    -K 以KB为单位显示内存使用情况
    -t 显示内存总和列
    -s (间隔秒数) 每隔_秒持续显示
    -o 不现实系统缓冲区队列

    14. ps命令

      显示系统进程瞬间运行状态

    ps [选项]
    选项 说明
    a 显示所有用户进程,包含每个程序完整路径
    -x 显示所有系统程序
    -u 显示使用者名称与起始时间
    -f 详细显示程序的路径群
    -c 只显示进程的名字不显示完整路径
    -e 除内核进程以外所有进程信息写到标准输出

    15. top命令

      实时显示系统各个进程资源占用情况,可以根据CPU、内存、执行时间对进程排序

    top [选项]
    选项 说明
    -d 指定每两次刷新间隔
    -i 不显示闲置或僵死进程
    -c 显示进程整个命令路径
    -s 安全模式,交互式指令取消
    -b 分屏显示输出信息,结合-n可以把屏幕信息输出到文档
    -n 更新次数,完成后退出

    三、文件管理与编辑

    1. mkdir命令

      创建目录

    mkdir [选项] 目录名
    选项 说明
    -m 对新建目录设置存取权限
    -p 递归创建不存在目录,一次创建多个

    2. more cat less 命令

      查看文件内容

      cat可以把内容输出到标准输出,也可用于连接合并文件

    cat 文件1 文件2 >文件3
    选项 说明
    -A 制表符显示为^I,同时行尾显示一个$
    -b 非空号按顺序编号,从1开始

    3. diff命令

      逐行比较文件差异,如果比较的是目录,则比较相同文件名的文件,但不会比较子目录

    diff [选项] 文件1 文件2
    选项 说明
    -c 显示全部内容,并标出不同
    -b 忽略行尾空格,字符串中一个或多个空格视为相同
    -r 当比较目录时会比较子目录文件
    -s 当两个文件相同,显示文件相同信息

    4. grep命令

      文本过滤工具,根据指定字符串对文件每一行进行搜索,找到了,则输出

    grep [选项] 需要查找的字符串文件名
    选项 说明
    -A NUM 除了列出符合条件的行外,同时列出每个符合条件行的后NUM行
    -B NUM 与-A相反,列出之前NUM行
    -c 只显示行数,不列出具体信息
    -f file 事先将要搜索样式写入一个文件,每行一个样式,根据文件搜索
    -i 忽略大小写
    -n 显示行号

    5. rm命令

       删除文件/目录

    rm [选项] 文件/目录
    选项 说明
    -r 递归删除,如果没有-r rm命令不能删除目录
    -f 忽略不存在的问题
    -i 交互式删除,删除前确认

    6. touch命令

      改变指定文件访问时间和修改时间,如果不存在则创建此文件,如果没有指定时间使用当前时间

    touch [选项] 设定的时间文件
    选项 说明
    -a 改变文件访问时间为系统当前时间,无须设置时间选项
    -m 改变文件修改时间为系统当前时间,无须设置时间选项
    -c 如果文件不存在,不创建也不提示
    -d或-t 使用指定日期或时间
    -r<参考文件或目录> 把指定文件或目录的日期、时间设成与参考文件或目录相同

    7. ln命令

      在文件或目录之间创建链接

      硬链接:  通过文件inode号进行链接,多个文件指向同一个inode号,

            只有所有链接都删除后文件才会真的被删除

      软链接:  符号链接,类似于快捷方式

    ln [选项] 源文件 目标链接名
    选项 说明
    -f 在目标位置存在与链接名相同文件,这个文件将删除
    -s 软链接
    -d 允许系统管理员硬链接自己目录
    -b 对将在链接时会覆盖或删除的文件进行备份

    8. file命令

      显示文件类型,长度为0的文件识别为空文件,符号连接文件默认显示引用的真实文件路径

    file [选项] 文件名
    选项 说明
    -b 显示文件类型结果,不显示对应文件名称
    -L 直接显示符号链接指向文件类型
    -z 显示压缩文件信息
    -i 如果文件不是常规信息,则不进一步对文件类型进行分类

    9. cp命令

      复制

    cp [选项] 源文件或目录 目标文件或目录
    选项 说明
    -a 复制目录时保罗所有信息,包含文件链接、文件属性、递归复制目录
    -r 给出源文件是个目录,则递归复制所有子目录与文件,目标文件必须为目录名
    -d 复制时保留链接
    -p 保留文件修改时间和存取权限
    -i 如果已有相同目标文件,提示用户是否覆盖

    10. find命令

      指定路径查找指定文件

    find 路径名[-options] [-print -exec -ok 命令 {} ;]
    -options 说明
    -name '字符串' 查找文件名匹配的文件
    -lname '字符串' 查找文件名匹配的符号链接文件
    -gid n 查找属于ID号为n的用户组的文件
    -uid n 查找属于ID号为n的用户文件
    -empty 查找大小为0的文件或目录
    -path '字符串' 查找路径名匹配的文件
    -group '字符串' 查找匹配用户组的文件
    -depth 搜索目录深度
    -prune 目录 指出搜索时忽略的目录
    -size n 查找文件长度为n的文件,带有c时表示文件长度以字节计
    -user '字符串' 查找匹配用户的字符串
    -mtime +n/-n 按时间搜索,+n是n天之前,-n是今天到n天之前的
    -type 文件类型

    按文件类型搜索 b:块设备文件、 c:字符设备文件、

    f:普通文件、 l:符号文件、 d:目录、 p:管道、

    s:socket文件

      -print: 将搜索结果输出到标准输出

      -exec:  对符合条件文件执行所给Linux命令

      -ok:   对符合条件文件执行所给Linux铭刻,会询问用户是否执行

    11. split命令

      分割文件

    split [选项] [输入文件] [输出文件]
    选项 说明
    -b size 指定分割出来文件大小,size可加入单位,b代表512字节,k代表1KB,m代表1MB
    -n 指定分割每个文件长度,默认1000行
    -d 生成文件序列以数字形式命名
    -a 指定生成文件序列长度,默认长度为2

    12. mv命令

      对文件或目录执行改名或剪切操作

    mv [选项] 源文件或目录 目标文件或目录
    选项 说明
    -i 对已存在文件或目录,会询问是否覆盖
    -f 默认覆盖,无交互

    四、压缩与解压

    1. zip/unzip命令

      生成后缀名为 .zip 的压缩包

    zip [选项] 压缩文件名 需要压缩的文档列表
    unzip [选项] 压缩文件吗

      zip命令选项:

    选项 说明
    -r 递归压缩,包括目录、子目录、文件
    -d 从压缩文件内删除指定文件
    -i "文件列表" 只压缩文件列表内文件
    -x "文件列表" 压缩时排除文件列表中指定的文件
    -u 更新文件到压缩文件中
    -m 压缩后删除原始文件
    -F 尝试修复受损的压缩文件
    -T 检查压缩文件内每个文件是否正确
    - 压缩级别 1-9数字 9最高

      unzip命令选项:

    选项 说明
    -x "文件列表" 解压文件,但不包括文件列表中指定的文件
    -t 测试是否损坏,不解压
    -v 查看压缩文件详细信息,不解压
    -n 解压时不覆盖已经存在文件
    -o 解压时覆盖已存在文件,无用户交互
    -d 目录名 把解压文件解压到指定目录

    2. gzip/gunzip命令

      压缩文件预设扩展名为 .gz gunzip是gzip的硬链接,无论压缩还是解压都可以通过gzip实现

      gzip只能压缩文件,不能压缩目录,即使指定目录也只能压缩目录内所有文件

    gzip [选项] 压缩/解压文档名
    选项 说明
    -d 解压
    -r 递归压缩目录下子目录所有文件
    -t 检查压缩文档完整性
    -v 对每个压缩和解压的文档,显示相应文件名和压缩比
    -l 显示压缩文件的压缩信息
    -num 指定压缩比例 -1/-fast为最低压缩比,-9/-best是最高压缩比,默认为6

    3. bzip2/bunzip2命令

      类似于gzip/gunzip,只能对文件进行压缩,默认后缀 .bz2 

      bunzip2是bzip2的符号链接,压缩解压都可以通过bzip2实现

    bzip [选项] 压缩/解压的文件
    选项 说明
    -d 执行解压,此时选项后跟着解压缩文件
    -v 压缩或解压时显示详细信息
    -k 压缩或解压后默认删除原始文件,此选项保留原始文件
    -f bzip2压缩或解压后若输出文件与现文件同名,预设不会覆盖现有文件,该选项直接覆盖
    -t 测试压缩文件完整性
    - 压缩级别 1-9数字,数字越大,压缩率越高

    4. tar命令

      tar是归档工具,归档为一个文件,但是不会压缩

    tar [主选项+辅助选项] 文件或目录

      主选项:

    主选项 说明
    -c 新建文件
    -r 要归档文件追加到档案文件末尾
    -t 列出档案文件中已经归档的文件列表
    -x 从打包的档案文件中还原文件
    -u 更新档案文件,新建文件替换档案中的原始文件

      辅助选项:

    辅助选项 说明
    -z 调用gzip 在文件打包的过程中压缩/解压文件
    -w 还原文件时,文件修改时间设为当前时间
    -j 调用bzip2 在文件打包过程中压缩/解压文件
    -Z 调用compress命令过滤档案
    -f 后面紧跟档案文件存储设备,-f 必须是tar最后一个选项
    -v 创建归档文件过程中,显示各个归档文件名称
    -p 文件归档规程中,文件属性不变
    -N "yyyy/mm/dd" 指定日期后的文件才会被打包
    --exclude file 打包过程中,忽略file文件
    tar -zcvf [目录]/压缩包文件名.tar.gz 源文件     // 调用gzip压缩
    tar -zxvf [压缩包文件名.tar.gz] -C  [路径]/    // 解压到指定路径
    
    tar -jcvf [目录]/压缩包文件名.tar.bz2 源文件    // 调用bzip2压缩
    tar -jxvf [压缩包文件名.tar.bz2] -C [路径]/    // 解压到制定路径

    5. dd命令

      转换或复制文件,同时对设备进行 备份

    dd if="input_file" of="output_file" bs="block_size" count="number"
    选项 说明
    if 输入文件,可以是设备,比如磁盘某分区或整个磁盘
    of 输出文件,可以使输出设备,比如磁盘、磁带等
    bs 指定一个block大小,默认512字节
    count bs的数量
    dd if=/dev/sda2 of=/opt/sda2.back    // 备份/dev/sda2分区

    6. cpio命令

      以重定向方式打包、备份、还原、回复文件的工具,可以解压以 .cpio 或 .tar 结尾的文件

    cpio [选项] > 文件名或设备名
    cpio [选项] < 文件名或设备名
    选项 说明
    -o 文件复制、打包成文件或把文件输出到设备
    -i 文件解压或把设备上的备份还原到系统
    -t 查看cpio打包的文件内容与输出到设备上的文件内容
    -v 显示打包过程中的文件名
    -d 在cpio还原文件过程中,自动建立相应目录
    -c 一种较新的存储方式
    -B 默认块增大到5120字节,默认块为512字节,可以加快存取速度

    五、磁盘管理与维护

    1. df命令

      检查Linux系统的磁盘空间占用情况

    df [选项]
    选项 说明
    -h 以容易理解格式输出文件系统分区占用情况
    -k 以KB为单位输出文件系统分区占用情况
    -m 以MB为单位输出文件系统分区占用情况
    -a 列出所有文件系统分区,包含0大小文件系统分区
    -i 列出文件系统分区的inode信息
    -T 显示磁盘分区的文件系统类型

    2. du命令

      显示文件或目录所占用磁盘空间情况

    du [选项] 文件或目录
    选项 说明
    -s 显示文件或整个目录的大小,单位为KB
    -b 以字节尾单位显示文件大小或显示目录下所有文件大小
    -sh 人性化格式显示文件或目录大小
    -sm 以MB为单位显示文件或目录大小

    3. fsck命令

      检查文件系统并尝试修复错误

    fsck [选项] [-t <文件系统类型>] [设备名]
    选项 说明
    -a 自动修复文件系统,无提示
    -r 交互式修复模式
    -A 依照 /etc/fstab 配置文件内容,检查文件内所列全部文件系统
    -T 执行fsck命令时不显示标题信息
    -V 显示执行过程
    -N 不执行指令,仅列出实际执行进行的动作

    4. sync命令

      强制把内存中的数据写回硬盘,防止数据丢失

    sync

    5. eject命令

      退出抽取式设备,如果已经挂载,则先卸载再退出

    eject [选项] 设备名
    选项 说明
    -c <光驱编号> 若有多个光驱需要指定光驱号
    -d 或 --default 显示默认设备,误操作
    -f 或 --floppy 退出抽取式软盘
    -q 或 --tape 退出磁带
    -r 或 --cdrom 退出光盘
    -t 或 --trayclose 关闭光盘托盘
    -n 或 --noop 显示指定设备名对应的设备文件路径,默认显示光盘的设备文件路径

    6. mount/unmout命令

      挂载/卸载指定文件系统

    mount [选项] [-L<标签>] [-o<选项>] [-t<文件系统类型>] [设备名] [挂载点]
    // 标签是磁盘分区标识的别名,随便起 -o选项是指加载文件系统时的选项 文件系统类型是指设备的文件系统类型
    umount [挂载点]
    选项 说明
    -a 加载文件 /etc/fstab 指定所有设备
    -n 不将加载信息记录在 /etc/mtab 文件中
    -r 只读方式打开设备
    -w 可读写模式加载设备,输入mount默认设置
    -f 或-v 不加载设备,仅查看mount挂载状态

    六、网络设置与维护

    1. ifconfig命令

      配置网络或显示当前网络接口状态

    ifconfig [选项] [interface] [inet|up|down|netmask|adr|broadcast]
    
    // interface:网络接口名 eth0,添加后仅显示指定网卡信息
    // up:激活一个网络接口
    // down:关闭一个网络接口
    // netmask:为一个指定的网络接口指定子网掩码
    // addr:网络接口指定的IP地址
    // broadcast: 为指定的接口设置广播地址
    选项 说明
    -a 显示所有网络接口信息,包括活动与非活动
    -s 仅显示每个活动接口摘要信息
    -v 如果某个网络接口出现错误,返回错误信息

    2. scp命令

      secure copy,用于把目录或文件从一个Linux复制到另一个Linux,传输数据采用SSH协议

    // 远程复制到本地
    scp 远程用户名@ip地址:文件绝对路径 本地Linux系统路径
    // 本地复制到远程
    scp 本地Linux系统路径 远程用户名@ip地址:远程文件绝对路径名

    3. netstat命令

      显示本机网络连接、运行端口和路由表信息

    netstat [选项]
    选项 说明
    -a 显示本机所有连接和监听接口
    -n 以网络IP地址形式显示当前建立的有效连接和端口
    -r 显示路由表信息
    -s 显示按协议的统计信息
    -v 显示当前有效连接
    -t 显示所有TCP连接
    -u 显示所有UDP连接
    -c 秒数 每隔几秒刷新一次
    -i 显示自动配置接口状态
    -l 仅显示连接状态为LISTEN的服务的网络状态
    -p 显示连接对应的PID与程序名

    4. traceroute命令

      显示网络数据包传输到指定主机的路径信息,追踪数据传输路由状况,预设数据包大小为38字节

    traceroute [选项] [远程主机名或IP地址] [数据包大小]
    选项 说明
    -i 网络接口 使用指定的网络接口发送数据包
    -n 直接使用IP地址而不是用主机名
    -v 详细显示命令的执行过程
    -w 超时描述 设置等待远程主机回应的时间
    -x 开启或关闭对数据包的正确检验
    -s 源IP 设置本地主机发送数据包的IP地址
    -g 网关地址 设置来源的路由王冠,最多8个

    5. telnet命令

      通过telnet协议与远程主机通信或获得远程主机对应端口信息

    telnet 主机名或IP地址 端口

    6. wget命令

      下载

    wget [要下载软件网址]
  • 相关阅读:
    strtok() and strtod()
    quernation,euler,rotationmatrix之间的相互转换
    Ubuntu16.04+Ros+Usb_Cam ORB SLAM2
    windows10下VS2013搭建opencv2.4.9吐血之作
    深度学习之numpy.poly1d()函数
    matplotlib动态图subplots()和subplot()不同及参数
    python学习之matplotlib绘制动图(FuncAnimation()参数)
    javascipt——jQuery
    Javascript——(2)DOM
    linux nc 命令详解
  • 原文地址:https://www.cnblogs.com/Juntaran/p/6040542.html
Copyright © 2020-2023  润新知