Linux 命令
Linux 命令大全 | 菜鸟教程 (runoob.com)
Linux常用(实用)命令大全 - fly龙御沧海 - 博客园 (cnblogs.com)
(38条消息) Linux常用命令_Demon_gu的博客-CSDN博客
1、系统命令
ping网络(测试网络连通)
语法:ping IP或者域名
如:ping 127.0.0.1、ping www.baidu.com # 用Ctrl+C退出查看,回到命令行
回到命令行:Ctrl + C(快捷键)
清屏:clear
切换用户:su 用户名
修改用户的密码:passwd
修改指定用户的密码:sudo passwd 用户名 # sudo:表示借用root权限
查看系统时间:date
实时查看CPU、内存使用率:top [参数]
Linux top 命令 | 菜鸟教程 (runoob.com)
top命令可以看到总体的系统运行状态和cpu的使用率。
- 按 Shift + m:按内存的使用率降序排列显示进程信息。
- 按 Shift + p:按CPU的使用率降序排列显示进程信息。
查看 ip 地址:ip addr
# 或者:ip a、ip address、ifconfig
下图,192.168.159.128 是Linux的 ip,用 ifconfig 命令也行
重启:reboot
# 或者:shutdown -r now
关闭:shutdown -h now
注销:logout
2、帮助命令
man 命令:命令说明书
#(全拼:Manual 手册)
语法:man 命令
示例:man cd # 查看 cd的用法
--help 命令:查看命令的帮助信息
语法:命令 --help
示例:find --help # 查看find 的帮助信息
示例:ifconfig --help # 查看网卡信息
type 命令:判断内部命令或外部命令
3、Linux目录结构图
Linux 系统目录结构 | 菜鸟教程 (runoob.com)
Linux 文件基本属性 | 菜鸟教程 (runoob.com)
权限管理
第一个字符代表这个文件是目录、文件或链接文件等等。
- 当为 d 则是目录
- 当为 - 则是文件;
- 若是 l 则表示为链接文档(link file);
- 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
- r:read,读权限,4
- w:write,写权限,2
- x:execute,可执行权限,1
常见权限设置:rwx = 4+2+1 = 7、rw- = 6、r-- = 4
创建文件用户就是文件的拥有者, 用户所在的组就是文件的所在组。除了创建文件的用户都是其他用户。root有最高的权限。
如图,其他用户对root目录没有任何权限,查看目录内容都不行。
修改文件权限:chmod
Linux chmod 命令 | 菜鸟教程 (runoob.com)
修改方式有两种:数字法、字母法
数字法:chmod 3数字 文件名
如图,对aaa.txt,其它用户(如centos)只有 r-- 读权限,给它添加 w 写权限,其它不变。
6 4 6:rw- r-- rw-
字母法:chmod [用户选项][设置权限][rwx] 文件名
用户选项:
- u:所属用户
- g:所属用户组
- o:其它用户
- a:所有用户
设置权限:
- +:增加权限
- -:减少权限
- =:设置权限
示例:
- chmod u+w file.txt # 对 file.txt 文件的 所属用户 增加 写(w)的权限
- chmod g-x file.txt # 对 file.txt 文件的 所属用户组 减少 执行(x)的权限
- chmod o=rwx file.txt # 对 file.txt 文件的 其他用户 设置 可读可写可执行(rwx)的权限
更改文件属主和属组:chown、chgrp
在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
更改文件属主:chown 新主名 被修改文件
Linux chown 命令 | 菜鸟教程 (runoob.com)
示例:ddd.txt文件由用户root创建,更改其属主为 centos
更改文件属组:chgrp 新组名 被修改文件
Linux chgrp 命令 | 菜鸟教程 (runoob.com)
示例:ddd.txt文件,更改其属组为 bin
4、目录管理
查询当前的目录路径:pwd
# (全拼:print work directory)查询出当前目录的绝对路径
切换目录:cd 目录
#(全拼:change directory)
绝对路径切换:由根目录 / 写起,如: /usr/share/doc
相对路径切换:不是由 / 写起,如由 /usr/share/doc 切换到 /usr/share/man 底下时,可以写成: cd ../man
- 回到根目录:cd /
- 回到 /root 目录:cd ~
- 返回上一层目录:cd ..
- 返回上两层目录:cd ../..
ls 【查】(:list files)列出目录及文件名
- ls # 查看目录中的文件
- ls 路径 # 查看指定目录下的文件,如:ls /usr/src # 查看src目录下的文件
- ls -a # 列出全部的文件,包括隐藏文件(开头为 . 的文件)一起列出来
- ls -l # 列出文件和目录的详细资料,或者:ll、ls -al、ls -la
mkdir 【增】(:make directory)创建目录
语法:mkdir [-mp] 目录名
- -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
- -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
- mkdir dir1 # 在当前目录下创建一个叫做 'dir1' 的目录
- mkdir dir1 dir2 # 同时创建两个目录
- mkdir -p dir/dir1/dir2 # 创建多级目录,-p 递归
- mkdir /usr/aaa # 在指定目录下创建一个名为‘aaa’的目录
cp 【增】(:copy file)复制文件或目录
语法:
[root@www ~]# cp [参数] 源文件 目标文件
[root@www ~]# cp [options] source1 source2 source3 .... directory
源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用参数 -r
目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
-
-a:相当于 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-
-d:若源文件为链接档的属性(link file),则复制链接档属性而非文件本身;
-
-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-
-i:若目标文件已经存在时,在覆盖时会先询问动作的进行(常用)
-
-l:进行硬式链接(hard link)的链接档创建,而非复制文件本身;
-
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-
-r:递归持续复制,用于目录的复制;(常用)
-
-s:复制成为符号链接档 (symbolic link),亦即『捷径』文件;
-
-u:若 目标文件比源文件旧才升级目标文件!
cp file /usr/men/tmp/file1 # 文件复制:将文件file 复制到目录/usr/men/tmp
下,并改名为file1
cp -r /usr/men /usr/zh # 目录复制:将目录/usr/men
下的所有文件及其子目录复制到目录/usr/zh
中
rm 【删】(:remove directory)删除目录或文件
语法:rm [-fir] 文件或目录
- -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息
- -i :互动模式,在删除前会询问使用者是否动作
- -r :递归删除啊!最常用在目录的删除了!
- rm file1 # 删除 file1文件
- rm -f file1 # 强制删除 file1文件
- rm -r dir1 # 删除 dir1目录及内含文件
- rm -rf dir1 # 强制删除 dir1目录及内含文件
- rmdir dir1 # 删除 dir1 空目录
mv 【改】:(全拼:move file)移动文件与目录,或修改名称
语法:
[root@www ~]# mv [-fiu] 源文件 目标文件
[root@www ~]# mv [options] source1 source2 source3 .... directory
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
- -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
注意:mv的语法可以对目录、各种文件、压缩包等进行重命名的操作
如下图,移动还是重命名,需要根据目标文件或目录是否存在而定
find 【查】:查找目录或文件
命令:find 目录 参数 文件名称
Linux find 命令 | 菜鸟教程 (runoob.com)
示例:
- find /usr/tmp -name 'a*' # 查找 /usr/tmp 目录下的所有以a开头的子目录或文件
- find . -name file.txt # 查找当前目录下名为 file.txt 的文件
- find / -name file1 # 从 / 开始进入根文件系统搜索文件和目录
- find / -user user1 # 搜索属于用户 'user1' 的文件和目录
- find /home/user1 -name \*.bin # 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件
- find /usr/bin -type f -atime +100 # 搜索在过去100天内未被使用过的执行文件
- find /usr/bin -type f -mtime -10 # 搜索在10天内被创建或者修改过的文件
5、文件管理
touch【增】:创建或更新文件
语法:touch 文件名 # 用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件
Linux touch命令 | 菜鸟教程 (runoob.com)
示例:touch aa.txt # 在当前目录创建一个名为aa.txt的文件;若aa.txt 文件已存在,则修改其时间属性为当前系统时间
示例:ls -l aa.txt # 查看aa.txt 文件的时间属性
rm 【删】(:remove directory)删除目录或文件
语法:rm [-fir] 文件或目录
- -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息
- -i :互动模式,在删除前会询问使用者是否动作
- -r :递归删除啊!最常用在目录的删除了!
- rm file1 # 删除 file1文件
- rm -f file1 # 强制删除 file1文件
- rm -r dir1 # 删除 dir1目录及内含文件
- rm -rf dir1 # 强制删除 dir1目录及内含文件
- rmdir dir1 # 删除 dir1 空目录
示例:rm -f aaa.txt # 在当前目录下删除 'aaa.txt' 文件(不再询问)
注意:rm可以删除目录、文件、压缩包等,直接使用 rm -rf 目录/文件/压缩包
vi或vim【改】修改编辑文件内容
Linux vi/vim | 菜鸟教程 (runoob.com)
vi是linux下标配的一个纯字符界面的文本编辑器,由于不是图形界面,相关的操作都要通过键盘输入命令来完成,需要记住一些常用的操作命令
vim是vi的升级版本,完全兼容vi,vim也可以完全当成vi使用,vim是在vi的基础上增加一些功能,比如语法着色等。
1、打开文件
语法:vi 文件名 # 进入命令模式
说明:如果文件已存在,则打开该文件,如果文件不存在,则会新建该文件(未保存哦)
命令模式下,不可以写入内容哦,需要进入编辑模式才行!
2、编辑文件
从命令模式进入编辑模式:按 a 或者 i 键(进入编辑模式后,底部会出现 insert 字样)
编辑模式下,就可以写入内容了
想保存退出,要先返回命令模式:按 Esc 键
3、保存文件,退出
在编辑模式下写完内容后,先按 Esc 键返回命令模式
在命令模式下,按 :wq (冒号wq) 保存并退出
# w 保存文件;q 退出程序
按 :q! (冒号q感叹号) 仅退出不保存
cat、more、less、tail、head、grep【查】文件查看
cat:看最后一屏(内容少的文件)
Linux cat 命令 | 菜鸟教程 (runoob.com)
示例:cat sudo.conf # 使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容
命令:cat -n file1 # 查看文件内容并显示行号
more:百分比显示(内容多的文件)
more命令和cat的功能一样都是查看文件里的内容,不同的是more按页来查看文件的内容,还支持直接跳转行等功能。
- Enter 向下n行,可定义。默认为1行
- Ctrl+F 向下滚动一屏
- 空格键 向下滚动一屏
- Ctrl+B 返回上一屏
Linux more命令 | 菜鸟教程 (runoob.com)
示例:more sudo.conf # 使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看
less:翻页查看(内容多的文件)
Linux less 命令 | 菜鸟教程 (runoob.com)
示例:less sudo.conf # 使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上和向下翻页,q结束查看
tail:查看文件尾部的n行数据、实时日志文件查看
Linux tail 命令 | 菜鸟教程 (runoob.com):按字节、行数等条件查看
tail -f test01.log # 实时查看日志文件的后10行(默认10行),并且不断刷新。Ctrl+C结束
示例:tail -n 20 test01.log # 查看文件的后20行
head:查看文件开头的n行数据
Linux head 命令 | 菜鸟教程 (runoob.com):按字节数、行数等条件查看
语法:head -n 数字 文件路径
示例:head -n 20 /etc/sudo.conf # 查看文件开头的20行数据
grep:文件内搜索字符内容
Linux grep 命令 | 菜鸟教程 (runoob.com)
语法:grep [options] pattern [files]
- options
-i
:忽略大小写进行匹配。-n
:显示匹配行的行号。-r
:递归查找子目录中的文件。
- pattern 表示要查找的字符串或正则表达式。
- files 表示要查找的文件名,可以同时查找多个文件,如果省略 files 参数,则默认从标准输入中读取数据。
场景:系统报警显示了时间,但是日志文件太大无法直接 cat 查看。
这时,用 grep -n '2023-10-24 00:01:11' *.log # 查看符合条件的日志条目
ln【链】(:link files)链接文件命令(创建快捷方式)
Linux ln 命令 | 菜鸟教程 (runoob.com)
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
ln的链接有软链接和硬链接两种:(无论是软链接还是硬链接,文件都保持同步变化)
软链接:ln –s ** **
- 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
- 软链接可以跨文件系统 ,硬链接不可以
- 软链接可以对一个不存在的文件名进行链接
- 软链接可以对目录进行链接
硬链接:ln ** **
- 硬链接,以文件副本的形式存在。但不占用实际空间。
- 不允许给目录创建硬链接
- 硬链接只有在同一个文件系统中才能创建
通过 ll 可以查看,列表属性第1位是l,尾部会有位置指向的是软链接。
语法:ln [参数] [源文件或目录] [目标文件或目录]
(38条消息) Linux命令 - ln命令_linux ln_懒鸟一枚的博客-CSDN博客
whereis、which【查】查找文件
whereis:定位一个“命令”的二进制文件、源文件、手册文件。
Linux whereis命令 | 菜鸟教程 (runoob.com)
该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。
该指令只能用于查找“命令”的二进制文件、源代码文件和man手册页,如果仅显示命令的绝对路径,可以用 which 命令, 其他普通文件的查找需要使用 locate 和 find 命令。
语法:whereis [options] [-BMS DIRECTORY...-f] NAME ...
- options
- -b 只查找二进制文件。
- -B <目录> 只在设置的目录下查找二进制文件。
- -f 不显示文件名前的路径名称。
- -m 只查找说明文件。
- -M <目录> 只在设置的目录下查找说明文件。
- -s 只查找原始代码文件。
- -S <目录> 只在设置的目录下查找原始代码文件。
- -u 查找不包含指定类型的文件。
Linux命令:whereis - 雨竹枫 - 博客园 (cnblogs.com)
which:展示命令的完整路径
Linux which命令 | 菜鸟教程 (runoob.com)
语法:which 命令
6、压缩、解压文件
tar 命令
(全拼:tape archive )命令可以用来创建和解压各种类型的压缩包。
Linux tar 命令 | 菜鸟教程 (runoob.com)
linux 中压缩记得压缩用c,解压用x - 汪岳 - 博客园 (cnblogs.com)
语法:tar [参数] 要压缩或解压的文件或目录
常用参数:
- -c : 压缩。(create)
- -x:解压。
- -v : 显示压缩,解压过程中处理的文件名。
- -f : 指定压缩文件名,tar参数后面是压缩文件名。
- -r:向压缩归档文件末尾追加文件。
- -z : 使用压缩,生成的文件名是 xxx.tar.gz。
- -t : 列出压缩文件的内容。
- -C: 解压到指定目录,使用方式 -C 目录,C 是大写的。
查看压缩文件:tar -tf 压缩文件名
如下图:压缩文件 file2.tar.gz 包含了 aa.txt、test.txt 文件。
以下是常见的几种类型:
1、 .tar 文件
.tar文件是最常见的压缩包类型,它将多个文件和目录打包成一个文件,但不进行压缩。
创建 .tar文件:tar -cvf 压缩名.tar 文件1 文件2 目录1
解压 .tar文件:tar -xvf archive.tar
2、.gz 文件
.gz文件是使用gzip压缩算法压缩的.tar文件。
创建 .gz文件:tar -zcvf archive.tar.gz file1 file2 dir1
解压 .gz文件:tar -zxvf archive.tar.gz
示例:
- 压缩单个文件:tar -zcvf txtfile.tar.gz aa.txt # aatxt —> txtfile.tar.gz
- 压缩多个文件:tar -zcvf txt.tar.gz aa.txt test.txt # aa.txt + test.txt —> txt.tar.gz
- 压缩所有 txt 文件:tar -zcvf txt2.tar.gz *.txt # *.txt —> txt2.tar.gz
- 压缩目录:tar -zcvf file.tar.gz mytest # mytest —> file.tar.gz
- 解压文件:tar -zxvf file.tar.gz
3、.bz2 文件
.bz2文件是使用bzip2压缩算法压缩的.tar文件。
创建 .bz2文件:tar -cjvf archive.tar.bz2 file1 file2 dir1
解压 .bz2文件:tar -xjvf archive.tar.bz2
4、.zip文件
.zip文件是一种常见的压缩文件格式,在Windows系统中使用较多。
创建 .zip文件:tar -czvf archive.zip file1 file2 dir1
解压 .zip文件:tar -xzvf archive.zip
需要注意的是,使用tar命令创建和解压.zip文件时,需要使用unzip命令来解压缩文件。
Linux unzip命令 | 菜鸟教程 (runoob.com)
7、系统管理
ps:查看系统进程
(英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器
Linux ps 命令 | 菜鸟教程 (runoob.com)
linux下ps命令 - 狂奔~ - 博客园 (cnblogs.com)
语法:ps [options] [--help]
- options
-
- -A 列出所有的进程
- -w 显示加宽可以显示较多的资讯
- -au 显示较详细的资讯
- -aux 显示所有包含其他使用者的进程
- UID:拥有该程序的用户
- PID:程序的进程id
- PPID:父进程的id
- C:CPU使用的资源百分比
- STIME:系统启动时间
- TTY:登录系统的终端位置(客户端的标识)
- TIME:使用掉的CPU时间
- CMD:进程是有哪些程序启动的
查看全格式的全部进程:ps -ef
-e:显示当前所有进程;-f:显示UID,PPID,C与STIME栏位信息
查看指定进程:ps -ef | grep 进程名 # ps 与grep 常用组合用法,查找特定进程
示例:ps -ef | grep php # 查看 php 的进程
显示root进程用户信息:ps -u root
显示所有进程信息:ps -A
将目前属于您自己这次登入的 PID 与相关信息列示出来:ps -l
kill:终止后台进程
一般情况下,终止一个前台进程使用 Ctrl + C 就可以了。对于一个后台进程就须用 kill 命令来终止。我们会先使用 ps、top 等命令获得进程的 PID,然后使用 kill 命令来杀掉该进程。
Linux kill命令 | 菜鸟教程 (runoob.com)
linux kill 命令 - shigp - 博客园 (cnblogs.com)
语法:kill [options] <pid> [...]
- options
- 1 (HUP):重新加载进程。
- 9 (KILL):强制杀死一个进程。
- 15 (TERM):正常停止一个进程。(默认)
正常杀死进程:kill PID # 先用ps -ef 查进程的 pid
强制杀死进程:kill -9 PID
free:查看内存的使用情况
free 指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
linux命令总结free命令 - 琴酒网络 - 博客园 (cnblogs.com)
Linux free命令 | 菜鸟教程 (runoob.com)
语法:free [options]
- options
- -b 以Byte为单位显示内存使用情况。
- -k 以KB为单位显示内存使用情况。(默认)
- -m 以MB为单位显示内存使用情况。
- -t 对每列进行总计。
防火墙相关
查看防火墙状态:systemctl status firewalld、firewall-cmd --state
开启防火墙:systemctl start firewalld、service firewalld start
关闭防火墙:systemctl stop firewalld、service firewalld stop
查看防火墙规则:firewall-cmd --list-all # 可查看已开放端口
开放端口:firewall-cmd --permanent --add-port=3306/tcp # 开放3306端口
移除端口:firewall-cmd --permanent --remove-port=3306/tcp # permanent:持久设置
重启防火墙:firewall-cmd --reload、service firewalld restart # 开放、移除端口等操作后,需要重启才生效
常用命令
head -2 fle1 # 查看一个文件的最前面两行
tail -2 file1 # 查看一个文件的最后两行
tail -f /var/log/menssage # 实时查看被添加到一个文件中的内容
ls # 查看目录下文件
ls -l # 查看文件和目录的详细信息
ls -a # 显示隐藏文件
mkdir dir1 # 创建一个叫做 dir1 的目录
mv dir1 new_dir2 # 移动或重命名一目录
top # 查看进程的信息
cat -n file1 # 显示文件内容并在内容前显示行号
grep "Error" access.log # 查找日志文件 access.log 的 Error 信息
如何杀死一个进程?
答:先用 ps 命令查看进程号PID,再用 kill 命令杀死该进程
工作哪些场景会用到Linux?
答:当项目不能访问时,看看项目是否启动(ps -ef | grep xxx);
当测试出现bug时,看看日志 (tail -100 xxx.log);
有时会做下项目的部署,把开发打好的项目包,上传到tomcat里,然后修改项目配置文件,启动tomcat。
查看当前系统正在运行的所有进程:ps -aux
查看Linux使用的内核版本:uname -a 或者 cat /proc/version
查看8080 端口的占用情况:netstat -apn | grep 8080
查看日志的命令有哪些?
答:tail -f、cat、head -n、more、less、vi
cat /proc/cpuinfo # 显示CPU信息
cat /proc/meminfo # 显示内存信息
- 查看CPU信息 (型号):cat /proc/cpuinfo | grep name | cut -f2 -d: | unig -c
- 查看物理CPU个数:cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
- 查看每个物理CPU中core的个数(即核数):cat /proc/cpuinfo | grep "cpu cores" | uniq
- 查看逻辑CPU的个数:cat /proc/cpuinfo | grep "processor" | wc -l
free # 显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存等=kB
free -m # -m参数表示以MB为单位显示内存使用情况
man xxx # 显示xxx命令的帮助手册信息
用Linux搭建环境时,端口号被占用,怎么办?
答:先查看被占用的端口号:netstat -anp | grep 8080
再考虑要不要杀掉它:kill -9 PID
Linux使用过程?
答:我们用Linux主要是做环境搭建以及测试过程中的问题定位和分析的像环境搭建,我们是使用docker来部署测试环境的。
开发提测试后,会给我们测试人员一个tar包,然后通过 load -i 加载开发提供给我们的镜像包;得到镜像后,通过 docker run 运行镜像形成容器,也可以通过 dokcer images 查看镜像,
dokcer ps -a 查看所有的容器以及容器使用的对应的端口号,docker exec -it 进入容器;
遇到问题的时候时,比如端口被占用了,会用netstat -apn查看端口;
服务没起来,会用 ps -ef 查看进程,kill 杀掉进程;出现错误会用 tail -f 查看日志等。