1. Linux命令基础格式
command [-options] [parameter]
- command ;命令本身
- -options :命令的一些选项,可以通过选项控制命令的行为细节
- parameter:命令的参数,多用于命令的指向目标等
2. Linux基础命令
Linux的目录结构

/,根目录是最顶级的目录了- Linux只有一个顶级目录:
/ - 路径描述的层次关系同样适用
/来表示 - /home/itheima/a.txt,表示根目录下的home文件夹内有itheima文件夹,内有a.txt
2.1 ls命令(List Show)
功能:列出文件夹信息
语法:ls [-l -h -a] [参数]
- 参数:被查看的文件夹,不提供参数,表示查看当前工作目录
- -l,以列表形式查看
lrwxrwxrwx. 1 root root 7 Mar 7 2019 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Feb 8 15:33 boot
drwxr-xr-x 3 root root 4096 Feb 9 22:14 data
`r` 读,`w` 写,`x` 执行
最后的 `.` 表示还有额外安全属性,一般和 SELinux 有关
- 前三位是属主权限
- 中三位是属组权限
- 后三位是其他人权限
- `1`:硬链接数
- `root root`:属主和属组
- `7`:文件大小
- `Mar 7 2019`:修改时间
- `bin -> usr/bin`:`bin` 是一个软链接,指向 `usr/bin`
- -h,配合-l,以更加人性化的方式显示文件大小
- -a,显示隐藏文件
隐藏文件、文件夹
在Linux中以
.开头的,均是隐藏的。 默认不显示出来,需要-a选项才可查看到。
2.2 pwd命令(Print Work Directory)
功能:展示当前工作目录
语法:pwd
2.3 cd命令(Change Directory )
功能:切换工作目录
语法:cd [目标目录]
参数:目标目录,要切换去的地方,不提供默认切换到当前登录用户HOME目录
2.4 HOME目录
每一个用户在Linux系统中都有自己的专属工作目录,称之为HOME目录。
- 普通用户的HOME目录,默认在:
/home/用户名 - root用户的HOME目录,在:
/root
FinalShell登陆终端后,默认的工作目录就是用户的HOME目录
2.5 相对路径、绝对路径
-
相对路径,非
/开头的称之为相对路径 相对路径表示以当前目录作为起点,去描述路径,如test/a.txt,表示当前工作目录内的test文件夹内的a.txt文件 -
绝对路径,以
/开头的称之为绝对路径 绝对路径从根开始描述路径
2.6 特殊路径符
.,表示当前目录,比如./a.txt,表示当前文件夹内的a.txt文件..,表示上级目录,比如cd..表示切换上级目录,cd../..表示上级的上级目录~,表示用户的HOME目录,比如cd ~,即可切回用户HOME目录
2.7 mkdir命令(Make Directory)
功能:创建文件夹
语法:mkdir [-p] 参数
-
参数:被创建文件夹的路径
-
选项:-p,可选,表示创建前置路径

