• Linux 常用命令总结(一)


    一、基本概念

    1、为什么学习命令操作而不用界面操作?

      Linux 作为服务器,使用图形界面会占用更多的系统资源,且影响稳定性、安全性。而且一个服务器连个显示屏都没有,图形界面毫无作用,所以命令行操作是 Linux 的必备技能。

    常用命令手册:
      https://www.runoob.com/linux/linux-command-manual.html

    2、命令格式

    【格式:】
        [root@localhost ~]# 命令 [选项] [参数]
    注:
        [root@localhost ~]# 是登录系统后看到的内容。
        其中 
            []、@ 没有特殊含义,作为分隔符号。
            root 表示当前登录的用户,切换成普通用户,会显示普通用户名。
            localhost 表示当前主机名。
            ~ 表示当前所在的目录,初始登录时显示 ~,表示为家目录(主目录)。
                root 用户家目录在  /root,普通用户家目录在 /home/用户名。
           # 表示当前登录用户为管理员,若为普通用户,则显示为 $。
           
        命令 [选项] [参数]
        其中
            选项,为可选项,用于调整命令的功能。
            参数,为可选项,用于调整命令的操作对象。

    3、文件类型

      Linux 内部一切皆文件,不同的类型的文件代表不同的意义。

    【类型:】
        -        表示常规文件,如 文本文件、压缩文件、二进制文件。
        d        表示目录文件(directory)
        b        表示块设备文件(block device),如硬盘
        c        表示字符设备文件(character device),如键盘、鼠标
        s        表示套接字文件(socket),用于网络数字连接、通信
        p        表示管道文件(pipe)
        l        表示链接文件(symbolic link),即快捷方式

    4、帮助命令

      用于查看命令的说明文档。

    【格式:】
        man [命令]    弹出一个窗口,按 Q 退出
        help [命令]   控制台显示
    
    【举例:】
        [root@localhost test]# help echo

    二、文件目录操作指令

    1、pwd(显示当前目录的绝对路径)

      指的是 print work directory 的缩写,即打印工作目录。
      用于输出当前工作目录的绝对路径,以便于判断当前所在目录的位置。

    【格式:】
        pwd
        
    【举例:】
        [root@localhost ~]# pwd

    2、ls(显示当前目录下的文件、目录)

      指的是 list 的缩写,即目录、列表。
      用于输出当前工作目录、或者指定目录下的所有内容。

    【格式:】
        ls [选项] [目录名]
    注:
        若目录名不存在,则输出当前工作目录下的内容。若存在,则输出指定目录的内容。
        常用选项:
            -a      用于显示全部文件,包括以 . 开头的隐藏文件。
            -h      以一种易读的方式显示文件或者目录的大小。K、M。
            -l      以列表的形式列出目录信息。ls -l 可以简写为 ll
            
    【举例:】
        [root@localhost ~]# ls -alh

    3、cd(切换目录)

      指的是 change directory 的缩写,即切换目录。
      用于切换工作目录。

    【格式:】
        cd [相对路径 / 绝对路径]
    注:
        特殊路径符号:
            .    代表当前目录
            ..   代表当前目录的上一级目录
            ~    代表当前目录的家目录(主目录)
            -    代表上一次操作所在的目录
            /    代表根目录
            
    【举例:】
        [root@localhost test]# cd /

    4、mkdir(创建一个目录)

      指的是 make directories 的缩写,即创建目录。
      用于创建一个目录。

    【格式:】
        mkdir [选项] 目录名
    注:
        常用选项:
            -p       用于递归创建所有的目录。对于多级目录且有些目录不存在的情况,若不使用 p 选项,则需要自己一级级的创建目录。
            -m       用于自定义目录的权限。
    
    【举例:】
        [root@localhost test]# mkdir -p a/b/c

    5、rmdir(删除一个空目录)

      指的是 remove empty directories 的缩写,即删除空目录。
      用于删除空目录,只有空目录才能被删除,不是空目录,会出错。

    【格式:】
        rmdir [选项] 目录名
    注:
        常用选项:
            -p     递归删除空目录,从最下层目录往上删
        
    【举例:】
        [root@localhost test]# rmdir -p a/b/c

    6、rm(删除文件、目录)

      指的是 remove 的缩写,即删除。
      用于永久性删除没用的文件,慎用。删除前最好进行一次备份。

    【举例:】
        rm [选项] 文件或目录
    注:
        常用选项:
            -f     强制删除,不会提示删除信息,直接删除目录或文件
            -r     递归删除,可用于删除多级目录
            -i     显示提示信息
            
    【举例:】
        [root@localhost test]# rm -fr a/

    7、touch(创建空文件)

      用于创建空文件。

    【格式:】
        touch 文件名
        touch 文件名1 文件名2
        
    【举例:】
        [root@localhost test]# touch test.txt test2.txt

    8、cp(拷贝文件或目录)

      指的是 copy 的缩写,即拷贝。
      用来复制文件、目录。可以自定义文件名。

    【格式:】
        cp [选项] 源文件位置 目标文件位置
    注:
        常见选项:
            -r     用于递归复制目录
            
    【举例:】
        [root@localhost test]# cp test.sh d/test2.sh
        [root@localhost test]# cp -r d a/b/

    9、mv(移动或重命名文件、目录)

      指的是 move 的缩写,即移动。
      用于移动或重命名目录、文件。

    【格式:】
        mv 源文件位置 目标文件位置
    
    【举例:】
        [root@localhost test]# mv test.sh test2.sh
        [root@localhost test]# mv test2.sh a/

    10、ln(创建软链接、即快捷方式)

      用于给文件、目录创建一个软链接,即快捷方式,通过软链接可以访问源文件。

    【格式:】
        ln [选线] 源文件 目标文件
    注:
        -s    用于建立软链接文件,如果不存在,则会创建硬链接文件。软链接用的较多。
        -f    强制建立文件,若目标文件存在,则先删除目标文件再创建链接文件。
        
    【举例:】
        [root@localhost test]# ln -s a b
        [root@localhost test]# ln -s a.txt c

    11、vim(打开文本编辑器)

      用于对文本进行修改。
      可以查看:https://www.cnblogs.com/l-y-h/p/11436870.html#_label1

    12、history(查看历史指令)

      用于查看历史指令,以及执行历史指令。

    【格式:】
        history     查看所有的历史指令
        history 10  查看最近 10 条历史指令
        history -c  用于清空历史指令
        !历史编号    用于执行历史的某条指令
        
    【举例:】
        [root@localhost test]# history 10
        [root@localhost test]# !307
        [root@localhost test]# history -c

    13、<、<<、> 、>> (重定向、追加)

      输入重定向:指的是重新指定设备来代替键盘作为新的输入设备。
      输出重定向:指的是重新指定设备来代替显示屏作为新的输出设备。
      通常新的输入设备指的是 文件、命令的执行结果。新的输出设备指的是 文件。

    【格式:】
        命令 < 文件       输入重定向,将文件作为命令的输入设备
        命令 << 分界符    输入追加,当遇到分界符后,才会停止接受输入
        命令 > 文件       输出重定向,将命令的正确的执行结果输入到文件中,若文件已存在,会覆盖
        命令 >> 文件      输出追加,将命令的正确的执行结果输入到文件中,若文件已存在,则在原数据后追加数据。
        命令 2> 文件      将命令执行的错误输出输入到文件中,若文件存在,则覆盖
        命令 2>> 文件     将命令执行的错误输出输入到文件中,若文件存在,则在原数据后追加。
        命令 &>> 文件     将命令执行结果(综合 >> 、 2>>)输入到文件中,若文件存在,则追加数据。
        
    【举例:】
        [root@localhost test]# cat << 0 > test.txt
        [root@localhost test]# cd d >> test.txt
        [root@localhost test]# cd d 2>> test.txt
        [root@localhost test]# cd f &>> test.txt 

    14、echo(显示内容到控制台)

      用于输出内容到控制台。

    【格式:】
        echo [选项] [输出内容]
    注:
        选项:
            -e   用于启用转义字符
    
    【举例:】
        [root@localhost test]# echo -e "hello 	 world"

    15、cat(连接文件并显示内容)

      指的是 concatenate 的缩写,即连接。
      常用于显示文本内容。会一次性显示出所有内容,不适合查看大文件,影响效率。

    【格式:】
        cat [选项] 文件名1 [文件名2 ...]   可以连接多个文件,并显示
        cat 文件名 | more                 可以用于查看大文件 
    注:
        选项:
            -n 显示行号
    
    【举例:】
        [root@localhost test]# cat test.txt 
        [root@localhost test]# cat -n test.txt test2.txt 

    16、more(分屏显示文件内容)

      通常用于分屏查看大文件。
      会打开一个交互页面,并显示百分比。

    【格式:】
        more 文件名
    
    【常用交互命令:】
        Q         退出交互页面
        回车键     显示下一行
        空格键     显示下一页
        B          向上翻页
        F          向下翻页
    
    【举例:】
        [root@localhost test]# man more > test.txt
        [root@localhost test]# more test.txt 

    17、less(分屏查看文件内容)

      与 more 类似,但比 more 更高级。
    区别:
    (1)less 按需加载文件,不是一次性加载完毕,效率比 more 强。
    (2)less 退出后,命令行上不会显示文件,more 会显示。
    (3)less 可以通过上下键显示上下内容,more 不行。
    (4)阅读到文件末尾。less 不会自动退出,more会自动退出。

    【格式:】
        less 文件名
       
    【常用交互命令:】
        Q         退出交互页面
        回车键     显示下一行
        空格键     显示下一页
        B          向上翻页
        F          向下翻页
        g         回到文件首行
        G         回到文件末尾
        
    【举例:】
        [root@localhost test]# man less > test.txt 
        [root@localhost test]# less test.txt 

    18、head、tail (显示文件头部、尾部的内容)

      head 用于显示指定文件头部若干行的文件内容。
      tail 用于显示指定文件尾部若干行的文件内容。

    head 格式:】
        head [选项] 文件名
    注:
        选项:
            -n   行数,默认显示 10-v   显示文件名
    
    【tail 格式:】
        tail [选项] 文件名
    注:
        选项:
            -n  行数,默认显示 10
         -f 显示末尾的数据,并不管监控文件的变化,若文件有变化,则显示变化的内容。 【举例:】 [root@localhost test]#
    head test.txt [root@localhost test]# tail -20 test.txt

    三、压缩、解压目录或文件

    1、tar 命令

      tar -cvf 用于文件打包(后缀名为 .tar)。
      tar -xvf 用于文件解包。
    注:
      打包与压缩的区别:
        打包是将文件和目录当成一个集合,此集合占用空间为 文件目录占用的空间和。
        压缩是通过某种算法,将这个集合中的内容进行某种变化,最终集合占用的空间要小于 文件目录占用的空间和。

    【格式:】
        tar [选项]  文件压缩、解压后的路径  待压缩、解压的路径
    注:
        选项:
            -z     使用 gzip 方式进行压缩、解压(后缀名为 .gz)
            -j     使用 bzip2 方式进行压缩、解压 (后缀名为 .bz2)
            -c     表示进行打包操作(后缀名为 .tar-x     表示进行解包操作
            -v     表示显示解压、打包的过程
            -f    表示指定解压、压缩的文件名
            -C    表示指定解压的目录
        常用组合:
            -zcvf   使用 gzip 方式进行打包并压缩(后缀名为 .tar.gz) 
            -zxvf   使用 gunzip 方式进行解压并解包
            -jcvf   使用 bzip2 方式进行打包并压缩(后缀名为 .tar.bz2)
            -jxvf   使用 bunzip2 方式进行解压并解包
    
    【举例:】
        [root@localhost test]# tar -zcvf ./b/a.tar.gz a
        [root@localhost test]# tar ./b/a.tar.gz -C ./c/

    2、zip、unzip 命令

      zip 用于压缩文件或目录(后缀名为 .zip)。
      unzip 用于解压。

    zip 格式:】
        zip [选项] 文件压缩后的路径  待压缩的路径
    注:
        选项:
            -r  表示递归压缩目录
            -m  表示文件压缩完后,删除源文件
            -v  表示显示压缩的过程
    
    【unzip 格式:】
        unzip [选项] 压缩包名
    注:
        选项:
            -d   可以指定解压的目录
                    
    【举例:】
        [root@localhost test]# zip -rv b.zip a
        [root@localhost test]# unzip -d ./f b.zip 

    3、gzip、gunzip 命令

      gzip 只用于压缩文件,不会压缩目录。(后缀名为 .gz)
      gunzip 用于解压文件。

    gzip 格式:】
        gzip [选项] 压缩的路径
    注:
        选项:
            -c 将压缩文件输出到标准输出中,保留源文件。
            -r 压缩目录下的文件。
            -d 解压文件
            
    【gunzip 格式:】
        gunzip [选项] 压缩的文件
    注:
        选项:
            -r 递归解压目录中的文件,等价于 gzip -rd 
    
    【举例:】 
        [root@localhost test]# gzip -r a
        [root@localhost a]# gunzip -r ../a
        [root@localhost a]# gzip -c a.txt > a.txt.gz
        [root@localhost a]# gzip -d a.txt.gz 

    4、bzip2、bunzip2 命令

      bzip2 只用于压缩文件,不用于压缩目录。(后缀名为 .bz2)
      bunzip2 用于解压文件。
    注:
      bzip2 与 gzip的区别:
      gzip 可以使用 -r 选项递归压缩目录内的文件。bzip2 没有这个选项,即 bzip2 不能压缩目录相关的内容。

    bzip2 格式:】
        bzip2 [选项] 源文件
    注:
        选项:
            -k   压缩文件,并保留源文件
            -d   解压文件
            -v   显示压缩文件的过程
            -f   若解压后文件存在时,可以强制解压替换
    
    【bunzip2 格式:】
        bunzip2 [选项] 压缩的文件
    注:
        选项:
            -k  解压文件,保留源文件
            -v  显示解压文件的过程
        
    【举例:】
        [root@localhost a]# bzip2 -kv a.txt
        [root@localhost a]# bzip2 -d a.txt.bz2
        [root@localhost a]# bzip2 -v a.txt
        [root@localhost a]# bunzip2 -v a.txt.bz2

    四、时间日期类指令

    1、date(显示当前日期)

      用于显示当前日期,以及设置日期。

    【格式:】
        date                                 显示默认格式的日期
        date "+%Y - %m - %d %H : %M : %S"    自定义显示格式(+ 不可省)
        date -s "2020-3-23 15:10:00"         设置时间
    
    【举例:】
        [root@localhost test]# date -s "2020-3-23 15:10:00"
        [root@localhost test]# date "+%Y - %m - %d %H : %M : %S"

    2、cal(显示日历)

      用于显示日历。

    【格式:】
        cal         查看当前月的日历
        cal 年份    查看某年的日历

    五、搜索查找类

    1、find(查找文件、目录)

      用于查找文件、目录。

    【查找文件格式:】
        find [路径] [选项] [表达式]
    注:
        路径    指的是 被查找的路径,包含子目录,默认为当前目录(.)
        表达式  指的是 被查找文件匹配的格式
        选项:
            -name         根据文件名查找
            -iname        根据文件名查找,并忽略大小写
            -mtime        显示过去 n 天前被修改的文件
            -atime       显示过去 n 天被读取过的文件
            -maxdepth    最多查找 n 层目录
            -not         用于查找不满足条件的文件,可以使用 ! 替换
            -o           等价于 OR 操作符
            -type        可以根据 文件类型进行查找,比如-type f、-type d
            -perm        用于根据文件权限进行查找,比如 -perm 774
            -size        用于根据 文件大小查找,(+ 表示大于,- 表示小于),比如 -size +50M
            -empty       用于查找空文件、空目录
    
    【删除找到的文件:】
        find . -type -f -name "a.txt" -exec rm -i {} ;     删除找到的文件,显示提示信息。 ; 不可少
        find . -type -d -name "a.txt" -exec rm -fr {} ;  强制递归删除目录
        
    【举例:】
         [root@localhost test]# find /root/test -type f -name "*.txt" -o -type d -name "b" 
         [root@localhost test]# find . -maxdepth 3 -type d -mtime +1 

    2、locate(查找文件)

      用于快速定位文件路径。根据事先建立好的数据库进行查询(/var/lib/mlocate/mlocate.db)。
      为了保证数据准确性,每次查询前,需要手动 执行以下 updatedb。

    【格式:】
        locate 文件名
        
    【举例:】
        [root@localhost test]# touch b.txt
        [root@localhost test]# updatedb 
        [root@localhost test]# locate b.txt

     

    3、grep(过滤查找)

      对于查找的内容,可以根据自己的需求过滤,最终得到想要的结果。常与 管道符 | 连用。
      管道符(|):命令A | 命令B, 表示将前一个命令 A 的结果传递给下一个命令 B 执行。

    【格式:】
        grep [选项] 查找内容(可以是正则表达式) 源文件
    注:
        选项:
            -i   忽略大小写
            -n   显示行号
            -v   查找不匹配的内容
    
    【举例:】
        [root@localhost test]# grep -in java test.txt 
        [root@localhost test]# grep -vn va$ test.txt

    4、which(查找命令所在的绝对路径)

      用于查找命令所在位置的绝对路径。从 $PATH 中查找。

    【格式:】
        which 命令
    
    【举例:】
        [root@localhost bin]# which pwd

  • 相关阅读:
    http 协议相关问题
    网卡中断及多队列
    Visual Studio Code 配置C/C++环境
    C++通用框架和库
    命令行的艺术
    NetScaler Logs Collection Guide
    C++性能榨汁机之无锁编程
    Codeforces 839E Mother of Dragons【__builtin_popcount()的使用】
    C/C++中__builtin_popcount()的使用及原理
    Codeforces 839D Winter is here【数学:容斥原理】
  • 原文地址:https://www.cnblogs.com/l-y-h/p/12563397.html
Copyright © 2020-2023  润新知