• Linux常用命令


    Linux常用命令

    1.cd 切换路径 “change directory”

    [root@VM-8-13-centos ~]# cd libai
    [root@VM-8-13-centos libai]# 
    
    • 1
    • 2

    语法: cd 路径名
    1.路径分为两种
    绝对路径:绝对路径就是从根目录开始出发,每一次切换目录都要从根开始。不需要知道当前这个用户所在位置,直接从根访问到目标目录。
    相对路径:相对路径是从当前用户所在位置开始出发,每一次切换目录都必须要从当前的目录开始出发,访问到目标目录。
    2. cd . 代表当前目录
    cd … 代表返回上一级
    cd 后面不跟任何目录名 默认返回自己家目录

    2.mkdir 创建目录 “make directory”

    [root@VM-8-13-centos ~]# mkdir demo
    
    • 1

    1.mkdir 目录名 --> 创建单个目录
    [root@VM-8-13-centos ~]# mkdir demo
    2.mkdir 目录名1 目录名2 --> 创建多个同级目录
    [root@VM-8-13-centos ~]# mkdir demo1 demo2
    3.mkdir 目录名1/目录名2 -p --> 创建递归层级目录
    参数: -p 代表递归创建
    [root@VM-8-13-centos ~]# mkdir demo1/demo2 -p

    3.ls 显示指定工作目录下的内容及属性信息 “list”

    [root@VM-8-13-centos ~]# ls demo1
    
    • 1

    语法:ls 参数
    参数:
    -a: 显示所有文件及目录(包括以“.”开头的隐藏文件)
    -l: 以列表的形式显示文件详细信息
    -h:显示出文件所占大小

    [root@VM-8-13-centos ~]# ls -l
    
    • 1

    total 2189988
    -rw-r–r-- 1 root root 321528 Mar 4 15:36 access.log
    drwxr-xr-x 3 root root 4096 Mar 27 19:36 demo1

    4.rm 删除文件 “remove”

    [root@VM-8-13-centos ~]# rm -rf demo
    
    • 1

    语法:rm -rf 文件名 *号代表所有
    参数:
    -r:递归删除
    -f:强制删除

    1. touch 创建普通文件
    [root@VM-8-13-centos ~]# touch demotxt
    
    • 1

    语法:touch 文件名
    说明:touch普通文件,普通文件没有层级关系,所以不能存在: touch 文件名/文件名

    6. pwd 显示当前工作路径 “print working directory”

    语法:pwd

    [root@VM-8-13-centos ~]# pwd /root 
    
    • 1

    7. 命令连接符 &&

    说明: 双&& 代表前面和后面的命令按顺序依次执行,先执行前面的命令,后执行后面的命令。但是命令之间没有任何关系。

     [root@VM-8-13-centos ~]# mkdir a/a1/abc/cba a/a2 b c/c1/mn d/d1/d2/food -p && touch b/b1 c/c1/mm d/d1/d2/game 
    
    • 1

    8. tree 以树状图列出目录内容

    语法:tree 参数
    说明:tree命令默认是没有的,需要手动进行在线下载: yum -y install tree、

     [root@VM-8-13-centos ~]# tree 
    . 
    |-- aaa 
    |-- abc 
    |-- access.log 
    |-- bbb 
    |-- demo1 
    | `-- demo2 
    |-- fanmao2g 
    |-- libai 
    |-- xss 
    `-- ZenTaoPMS.16.5.beta1.zbox_64.tar.gz 
    3 directories, 7 files 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    9. cp 复制 “copy”

    1. 复制普通文件
    语法: cp (路径)被复制的文件 (路径)新文件名

    [root@VM-8-13-centos ~]# cp ./a/b/c/mm ./ 
    [root@VM-8-13-centos ~]# ls 
    a mm 
    [root@VM-8-13-centos ~]# cp ./a/b/c/mm ./mn 
    [root@VM-8-13-centos ~]# ls 
    a mm mn 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    注意: 一般复制是不会在当前目录下操作的
    例子:当前我在家目录,将me复制到b目录下起新名为me1

    [root@VM-8-13-centos ~]# cp ./a/b/c/me ./a/b/me1
    
    • 1

    如果当前目录下重名,会提示用户是否覆盖当前目录下的文件,然而普通文件不能覆盖目录。但是如果不在同一目录下,文件是可以重名的。
    2. 复制目录
    语法: cp -r (路径)被复制的目录名 (路径)新目录名

    [root@VM-8-13-centos ~]# cp -r ./a/b/c ./ 
    [root@VM-8-13-centos ~]# ls 
    a c mm mn 
    [root@VM-8-13-centos ~]# cd c 
    [root@VM-8-13-centos c]# ls 
    mm	 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    10. mv 剪切/重命名 “move”

    1. 剪切
    语法: mv (带路径)被剪切的文件名 已存在的路径

     [root@VM-8-13-centos ~]# mv ./a/b/c/mm ./a/b/c/ 
    
    • 1

    2. 重命名
    语法: mv (带路径)被剪切的文件名 不存在的路径

    [root@VM-8-13-centos ~]# mv ./a/b/c/mm ./a/b/c/mn 
    
    • 1

    说明:区分文件类型 ll命令,查看文件的第一位 如果是 d : 代表目录 如果是 - : 代表普通文件

    11. vi/vim 文本编辑器

    说明:vim命令可以编辑普通文件中的内容,可写成自己任何想输入或者保存的内容。
    操作步骤:

    1. 输入命令 vim 文件名
      说明: 如果vim 后面的文件名已存在,则是编辑该文件;如果文件名不存在,一旦保存并退出,则新建该文件。
    2. 进入文件后,当前状态不可以编辑,如果想要编辑,按"i"进入编辑模式
      下方会显示出 – INSERT --代表当前在编辑的模式
    3. 进入编辑模式后,可以随意输入自己想要的内容
    4. 编辑好之后,按"esc"退出编辑模式
    5. 如果想要保存并退出 :wq 如果不想保存并退出 :q!
      注意!!!! 上面的一系列的操作必须都在英文输入法状态下进行操作!!
    [root@VM-8-13-centos ~]# vim demo
    
    • 1

    快捷键:
    6. dd 快速删除一行
    7. gg 快速跳转到第一行
    8. shift + g 快速跳转到最后一行
    9. 快速查找文件中的关键字 :/输入想要查找的内容
    10. 取消高亮 :nohl

    12. 输出重定向

    定义:输出重定向就是把一个含有输出的命令结果,写入到一个文本中,如果这个文本存在,则编辑;如果不存在则新建。
    什么叫做有输出的命令结果: 再执行了一个命令之后,下方会显示一些通过命令打印出的内容,这种命令叫做有输出的命令,例如: ls pwd
    语法:带有输出的命令 > (可以带路径)文件名 如果是一个> 那么代表覆盖,新重定向的内容会覆盖之前的内容
    带有输出的命令 >> (可以带路径)文件名 如果是两个>> 那么代表追加,保留之前文件中的内容,在下方进行追加

    [root@VM-8-13-centos ~]# pwd >> demo 
    
    • 1

    13. cat 在终端设备上显示文件内容

    语法: cat 普通文件名
    说明: 一次性查看文件中所有内容。一般都是文件体积较小的情况下会用cat

     [root@VM-8-13-centos ~]# cat aaa 
    total 4 
    drwxr-xr-x 3 root root 4096 Mar 22 16:40 a 
    -rw-r--r-- 1 root root 0 Mar 22 17:12 aaa 
    
    • 1
    • 2
    • 3
    • 4

    14. less 按页查看文件内容 分页显示工具

    语法: less 文件名
    说明: 翻页的时候可以按回车, 也可以按 page up/page down 进行翻页,翻页到最后的内容时候,按q退出

    [root@VM-8-13-centos ~]# less abc 
    hello world hello world abc(END) 
    
    • 1
    • 2

    15. more 按百分比查看文件内容

    语法: more 文件名

    [root@VM-8-13-centos ~]# more abc
    
    • 1

    16. head 查看文件前n行信息 n默认是10

    语法: head 文件名
    说明:说明如果不想查看文件的前10行,想要看前15行怎么办?

    [root@VM-8-13-centos ~]# head -5 abc
    
    • 1

    You were my everythingthis goes out to
    someone that was once the most impo
    rtant person in my life i didn’t realize it
    at the time i can’t forgive myself for the way i
    treated you so i don’t really expect you to either

    17. tail 查看文件的后n行内容 n默认是10

    语法: tail 文件名
    说明:如果想查看文件的后5行内容, 同理上面的head , tail -5 文件名

     [root@VM-8-13-centos ~]# tail -5 a 
    那时我绝不知道,我将怎样错误地对待你
    我真的想抱着你 我真的想知道你比其他所
    有人都要理解我 你永远都在我心里占据着
    重要的地位 我永远也不相信我们的爱就这
    样被割裂了。 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    tail的第二种用法: 实时查看文件最新被增加的内容(实时监控)
    语法: tail -f 文件名

     [root@VM-8-13-centos ~]# tail -f a 
    
    • 1

    应用场景: 查看服务器日志文件
    说明: linux是服务器的操作系统,服务器里面会存在你做的项目的代码。
    一个项目:是由开发人员经过编码得来的,开发编写的代码如果在用户使用的时候,出现bug了,或者崩溃了。开发人员会怎么去排查问题呢?
    开发会排查自己编写的代码,用户在操作哪个模块的时候出错了?哪个功能出错了?怎么个操作顺序导致出错的?
    服务器会将开发编写的代码,生成一个日志文件,日志文件中会记录每一个用户的操作习惯和操作点。以及非常详细的报错信息。
    具体操作: 开启两个窗口,左边实时接受内容,右边模拟用户重定向到日志文件中打印内容,左侧实时接收。
    在工作中,需要问开发 我现在负责的模块日志文件叫什么? 在哪个路径下?
    一般日志文件都是以.log结尾的 例如: order.log
    测试看日志文件的目的,是为了协助开发帮助他们定位问题所在,提高工作效率

    18. find 查找和搜索文件打印路径

    1. 第一种根据文件名来查找

    语法: find 路径 -name 文件名
    说明: 这个路径,代表的是从哪里开始找。代表范围,最终找到的是有关于这个文件的绝对路径
    如果从根目录开始找,也不是不可以,但是效率非常低,相当于从最底层开始全盘扫描。

    [root@VM-8-13-centos ~]# find /root -name mm /root/a/b/c/d/mm
    
    • 1

    2. 第二种根据文件类型来查找

    语法: find 路径 -type 类型 -name 文件名
    文件类型: d 代表目录 - 代表普通文件 l 代表链接文件
    注意: 如果想要通过类型来查找文件的路径,如果文件是普通文件的话,需要用 “f”,有且仅有在这个地方用f,其他时候都是 -

    [root@VM-8-13-centos ~]# find ./ -type f -name mm 
    ./a/b/c/d/mm 
    [root@VM-8-13-centos ~]# find ./ -type d -name mm 
    ./a/b/c/mm 
    
    • 1
    • 2
    • 3
    • 4

    19. ln 链接文件

    说明: 链接文件就是相当于一个源文件的快捷方式,这个快捷方式指向源文件。可以代替源文件进行打开,编写操作。
    语法: ln -s (只能是绝对路径)被链接的文件名 (只能是绝对路径)快捷方式名

    [root@VM-8-13-centos ~]# ln -s /root/supermarket/food/apple/fruit.txt /root/mm 
    [root@VM-8-13-centos ~]# ls mm supermarket 
    [root@VM-8-13-centos ~]# ll 
    total 4 
    lrwxrwxrwx 1 root root 38 Mar 23 15:34 mm -> /root/supermarket/food/apple/fruit.txt 
    drwxr-xr-x 3 root root 4096 Mar 23 15:12 supermarket 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    20. 管道符 |

    说明: 管道符就是把两个命令连接起来,把上一个命令的输出结果,当做下一个命令的输入。 (前面命令的结果是后面命令的前置条件)
    例子:查看abc文件的10-15行内容?
    正确答案:

    head -15 abc | tail -6
    
    • 1

    注意:head -15 abc && tail -6 abc 如果这样写会有两个结果,一个是前15行 一个是后6行 不符合题意
    head -15 abc | tail -6 abc 如果这样写求出来的还是整个abc文件的后6行,不符合题意

    21. grep 全局正则表达式打印 “global regular expression print”(过滤筛选)

    语法: 前面是一段文字的输出 | grep “关键字”

    [root@VM-8-13-centos ~]# tail -10 abc | grep "害怕" 
    
    • 1

    当我们外出的时候,我真的很害怕让你看到
    说明: && 和 | 有什么区别?
    &&连接符是连接两个命令之间,命令之间是不存在任何的逻辑关系的,只有先后的顺序关系。
    而| 管道符 前面的命令结果是需要拿到后一个命令上作为条件来使用的,是存在逻辑关系的。

    22. wc 统计字符

    语法: wc 文件名 参数
    例子:统计abc文件的10-15行中有多少个单词?

     [root@VM-8-13-centos ~]# head -15 abc | tail -6 | wc -w 6 
    
    • 1

    参数:-l: line 统计文件的行数
    -w: word 统计文件的单词数 (单词数是以文件中空格或者换行当做一个单词,而不是一个字符当做一个单词)

    23. 进程 ps

    语法:ps -ef

     [root@VM-8-13-centos ~]# ps -ef
    UID PID PPID C STIME TTY TIME CMD root 
    1 0 0 Mar01 ? 00:05:34 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 2 0 0 Mar01 ? 00:00:02 [kthreadd] 
    
    • 1
    • 2
    • 3

    说明: 正在运行的程序,叫做进程。进程可以查看到当前在你的系统中都有哪些程序或者软件正在运行。
    需要了解: PID代表的就是进程id也就是进程号。

    24. 杀进程 kill

    语法: kill -9 PID (强制杀)
    说明:PID代表上面进程信息中的进程号

    [root@VM-8-13-centos ~]# kill -9 PID
    
    • 1

    25. 压缩/解压缩

    为什么要压缩?
    1. 如果需要一次性发送很多个文件,可以进行整体的压缩,变成一个压缩包后再次发送
    2. 如果需要发送的文件体积较大,可以通过压缩的方式使得文件的体积缩小,以便于发送。

    tar

    压缩语法: tar -zcvf 压缩包的名字(可以随便取).tar.gz 被压缩文件的名字

    [root@VM-8-13-centos ~]# tar -zcvf fanmao.tar.gz fanmao fanmao/ 
    [root@VM-8-13-centos ~]# ls 
    fanmao fanmao.tar.gz school student teacher 
    [root@VM-8-13-centos ~]# tar -zcvf all.tar.gz student teacher student/ student/student93/ teacher/laozhang/mm 
    [root@VM-8-13-centos ~]# ls all.tar.gz fanmao fanmao.tar.gz school student teacher 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    附加:tar --help 寻求帮助,查看每个参数的用法含义
    说明:
    tar -zcvf fanmao.tar.gz fanmao
    fanmao.tar.gz 是压缩好的压缩包名

    思考: 这两个前面是不是都可以带路径?

    1. 将压缩包指定压缩到某一个目录下 OK

    [root@VM-8-13-centos ~]# tar -zcvf ./aa/bb/aa.tar.gz aa aa/bb/cc/ 
    [root@VM-8-13-centos ~]# ls
    a aa 
    [root@VM-8-13-centos ~]# cd aa/bb 
    [root@VM-8-13-centos bb]# ls
    aa.tar.gz cc 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2. 指定压缩跨路径的文件压缩到当前目录下? 语法是可以的,但是实际的压缩文件是有问题的。

     [root@VM-8-13-centos ~]# tar -zcvf ./a/b/cc.tar.gz ./aa/bb/cc ./aa/bb/cc/ 
    [root@VM-8-13-centos ~]# cd a/b 
    [root@VM-8-13-centos b]# ls 
    c cc.tar.gz
    
    • 1
    • 2
    • 3
    • 4

    如果想跨路径压缩一个文件, 也就是说上面例子的 ./aa/bb/cc,压缩的时候会把前面路径的目录一并压缩进去,而不是只压缩cc文件。
    总结:只有压缩包可以有路径,也就是说可以把一个压缩包指定到任何的地方。但是后面的被压缩文件不能有路径,否则会连带路径一并压缩。

    解压缩语法: tar -zxvf 压缩包的名字.tar.gz
    这个解压缩的方法就是都在当前路径下,压缩包在当前, 解压缩完也在当前。
    如果想要跨路径解压缩文件:
    语法 tar -zxvf (路径)压缩包的名字.tar.gz -C 路径

    zip

    压缩: zip 压缩包的名字.zip 被压缩的文件名

     [root@VM-8-13-centos ~]# zip liming.zip liming 
    adding: liming/ (stored 0%) 
    [root@VM-8-13-centos ~]# ls 
    abc chenggong liming liming.tar.gg liming.zip libai libai.tar.gz 
    
    • 1
    • 2
    • 3
    • 4

    解压缩:unzip 压缩包的名字.zip

    [root@VM-8-13-centos ~]# ls 
    abc chenggong liming.tar.gg liming.zip libai libai.tar.gz 
    [root@VM-8-13-centos ~]# unzip liming.zip 
    Archive: liming.zip creating: liming/ 
    [root@VM-8-13-centos ~]# ls 
    abc chenggong liming liming.tar.gg liming.zip libai libai.tar.gz 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    26. 上传和下载

    上传: 命令 rz
    1.rz 回车,会弹出让你上传的窗口。
    2.选定文件进行上传(只能传文本文档类型)
    3.上传好后会在当前目录下显示已上传的文件,可以查看内容。

    下载: 命令 sz
    语法: sz 文件名

    [root@VM-8-13-centos ~]# sz libai.tar.gz
    
    • 1
  • 相关阅读:
    【Java】已解决java.lang.ClassNotFoundException异常
    剑指 Offer 33. 二叉搜索树的后序遍历序列
    应用在脉冲变压器中的光电耦合器
    2. 使用IDEA创建Spring Boot Hello项目并管理依赖——Maven入门指南
    景联文科技:高质量数据采集清洗标注服务,助力大语言模型红蓝对抗更加精准高效
    外汇天眼:外汇交易一周最佳外汇交易日!
    Mysql事务原理
    软件设计模式系列之八——适配器模式
    第七章:最新版零基础学习 PYTHON 教程—Python 列表(第八节 -在 Python 中获取列表作为用户的输入)
    java计算机毕业设计基于springboot的校园二手闲置物品交易系统
  • 原文地址:https://blog.csdn.net/a1137588003/article/details/132863959