2.8 touch命令
功能:创建文件
语法:touch 参数
- 参数:被创建的文件路径
2.9 cat命令
功能:查看文件内容
语法:cat 参数
- 参数:被查看的文件路径
2.91 nano命令
nano 是 Linux 里比较简单的文本编辑器,适合你现在改 Nginx 配置。
比如你要新建/编辑这个文件:
sudo nano /etc/nginx/sites-available/vibefuture.cloud
打开后就可以直接输入或粘贴内容。
常用操作:
保存:Ctrl + O确认文件名:Enter退出:Ctrl + X不保存退出:Ctrl + X,然后按 N保存并退出:Ctrl + O,Enter,Ctrl + X搜索:Ctrl + W剪切一整行:Ctrl + K粘贴刚剪切的内容:Ctrl + U
注意:Ctrl + O 不是数字 0,是字母 O,意思是 Write Out,也就是保存。
2.10 more命令
功能:查看文件,可以支持翻页查看
语法:more 参数
- 参数:被查看的文件路径
- 在查看过程中:
空格键翻页q退出查看
2.11 cp命令(Copy)
功能:复制文件、文件夹
语法:cp [-r] 参数1 参数2
- 参数1,被复制的
- 参数2,要复制去的地方
- 选项:-r,可选,复制文件夹使用
示例:
- cp a.txt b.txt,复制当前目录下a.txt为b.txt
- cp a.txt test/,复制当前目录a.txt到test文件夹内
- cp -r test test2,复制文件夹test到当前文件夹内为test2存在
2.12 mv命令(Move)
功能:移动文件、文件夹
语法:mv 参数1 参数2
- 参数1:被移动的
- 参数2:要移动去的地方,参数2如果不存在,则会进行改名
2.13 rm命令(Remove)
功能:删除文件、文件夹
语法:rm [-r -f] 参数...参数
-
参数:支持多个,每一个表示被删除的,空格进行分隔
-
选项:-r,删除文件夹使
-
选项:-f,强制删除,不会给出确认提示,一般root用户会用到
-
参数也支持通配符*,可做模糊匹配
rm命令很危险,一定要注意,特别是切换到root用户的时候。
2.14 which命令
功能:查看命令的程序本体文件路径 用来检查系统有没有装某个程序,或者在不在 PATH 里
语法:which 参数
- 参数:被查看的命令
[root@VM-0-17-centos tmp]# which git
/usr/bin/git
[root@VM-0-17-centos tmp]# which python
/usr/bin/python
[root@VM-0-17-centos tmp]# which java
/usr/local/java/jdk1.8.0_202/bin/java
[root@VM-0-17-centos tmp]#
2.15 find命令
功能:搜索文件
语法1按文件名搜索:find 路径 -name 参数
- 路径,搜索的起始路径
- 参数,搜索的关键字,支持通配符*, 比如:
*test表示搜索任意以test结尾的文件
[root@VM-0-17-centos tmp]# find /root -name *cos
/root/nacos
/root/.m2/repository/com/alibaba/nacos
/root/.m2/repository/io/netty/netty-resolver-dns-classes-macos
/root/.m2/repository/io/netty/netty-resolver-dns-native-macos
按文件大小查找文件
find 起始路径 -size +| -n[KMG]
2.16 grep命令
功能:过滤关键字
语法:grep [-n] 关键字 文件路径
- 选项-n,可选,表示在结果中显示匹配的行的行号。
- 参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用””将关键字包围起来
- 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
- 在文件里搜字符串
grep "data" file.txt
找出 file.txt 里包含 data 的所有行。
- 忽略大小写
grep -i "python" file.txt
Python、PYTHON、python 都能匹配。
- 显示行号
grep -n "root" file.txt
输出可能是: 3:root user
-
递归搜目录
grep -r "password" /etc在/etc目录下所有文件里查找password。 -
命令 | grep “词”
ls -l | grep "data"
参数文件路径,可以作为管道符的输入
2.17 wc命令
功能:统计
语法:wc [-c -m -l -w] 文件路径
- 选项,-c,统计bytes数量
- 选项,-m,统计字符数量
- 选项,-l,统计行数
- 选项,-w,统计单词数量
- 参数,文件路径,被统计的文件,可作为内容输入端口
control + D 计算
grep "时间" /root/nacos/nacos.sql | wc -l
先找出包含“时间”的行,再统计有多少行。
参数文件路径,可作为管道符的输入
2.18 管道符|
写法:|
功能:将符号左边的结果,作为符号右边的输入
示例:
cat a.txt | grep itheima,将cat a.txt的结果,作为grep命令的输入,用来过滤itheima关键字
可以支持嵌套:
cat a.txt | grep itheima | grep itcast
2.19 echo命令
功能:输出内容
语法:echo 参数
- 参数:被输出的内容
2.20 `反引号
功能:被两个反引号包围的内容,会作为命令执行 示例:
- echo
pwd,会输出当前工作目录
[root@VM-0-17-centos ~]# echo $PATH
/root/.nvm/versions/node/v20.20.0/bin:/usr/local/java//bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/java/jdk1.8.0_202/bin:/usr/local/maven/bin:/root/bin
[root@VM-0-17-centos ~]# 可以看环境变量
echo hello
echo $PATH
echo hello > a.txt
echo "hello world" | grep hello
2.21 tail命令
功能:查看文件尾部内容
语法:tail [-f -num] 参数
- 参数:被查看的文件
- 选项:-f,持续跟踪文件修改
- 选项:-num,查看尾部多少行
2.22 head命令
功能:查看文件头部内容
语法:head [-n] 参数
-
参数:被查看的文件
-
选项:-n,查看的行数
2.23 重定向符
功能:将符号左边的结果,输出到右边指定的文件中去
>,表示覆盖输出>>,表示追加输出
2.24 vi编辑器
vi demo.txt用途:打开 vi 编辑器来查看或编辑文件;文件不存在时通常会新建一个空文件。
构成:
vi 启动 vi 编辑器,很多系统里它实际会指向 vim。
demo.txt 是要打开或创建的目标文件名。
简单扩展:
i 进入插入模式开始输入文本,Esc 返回普通模式。
:wq 保存并退出,:q! 不保存直接退出。
/关键字 搜索内容,按 n 跳到下一个结果。
命令模式快捷键



底线命令快捷键

2.25 命令的选项
我们学习的一系列Linux命令,它们所拥有的选项都是非常多的。 比如,简单的ls命令就有:-a -A -b -c -C -d -D -f -F -g -G -h -H -i -I -k -l -L -m -n -N -o -p -q -Q -r-R -s -S -t -T -u -U -v -w -x -X -1等选项,可以发现选项是极其多的。 课程中, 并不会将全部的选项都进行讲解,否则,一个ls命令就可能讲解2小时之久。 课程中,会对常见的选项进行讲解, 足够满足绝大多数的学习、工作场景。
查看命令的帮助
可以通过:命令 --help查看命令的帮助手册

查看命令的详细手册
可以通过:man 命令查看某命令的详细手册

3. Linux常用操作
3.1 软件安装
-
CentOS系统使用:
yum [install | remove | search] [-y] 软件名称- install 安装
- remove 卸载
- search搜索
- -y,自动确认
-
Ubuntu系统使用
- apt [install remove search] [-y] 软件名称
- install 安装
- remove 卸载
- search 搜索
- -y,自动确认
- apt [install remove search] [-y] 软件名称
yum 和 apt 均需要root权限
3.2 systemctl
功能:控制系统服务的启动关闭等
语法:systemctl start | stop | restart | disable | enable | status 服务名
- start,启动
- stop,停止
- status,查看状态
- disable,关闭开机自启
- enable,开启开机自启
- restart,重启
3.3 软链接
功能:创建文件、文件夹软链接(快捷方式)
语法:ln -s 参数1 参数2
- -s 选项,创建软链接
- 参数1:被链接的
- 参数2:要链接去的地方(快捷方式的名称和存放位置)
3.4 日期
语法:date [-d] [+格式化字符串]
- -d 按照给定的字符串显示日期,一般用于日期计算
- 格式化字符串:通过特定的字符串标记,来控制显示的日期格式
- %Y 年%y 年份后两位数字 (00..99)
- %m 月份 (01..12)
- %d 日 (01..31)
- %H 小时 (00..23)
- %M 分钟 (00..59)
- %S 秒 (00..60)
- %s 自 1970-01-01 00:00:00 UTC 到现在的秒数
示例:
-
按照2022-01-01的格式显示日期

-
按照2022-01-01 10:00:00的格式显示日期

-
-d选项日期计算

-
支持的时间标记为:

-
3.5 时区
修改时区为中国时区

3.6 ntp
功能:同步时间
安装:yum install -y ntp
启动管理:systemctl start | stop | restart | status | disable | enable ntpd
手动校准时间:ntpdate -u ntp.aliyun.com
3.7 ip地址
格式:a.b.c.d
- abcd为0~255的数字
特殊IP:
- 127.0.0.1,表示本机
- 0.0.0.0
- 可以表示本机
- 也可以表示任意IP(看使用场景)
查看ip:ifconfig
3.8 主机名
功能:Linux系统的名称
查看:hostname
设置:hostnamectl set-hostname 主机名
3.9 配置VMware固定IP
-
修改VMware网络,参阅PPT,图太多
-
设置Linux内部固定IP
修改文件:
/etc/sysconfig/network-scripts/ifcfg-ens33示例文件内容: TYPE=“Ethernet”
PROXY_METHOD=“none”
BROWSER_ONLY=“no”
BOOTPROTO=“static” # 改为static,固定IP
DEFROUTE=“yes”
IPV4_FAILURE_FATAL=“no”
IPV6INIT=“yes”
IPV6_AUTOCONF=“yes”
IPV6_DEFROUTE=“yes”
IPV6_FAILURE_FATAL=“no”
IPV6_ADDR_GEN_MODE=“stable-privacy”
NAME=“ens33”
UUID=“1b0011cb-0d2e-4eaa-8a11-af7d50ebc876”
DEVICE=“ens33”
ONBOOT=“yes”
IPADDR=“192.168.136.128” # IP地址,自己设置,要匹配网络范围
NETMASK=“255.255.255.0” # 子网掩码,固定写法255.255.255.0
GATEWAY=“192.168.136.2” # 网关,要和VMware中配置的一致
DNS1=“192.168.0.1” # DNS1服务器,和网关一致即可 192.168.136.128
3.10 ps命令
功能:查看进程信息
语法:ps -ef,查看全部进程信息,可以搭配grep做过滤:ps -ef | grep xxx
3.11 kill命令

3.12 nmap命令

3.13 netstat命令
功能:查看端口占用
用法:netstat -anp | grep xxx
sudo netstat -tlnp | grep ':80 '
-t 只看 TCP
-l 只看监听中的端口
-n 不解析域名/服务名,直接显示数字端口
-p 显示进程名和 PID,需要 sudo 才完整
3.14 ping命令
测试网络是否联通
语法:ping [-c num] 参数

3.15 wget命令

3.16 curl命令


3.17 top命令
功能:查看主机运行状态
语法:top,查看基础信息
可用选项:

交互式模式中,可用快捷键:

3.18 df命令
查看磁盘占用

3.19 iostat命令
查看CPU、磁盘的相关信息


3.20 sar命令
查看网络统计

3.21 环境变量
- 临时设置:export 变量名=变量值
- 永久设置:
- 针对用户,设置用户HOME目录内:
.bashrc文件 - 针对全局,设置
/etc/profile
- 针对用户,设置用户HOME目录内:
3.22 PATH变量
记录了执行程序的搜索路径 可以将自定义路径加入PATH内,实现自定义命令在任意地方均可执行的效果
3.23 $符号
可以取出指定的环境变量的值
语法:$变量名
示例:
echo $PATH,输出PATH环境变量的值
echo ${PATH}ABC,输出PATH环境变量的值以及ABC
如果变量名和其它内容混淆在一起,可以使用${}
3.24 压缩解压
压缩
tar -zcvf 压缩包 被压缩1...被压缩2...被压缩N
- -z表示使用gzip,可以不写
zip [-r] 参数1 参数2 参数N

解压
tar -zxvf 被解压的文件 -C 要解压去的地方
-
-z表示使用gzip,可以省略
-
-C,可以省略,指定要解压去的地方,不写解压到当前目录
unzip [-d] 参数

3.25 su命令
切换用户
语法:su [-] [用户]

sudo -i 切换为 root
exit退出 root
usermod -l 新用户名 旧用户名修改用户名
3.26 sudo命令

比如:
itheima ALL=(ALL) NOPASSWD: ALL
在visudo内配置如上内容,可以让itheima用户,无需密码直接使用sudo
3.27 chmod命令
2.1 ls命令(List Show) 9.chmod 修改文件权限
修改文件、文件夹权限
语法:chmod [-R] 权限 参数
-
权限,要设置的权限,比如755,表示:
rwxr-xr-x
-
参数,被修改的文件、文件夹
-
选项-R,设置文件夹和其内部全部内容一样生效
a = all
表示:
- 文件所有者
u(user) - 所属组
g(group) - 其他人
o(others)
也就是:所有人
+ 表示:
增加 某种权限 对应地还有:
-:删除权限=:直接设置成某权限
x = execute
表示:
可执行权限
合起来
所以:
chmod a+x 文件名
意思就是:
给这个文件的所有用户都加上执行权限。
3.28chown命令
修改文件、文件夹所属用户、组
语法:chown [-R] [用户][:][用户组] 文件或文件夹

3.29 用户组管理groupadd

3.30 用户管理useradd

3.31 getent命令
使用getent命令,可以查看当前系统有哪些用户
getent passwd
3.31 getent命令
getenv group,查看系统全部的用户组
getent passwd,查看系统全部的用户
3.32 env命令
查看系统全部的环境变量
语法:env
4. 常见快捷键
- CTRL + C 强制停止程序运行
- CTRL + D 退出或登出(某些特定程序的专属页面)(除vim)
- history 历史命令搜索
- 可以通过:!命令前缀,自动执行桑一次匹配前缀的命令
- CTRL + R 输入内容去匹配历史命令
- CTRL + A 跳到命令开头
- CTRL + E 跳到命令结尾
- CTRL + 键盘左键 向左跳一个单词
- CTRL + 键盘右键 向右跳一个大怒
- CTRL + L 可以清空终端效果(clear)