Linux 命令

Linux 命令大全 | 菜鸟教程 (runoob.com)

Linux常用(实用)命令大全 - fly龙御沧海 - 博客园 (cnblogs.com)

(38条消息) Linux常用命令_Demon_gu的博客-CSDN博客

Linux命令大全 - 知乎 (zhihu.com)

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 查看日志等。

posted @ 2023-05-20 21:54  鹿先森JIAN  阅读(37)  评论(0编辑  收藏  举报