Linux常用命令

Linux常用命令

1.cd 切换路径 “change directory”

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

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

2.mkdir 创建目录 “make directory”

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

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

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

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

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

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

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

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

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

语法:pwd

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

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 

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 

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 

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

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

如果当前目录下重名,会提示用户是否覆盖当前目录下的文件,然而普通文件不能覆盖目录。但是如果不在同一目录下,文件是可以重名的。
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	 

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

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

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

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

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

说明:区分文件类型 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

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

12. 输出重定向

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

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

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 

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

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

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

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

语法: more 文件名

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

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

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

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

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 
那时我绝不知道,我将怎样错误地对待你
我真的想抱着你 我真的想知道你比其他所
有人都要理解我 你永远都在我心里占据着
重要的地位 我永远也不相信我们的爱就这
样被割裂了。 

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

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

应用场景: 查看服务器日志文件
说明: 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

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 

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 

20. 管道符 |

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

head -15 abc | tail -6

注意: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 "害怕" 

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

22. wc 统计字符

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

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

参数:-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] 

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

24. 杀进程 kill

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

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

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 

附加: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 

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

如果想跨路径压缩一个文件, 也就是说上面例子的 ./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 

解压缩: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 

26. 上传和下载

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

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

[root@VM-8-13-centos ~]# sz libai.tar.gz

你可能感兴趣的:(linux,python)