Linux
常见命令
文件和目录操作命令
ls 命令(‼️)
1 | ls [选项] [文件或目录] |
常用选项:
-l
列出长格式-a
列出所有文件,包括隐藏文件-h
人性化显示文件大小-R
递归显示子目录
示例:
ls -l
列出当前目录下所有文件和目录的详细信息ls -a
列出当前目录下所有文件,包括隐藏文件ls -lh
人性化显示文件大小
cd 命令 (‼️)
1 | cd [目录] |
示例:
cd /home/user
切换到用户主目录cd ..
切换到上一级目录cd ~
切换到当前用户的家目录
mkdir 命令(‼️)
1 | mkdir [选项] 目录名 |
常用选项:
-p
递归创建目录-m
设置目录权限
示例:
mkdir mydir
创建名为mydir的目录mkdir -p /tmp/a/b/c
递归创建多级目录
rm 命令(‼️)
remove缩写
1 | rm [选项] 文件或目录 |
常用选项:
-r
递归删除目录及其下所有内容-f
强制删除,不进行提示-i
删除前逐一询问
示例:
rm file.txt
删除文件file.txtrm -r mydir
递归删除目录mydir
mv 命令(‼️)
1 | mv [选项] 源文件或目录 目标文件或目录 |
常用选项:
-i
移动前逐一询问确认-u
当源文件比目标文件新时才移动
示例:
mv file.txt newname.txt
重命名文件mv *.txt documents/
移动所有txt文件到documents目录
cat 命令(‼️)
1 | cat [选项] 文件 |
常用选项:
-n
显示行号
示例:
cat file.txt
查看文件file.txt的内容cat -n file.txt
显示行号
pwd 命令(‼️)
pwd命令是Linux系统中用于显示当前工作目录的绝对路径的命令。
1 | pwd [选项] |
常用选项
-L
或--logical
(默认选项) 显示环境变量$PWD
的值,即使它是一个符号链接。[1][3][5]-P
或--physical
显示当前工作目录的物理路径,不跟随符号链接。[1][3][5]--help
显示帮助信息。[5]--version
显示版本信息。[5]
示例:
显示当前工作目录路径
1 | [root@localhost ~]# pwd |
cp 命令
1 | cp [选项] 源文件或目录 目标文件或目录 |
常用选项:
-r
复制目录及其子内容-i
覆盖前逐一询问-u
当源文件比目标文件新时才复制
示例:
cp file.txt newfile.txt
复制文件cp -r mydir newdir
递归复制目录mydir到newdir
head 命令
1 | head [选项] 文件 |
常用选项:
-n
指定显示行数
示例:
head file.txt
显示文件开头10行head -n 20 file.txt
显示文件开头20行
tail 命令
1 | tail [选项] 文件 |
常用选项:
-n
指定显示行数-f
实时监视文件更新
示例:
tail file.log
显示文件结尾10行tail -n 30 file.log
显示文件结尾30行tail -f app.log
实时监视app.log文件更新
系统管理命令
uname 命令(‼️)
1 | uname [选项] |
常用选项:
-a
:显示所有系统信息。-r
:显示内核版本。
示例:
uname
: 显示系统名称。uname -a
: 显示所有系统信息。uname -r
: 显示内核版本。
ps 命令(‼️)
1 | ps [选项] |
常用选项:
-e
显示所有进程-f
全格式显示-u
显示用户IDaux
显示所有进程,包括其他用户进程
示例:
ps
显示当前终端进程ps -ef
显示所有进程的全格式列表ps aux
查看所有进程详细信息
kill 命令(‼️)
1 | kill [选项] 进程ID |
常用选项:
-9
强制终止进程
示例:
kill 1234
终止进程ID为1234的进程kill -9 1234
强制终止进程ID为1234的进程
shutdown 命令
1 | shutdown [选项] 时间 [警告消息] |
常用选项:
-r
重启系统-h
完全关闭系统-c
取消已经执行的shutdown命令
示例:
shutdown -r 18:00 "System reboot at 18:00"
设置18:00重启系统shutdown -h now
立即关闭系统shutdown -c
取消已经执行的关机/重启命令
reboot 命令
1 | reboot |
示例:
reboot
重启系统
top 命令
1 | top [选项] |
常用选项:
-d
指定更新间隔时间-p
监视指定进程ID的进程
示例:
top
查看系统实时运行状态top -d 2
每2秒更新一次top -p 1234,2345
监视进程ID为1234和2345的进程
free 命令
1 | free [选项] |
常用选项:
-h
人性化显示内存使用量-m
以MB为单位显示内存使用量
示例:
free
查看内存使用情况free -h
人性化显示内存使用量
df 命令
1 | df [选项] |
常用选项:
-h
人性化显示磁盘使用量-T
显示文件系统类型
示例:
df
查看磁盘使用情况df -hT
人性化显示磁盘使用量和文件系统类型
du 命令
1 | du [选项] [文件或目录] |
常用选项:
-h
人性化显示文件大小-s
只显示总计大小-c
显示总计大小
示例:
du -h /home
查看/home目录大小du -sh *
查看当前目录下所有文件和子目录的总大小
网络命令
ping 命令(‼️)
1 | ping [选项] 主机 |
常用选项:
-c
指定发送包的数量-i
指定发送包的间隔时间
示例:
ping 8.8.8.8
测试与8.8.8.8的连通性ping -c 5 www.example.com
向www.example.com发送5个包
ifconfig 命令
1 | ifconfig [网络设备] [参数] |
常用参数:
up
启用指定网络设备down
禁用指定网络设备IP地址
为指定网络设备指定IP地址netmask
为指定网络设备指定子网掩码
示例:
ifconfig
查看所有网络接口的状态ifconfig eth0 up
启用eth0网卡ifconfig eth0 192.168.1.100 netmask 255.255.255.0
设置eth0的IP和子网掩码
netstat 命令
1 | netstat [选项] |
常用选项:
-a
列出所有连接-n
不解析主机名和服务名-p
显示进程ID和程序名-r
显示路由表-l
仅列出监听状态的连接
示例:
netstat -antp
列出所有连接及进程信息netstat -r
查看路由表netstat -ln
查看监听端口
telnet 命令
1 | telnet [选项] 主机 [端口] |
常用选项:
-8
允许使用8位数据路径-E
escapre字符改为其他字符
示例:
telnet www.example.com 80
连接example.com的80端口telnet 192.168.1.100
连接IP为192.168.1.100的主机
用户和权限管理命令
用户权限的描述如下图
文字描述如下
Linux是一个多用户操作系统,每个文件和目录都有所有者(owner)、所属组(group)和其他用户(others)三种身份类型。
对于每种身份类型,Linux使用”rwx”三个字母分别表示读(read)、写(write)和执行(execute)三种基本权限。
- r(读权限)允许查看文件内容
- w(写权限)允许修改文件内容
- x(执行权限)允许执行文件或切换到目录
通过ls -l
命令可以查看文件或目录的权限信息,例如”rwxr-xr–”表示:所有者具有读、写、执行权限,所属组只有读和执行权限,其他用户只有读权限。
权限可以用数字表示,其中r=4、w=2、x=1,三个值相加即为该身份类型的权限值。例如7=4+2+1表示所有权限,6=4+2表示读写权限。
chmod 命令(‼️)
1 | chmod [选项] 模式 文件或目录 |
常用选项:
-R
递归修改目录下所有文件和子目录
示例:
chmod 777 file.sh
设置file.sh的权限为777chmod -R 644 documents/
递归设置documents目录下所有文件权限为644
useradd 命令
1 | useradd [选项] 用户名 |
常用选项:
-m
自动创建用户家目录-g
指定用户所属的用户组-G
指定用户所属的附加组-s
指定用户登录的shell
示例:
useradd -m newuser
创建一个新用户newuser并创建家目录useradd -g devgroup newdev
创建新用户newdev,所属组为devgroup
userdel 命令
1 | userdel [选项] 用户名 |
常用选项:
-r
删除用户的同时删除家目录
示例:
userdel user1
删除用户user1userdel -r olduser
删除用户olduser及其家目录
passwd 命令
1 | passwd [选项] [用户名] |
常用选项:
-l
锁定用户密码,使密码无效-u
解锁用户密码-d
删除用户密码,允许空密码登录
示例:
passwd
修改当前用户密码passwd user1
为用户user1修改密码passwd -l user2
锁定user2的密码
chown 命令
1 | chown [选项] 用户[:用户组] 文件或目录 |
常用选项:
-R
递归修改目录下所有文件和子目录
示例:
chown user1 file.txt
将file.txt的所有者改为user1chown user1:devgroup docs/
将docs目录的所有者改为user1,所属组改为devgroup
软件包管理命令
yum 命令 (RedHat系)
1 | yum [选项] [操作] [软件包] |
常用选项:
-y
自动回答yes--skip-broken
忽略有问题的软件包
常用操作:
install
安装软件包update
更新软件包remove
卸载软件包list
列出软件包search
搜索软件包
示例:
yum install nginx
安装nginxyum update
更新所有软件包yum remove httpd
卸载httpdyum list installed
列出已安装的软件包
apt 命令 (Debian系)
1 | apt [选项] [操作] [软件包] |
常用选项:
-y
自动回答yes
常用操作:
install
安装软件包update
更新软件包列表upgrade
升级已安装的软件包remove
卸载软件包search
搜索软件包
示例:
apt install apache2
安装apache2apt update
更新软件包列表apt upgrade
升级已安装的软件包apt remove php
卸载phpapt search editor
搜索编辑器软件包
其他常用命令
man 命令
1 | man [命令] |
示例:
man ls
查看ls命令的帮助手册
which 命令
1 | which [命令] |
示例:
which python
查找python命令的位置
find 命令
1 | find [路径] [选项] [查找模式] |
常用选项:
-name
按文件名查找-iname
按文件名查找,忽略大小写-user
按文件所有者查找-size
按文件大小查找
示例:
find . -name "*.txt"
在当前目录查找txt文件find /home -iname "README"
在/home目录下不分大小写查找README文件find / -user root
查找所有者为root的文件
grep 命令
1 | grep [选项] 查找模式 [文件] |
常用选项:
-i
忽略大小写-n
显示匹配行行号-r
递归查找子目录-v
反向查找,显示不匹配行
示例:
grep "error" app.log
在app.log中查找errorgrep -i "warning" *.log
忽略大小写在所有log文件中查找warninggrep -rn "TODO" /path
递归查找TODO并显示行号
tar 命令
1 | tar [选项] [文件或目录] |
常用选项:
-c
创建压缩文件-x
解压文件-z
使用gzip压缩-j
使用bzip2压缩-v
显示详细信息-f
指定压缩文件名
示例:
tar -czf archive.tar.gz files/
使用gzip压缩files目录为archive.
Vim编辑器
它主要分为三种模式:命令模式、插入模式和底行模式。
命令模式
命令模式用于控制光标移动、删除文本、复制粘贴等操作,不能直接输入文本。一些常用命令:
h/j/k/l
分别控制光标左/下/上/右移动x
删除光标所在字符dd
删除整行(‼️)yy
复制当前行p/P
粘贴到光标后/前/pattern
查找patternn/N
查找下/上一个匹配项u
- 撤销上一步操作(‼️)U
- 撤销对当前行的所有操作Ctrl+r
- 重做上一步被撤销的操作(‼️)
插入模式
在命令模式下按i
进入插入模式,可以直接输入文本。按Esc
键退出插入模式回到命令模式。
尾行模式
在命令模式下按:
进入底行模式,可执行一些命令:
:w
保存文件:q
退出:wq
将当前编辑的文件内容写入磁盘保存,然后退出Vim编辑器(‼️):q!
强制退出不保存:x
保存并退出:/pattern
查找pattern:n
跳转到第n行
Vim功能强大,上述只是一些基本用法,还有很多高级技巧如多窗口编辑、代码折叠等,需要持续学习掌握。[1][2][3][4][5]