zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    BNUOJ 12756 Social Holidaying(二分匹配)
    HDU 1114 Piggy-Bank(完全背包)
    HDU 2844 Coins (多重背包)
    HDU 2602 Bone Collector(01背包)
    HDU 1171 Big Event in HDU(01背包)
    HDU 2571 命运 (入门dp)
    HDU 1069 Monkey and Banana(最长递减子序列)
    HDU 1160 FatMouse's Speed (最长上升子序列)
    HDU 2594 KMP
    POJ 3783 Balls --扔鸡蛋问题 经典DP
  • 原文地址:https://www.cnblogs.com/l-y-h/p/12563397.html
Copyright © 2011-2022 走看看