Linux常用命令
- 1. cd 命令
- 2. ls 命令
- 3. mkdir /rmdir 命令
- 4. touch 命令
- 5. mv 命令
- 6. rm 命令
- 7. cp 命令
- 8. cat 命令
- 9. tail 命令
- 10. head 命令
- 11. more 命令
- 12. less命令
- 13. pwd 命令
- 14. file 命令
- 15. grep 命令
- 16. 管道符 | 命令
- 17. ps 命令
- 18. echo 命令
- 19. where 命令
- 20. su 命令
- 21. wc 命令
- 22. chmod 命令
- 23. watch 命令
- 24. find 命令
- 25. vim 命令
- 26. sz和rz 命令
- 27. scp 命令
- 28. 打包解压命令
- 29. tree
- 30. history 查看命令历史记录
- 31. top 命令
- 32. df 、du
- 33. uname
- 34. kill 命令
- 35. adduser /groupadd
- 36. 远程主机
- 37. yum 安装插件命令, rpm 插件安装命令
1. cd 命令
cd 命令来切换目录
到上一级目录 cd . .
到上上一级目录 cd . ./. .
到当前用户的家目录, 如我的用户是cao:/home/cao: cd ~或者直接cd
返回到上次访问的目录 cd -
根目录,是所有用户共享的目录 cd /
2. ls 命令
显示指定工作目录下之内容
(可简写ll 也是最常用) 以列表形式显示详细信息 ls -l
显示隐藏文件 ls -a
按最后修改的时间排序 ls -t
按文件大小排序 ll -S
递归显示所有子文件 ls -R
显示指定目录下文件列表 ll /etc
3. mkdir /rmdir 命令
mkdir 创建目录
创建一个目录名为test1 mkdir test1
一次创建多个目录 mkdir test1 test2 test3
创建多层目录 mkdir -p test1/data
创建多层目录 -v是创建后会显示出来创建了什么 mkdir -vp test1/data
创建目录带有权限 其中710是数字表示权限7 1 0 : mkdir -m 710 test1
rmdir 删除目录
-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。
将工作目录下,名为 AAA 的子目录删除 : rmdir AAA
在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除: rmdir -p BBB/Test
4. touch 命令
建立一个新的文件
可以创建多个新文件 touch aa.txt aa2.txt
在根目录下创建文件(可在指定目录): touch /a.txt
(-d创建文件手动指定时间) : touch -d 2099-10-23 aaa.txt
(具体到秒的时间,秒前用点) : touch -t 209910231512.12 aaa.txt
(也是设置时间 -r是参考reference bbb.txt 参考aaa.txt的时间): touch -r aaa.txt bbb.txt
5. mv 命令
移动文件或改名
将aaa.txt 改名为123.txt :mv aaa.txt 123.txt
将文件aaa.txt 移到指定目录下:mv aaa.txt /home/cao/data
-v打印移动详细信息: mv -v aaa.txt /home/cao/data
假如目标目录有相同名的文件aaa.txt 移动后带上参数 -b (backup备份) ,使目标目录下同名文件备份了,备份文件后面有个~线 : mv -vb aaa.txt /home/cao/
假如目标目录有相同名的文件aaa.txt -f表示强制覆盖 : mv -vf aaa.txt /home/cao/
-n 如果有相同文件就不做操作了: mv -n aaa.txt /home/cao/
6. rm 命令
删除文件或目录
删文件:rm aaa.txt
删目录加上-r : rm -r test1
删除前提示确认: rm -i -r test1
删除当前目录下的所有文件及目录: rm -r
删除当前目录下的所有文件及目录,并且是直接删除: rm -rf +要删除的文件名或目录
7. cp 命令
复制文件或目录
将文件aaa.txt复制到指定目录下: cp -v aaa.txt /test/data/
-r如果要复制目录,需要使用该选项: cp -r test2 /test/data/
复制时是否覆盖提示: cp -i aaa.txt /test/data/ v
8. cat 命令
查看文件
-n 查看内容带行号(空行也算): cat -n aaa.txt
和 -n 相似,只不过对于空白行不编号: cat -b aaa.txt
9. tail 命令
查看文件
默认倒数10行: tail aaa.txt
倒数五行: tail -n 5 aaa.txt
从正的第五行到最后 :tail -n +5 aaa.txt
实时查看文件内容 倒数10行: tail -f aaa.txt
实时查看文件内容 倒数10行 (F有什么作用呢?如果在监视的时候aaa.txt突然改名了会提示然后继续监视,f则会停止监视):tail -F aaa.txt
10. head 命令
查看文件
默认前10行: head aaa.txt
-n 前5行内容: head -n 5 aaa.txt
倒数第五行往前内容 : head -n -5 aaa.txt
11. more 命令
与cat类似,但它以一页一页的形式显示,空格键往下翻页,b键(back)网上翻页
查看文件: more aaa.txt
查看并搜索关键词hello : more +/hello aaa.txt
12. less命令
一页一页的形式显示,空格键往下翻页,b键(back)网上翻页
查看文件: less aaa.txt
查看并搜索关键词hello : less +/hello aaa.txt
把行号显示出来: less -N aaa.txt
展示百分比: less -m aaa.txt
在文件里面用 / 可以搜索字符串,按n 向下搜索,N向上搜索
13. pwd 命令
打印当前路径
14. file 命令
显示文件类型
显示文件的类型信息: file aaa.txt
15. grep 命令
在文件中查找匹配的字符串
从aaa.txt中查找hello: grep hello aaa.txt
加上-i忽略大小写 : grep -i hello aaa.txt
加上-w精确匹配,hellop也不行 : grep -w hello aaa.txt
加上-e是多个匹配也可以,既查这个也查那个:grep -e hello -e world aaa.txt 或者 grep -e ‘hello|world’aaa.txt
加上-n打印出在哪一行的位置: grep -n hello aaa.txt
加上-v打印不包含hello的 : grep -v hello aaa.txt
在目录 ./test/data/下包含hello的文件,显示文件名和文件里的hello位置: grep -r hello ./test/data/
某目录下哪些文件包含我们要查找的字符不列出在文件中的具体细节,只列出在哪些文件 : grep -lr hello ./test/data/
16. 管道符 | 命令
前面的输出是后面的输入
例如:
cat aaa.txt | wc -l 表示aaa.txt文件有多少行
grep hello aaa.txt |wc -w 表示aaa.txt有多少个hello
17. ps 命令
显示当前进程的状态
ps -ef 就会列出当前进程的状态
-A 列出所有的进程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的进程
例:查找指定进程格式 : ps -ef | grep 进程关键字
# ps -ef | grep php
root 794 1 0 2020 ? 00:00:52 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
www-data 951 794 0 2020 ? 00:24:15 php-fpm: pool www
www-data 953 794 0 2020 ? 00:24:14 php-fpm: pool www
www-data 954 794 0 2020 ? 00:24:29 php-fpm: pool www
...
显示所有进程: ps -A
18. echo 命令
打印
例如:h=“abc”
echo h 就显示 a b c 了,或者 e c h o " x x x h 就显示abc了,或者 echo "xxx h就显示abc了,或者echo"xxx{h}" 显示xxxabc
比如往文件写东西可以:echo ‘hello world’ > aaa.txt
19. where 命令
一般是查看应用程序的位置
例如:where gcc
20. su 命令
切换用户
su cao 回车 表示切换到cao用户(从root用户切换不需要密码)
但是su root 回车要密码或者普通用户相互切换需要密码
21. wc 命令
如果 wc aaa.txt 回车返回 2 3 18 aaa.txt(2代表行数,,3代表单词数 18代表文本字节数)
单独统计
单独统计文件的行数 : wc -l aaa.txt
单独统计文件的单词数: wc -w aaa.txt
单独统计文件的字节数: wc -c aaa.txt
单独统计字符数: wc -m aaa.txt
22. chmod 命令
更改文件或目录权限,“u,g,o” ,User (也称为 owner)、group 和 other 三个单词的首字母组合
chmod u+rw aaa.txt 给当前用户的文件aaa.txt增加读和写的权限(u就是当前用户,+就是增加) 还可以用 chmod 706 aaa.txt (就是为aaa.txt权限修改了706,数字权限更便利)
chmod g-rw aaa.txt 给同组的其他用户解除rw权限
chmod o+rw test (目录) 就是给其它用户增加读写权限
chmod a-x test 给所有用户解除执行权限 a就是all
chmod 777 -R test 给所有用户增加777 test目录及里面的东西
chmod -c a-x test 给所有用户解除执行权限 -c是权限变化打印出来(-v 不变化也打印)
23. watch 命令
定期执行某命令,可以做实时监测
如 watch ‘tail aaa.txt’
表示定期执行命令tail aaa.txt 默认间隔2秒 用ctrl +c结束 。
每5秒执行一次 watch -n 5 ‘tail aaa.txt’
内容变化会有高亮显示 watch -n 5 -d ‘tail aaa.txt’
检测命令执行出错的时候退出(如果tail aaa.txt出错了,可以理解为aaa.txt 文件没了出错了) watch -e ‘tail aaa.txt’
发生变化以后直接退出 watch -g ‘tail aaa.txt’
24. find 命令
查找文件或目录 find [路径] [匹配条件] [动作]
-name 按文件名查找,支持使用通配符 * 和 ?
-type 按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等
-size 按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是 c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)
-mtime 按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数
-user :按文件所有者查找。
-group :按文件所属组查找。
可选
-amin n 查找在 n 分钟内被访问过的文件。
-atime n 查找在 n24 小时内被访问过的文件。
-cmin n 查找在 n 分钟内状态发生变化的文件(例如权限)。
-ctime n 查找在 n24 小时内状态发生变化的文件(例如权限)。
-mmin n 查找在 n 分钟内被修改过的文件。
-mtime n 查找在 n*24 小时内被修改过的文件。
查找当前目录下名为 file.txt 的文件 : find . -name file.txt
将当前目录及其子目录下所有文件后缀为 .c 的文件列出来: find . -name “*.c”
将当前目录及其子目录中的所有文件列出: find . -type f
查找 /home 目录下大于 1MB 的文件: find /home -size +1M
查找 /var/log 目录下在 7 天前修改过(modify)的文件: find /var/log -mtime +7
查找过去 7 天内被访问(acess)的文件: find /path/to/search -atime -7
在当前目录下查找最近 20 天内状态发生改变的文件和目录: find . -ctime 20
将当前目录及其子目录下所有 20 天前及更早更新过(change)的文件列出: # find . -ctime +20
25. vim 命令
文本编辑
用户刚刚启动 vi/vim,便进入了命令模式
i – 切换到输入模式 esc进入命令模式
dd – 剪切当前行
yy – 复制当前行
yy复制后
p(小写) – 粘贴剪贴板内容到光标下方。
P(大写)-- 粘贴剪贴板内容到光标上方。
在命令模式 用 :set numer 显示行号 ,:set nonumer 取消行号
ctrl+f 向下翻一页(forward)
ctrl+b 回上(回)一页(back)
ctrl+ u 向上翻半页(up)
ctrl+ d 向下翻半页(down)
shift+ g 跳到文章尾部
gg 快速定位到首行
u 撤销上次操作命令(undo)
ctrl + r 恢复上一次撤销的命令(redo)
按 0 跳到行首
enter 跳到行尾
要移动光标往后跳一个词,可以使用 “w” 命令,“3w” 表示向前移动 3 个单词
“b” 命令往前移动一个词
还支持搜索 就是用 /或? 用N、n 来回切换查找
:q 退出
:wq 保存
:q! 强制退出
26. sz和rz 命令
sz:将选定的文件发送(send)到本地机器(下载至本地)
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器
例如: 将文件 filename下载至本地: sz filename
下载多个文件: sz filename1 filename2 filename2
下载dir目录下的所有文件,不包含dir下的文件夹: sz dir/*
模糊下载名字带有20230202的文件: sz 20230202
rz 回车 会弹出一个对话框进行上传
27. scp 命令
在服务器之间传输文件,远程拷贝文件 ,scp 是 secure copy 的缩写
命令格式: scp [参数] [原路径] [目标路径]
-p 保留原文件的修改时间,访问时间和访问权限。
-r: 递归复制整个目录。
-v:详细方式显示输出
其它参数…
例如:将远程文件拷贝到本地服务器当前路径下 $ scp testuser@47.100.247.240:/home/testuser/test.sql . (其中testuser是用户名 ,点 . 是当前路径)
将本地文件拷贝到远程服务器指定路径下 $ scp test1.sql testuser@47.100.247.240:/home/testuser/ (本地文件test1.sql传到服务器某路径下)
将远程服务器文件夹全部复制到本地服务器(用参数 -r ) $ scp -r testuser@47.100.247.240:/home/testuser/ .
将本地服务器文件夹全部复制到远程服务器(-r) $ scp -r /home/testuser1/ testuser@47.100.247.240:/home/testuser/
28. 打包解压命令
tar 命令 可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件(打包只是打包和压缩不一样,下面看)
tar 命令格式如下:
打包文件 :tar -cvf 打包文件名.tar 被打包的文件
tar -cvf desc.tar a.txt b.txt c.txt (文件可用通配符 *.txt)
解包文件 tar -xvf 文件名.tar :
tar -xvf desc.tar
其中:c 创建打包文件、x 解开文件、v 列出详细过程、f 指定文件名称 f后一定是 .tar文件,所以f必须在后面
压缩和解压 格式:xxx.tar.gz
压缩文件:tar -zcvf 打包文件.tar.gz 被压缩的文件,如tar -zcvf desc.tar.gz a.txt b.txt c.txt
解压缩文件:tar -zxvf 文件名.tar.gz ,如 tar -zxvf desc.tar.gz
解压到指定路径: tar -zxvf 文件名.tar.gz -C /路径 ,如:tar -zxvf desc.tar.gz -C /home/cao (加上-C 但是指定的目录必须存在)
压缩和解压 格式:xxx.tar.bz2
压缩文件:tar -jcvf 打包文件.tar.bz2 被压缩的文件,如tar -jcvf desc.tar.bz2 a.txt b.txt c.txt
解压缩文件:tar -jxvf 文件名.tar.bz2 ,如 tar -jxvf desc.tar.bz2
解压到指定路径: tar -jxvf 文件名.tar.bz2 -C /路径 ,如:tar -jxvf desc.tar.bz2 -C /home/cao (加上-C 但是指定的目录必须存在)
29. tree
以树状形式展示目录下的内容
30. history 查看命令历史记录
查看所有历史命令列表 history
history -c 清空历史命令
31. top 命令
top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况 top -d 15 每
15秒刷新一次(默认5s)
参考https://blog.csdn.net/weixin_45465395/article/details/115728520
32. df 、du
du (display usage简写) 显示每个文件和目录的磁盘使用情况
使用格式:du [选项] [目录或文件名] 常用选项:
-a 显示目录中所有文件以及文件夹大小
-h 更易读的字节单位(K,M等)显示信息
-s 仅显示指定目录或文件的总大小,而不显示其子目录的大小 其他选项… 例如:
- 显示目录或者文件所占空间 直接 du (只显示当前目录下面的子目录的目录大小和当前目录的总的大小)
- 显示指定文件所占空间 du log2012.log
- 显示指定目录不显示子目录(下面显示子目录了): du -s ./test/
- 方便阅读的格式显示test目录所占空间情况
# du -h test 608K test/test6 308K test/test4 4.0K test/scf/lib 4.0K test/scf/service/deploy/product 4.0K test/scf/service/deploy/info 12K test/scf/service/deploy 16K test/scf/service 4.0K test/scf/doc 4.0K test/scf/bin 32K test/scf 8.0K test/test3 1.3M test
df (display free简写) 统计磁盘中空闲的空间,也即空闲的磁盘块数
使用格式:df [选项] [目录或文件名] 例如:
- 显示文件系统的磁盘使用情况统计
# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda6 29640780 4320704 23814388 16% / udev 1536756 4 1536752 1% /dev tmpfs 617620 888 616732 1% /run none 5120 0 5120 0% /run/lock none 1544044 156 1543888 1% /run/shm
-h 选项会以人类可读的方式显示磁盘空间使用情况
33. uname
(全拼:unix name)命令用于显示操作系统信息,例如内核版本、主机名、处理器类型等
-a 或–all 显示全部的信息,包括内核名称、主机名、操作系统版本、处理器类型和硬件架构等。
-m 或–machine 显示处理器类型。
-n 或–nodename 显示主机名。
-r 或–release 显示内核版本号。
-s 或–sysname 显示操作系统名称。
-v 显示操作系统的版本。
例如:uname -a 记住这个就行
34. kill 命令
杀死系统中的进程,格式:kill 参数 进程号
一般情况下,想要杀死后台一个进程,我们通常只需要做两步:
第一步:找到某个应用的进程号:ps -aux | grep 应用名称
或 ps -ef | grep 应用名称
或者 top | grep 应用名称
第二步:杀死进程
正常杀死进程:kill -15 pid号
如杀死pid为10的进程:kill -15 10
强制杀死进程: kill -9 pid号
注:杀死进程的时候,推荐是正常杀死进程,而不是强制杀死进程。
35. adduser /groupadd
创建用户和创建用户组命令
添加一个一般用户: adduser kk //默认在创建用户 kk 的同时会创建一个同名的群组
为添加的用户指定相应的用户组: # adduser -g root kk //添加用户kk,并指定用户所在的组为root用户组
创建一个系统用户: # adduser -r kk //创建一个系统用户kk
为新添加的用户指定家目录:adduser -d /home/myf kk //新添加用户kk,其home目录为/home/myf
添加用户,并给用户设置有效期: adduser -e 29/12/2020 heima
创建用户的同时指定密码: adduser -p 123456 heima
-g:指定新建工作组的 id
创建一个名为testgroup的用户组: groupadd testgroup
创建一个系统用户组: groupadd -r systemgroup
创建一个新的组,并添加组 ID: groupadd -g 344 testgroup
36. 远程主机
ssh IP //登录服务器,需要输入用户名和密码
ssh 用户名@ip 回车