#查看指定命令帮助文档概要
命令 --help
#查看指定命令的帮助文档详细
man 指令
#用户根目录
~
#系统根目录
/
#查看当前系统版本
sudo lsb_release -a 
#在本次终端中,将当前用户切换为root账户
su
#将命令按照root权限执行
sudo 命令 
#修改用户密码
passwd 用户名
#退出root账户(root用户模式下) 或 退出终端(普通用户模式下)
exit
#清屏
clear
#重启
reboot  或  shutdown -r now
#关机
poweroff  或  shutdown -h now  或  halt
#查看当前路径下所有文件(不包括隐藏文件)
ls    
注:文件的权限符,以 d 开头表明是文件夹 例:drwxrwxrwx,以 - 开头表明是文件 例:-rwxrwxrwx,以 l 开头表明是软链接文件 例:lrwxrwxrwx;
#查看当前路径下所有文件的权限、硬链接数量、文件拥有者、文件所属用户组、文件大小、创建或最近修改时间等信息(不包括隐藏文件)
ls -l
注:硬链接相当于一个文件的备份,但可以与原文件同步更新,硬链接与原文件具有相同的文件结点号,不能对目录创建硬链接,硬链接不能跨分区;
#为一个文件创建一个硬链接
ln 文件 硬链接文件
注:软链接相当于文件的一个快捷方式,权限符默认为 lrwxrwxrwx
#为一个文件或文件夹创建一个软链接
ln -s 文件 软链接文件
注:文件或文件夹名以 . 开头的都是隐藏文件
#查看当前路径下所有文件(包括隐藏文件)
ls -a
#查看当前路径下所有文件的权限、硬链接数量、文件拥有者、文件所属用户组、文件大小、创建或最近修改时间等信息(包括隐藏文件)
ls -al 或 ll
#查看指定路径下对应的所有文件信息
ls 文件路径 或 ls -l 文件路径 或 ls -a 文件路径 或 ls -al 文件路径
#查看指定文件的权限、拥有者、创建时间
ls -al | grep 文件 或 ll | grep 文件
#只查看目录的详细信息
ll -d
#查看文件的节点号
ls -i 文件
#查看文件属性
stat 文件
#查看当前所在文件路径
pwd
#回退到上一级文件目录
cd ..
#回退到系统根目录
cd /
#回退到用户根目录
cd ~
#跳转到指定的文件路径
cd 文件路径
文件操作命令
#创建文件夹
mkdir 文件夹
#递归创建文件夹
mkdir -p 文件夹/文件夹
#创建文件
touch 文件
#删除文件
rm 文件
#删除空的文件夹
rm -d 文件夹 或 rmdir 文件夹
#递归删除指定文件夹下所有的内容,包括指定的文件夹
rm -r 文件夹
#复制文件到指定目录
cp 原文件 目标路径
#复制文件到指定目录,并保留文件原属性(保留文件的访问或修改时间)
cp -p 原文件 目标路径
#复制文件夹及文件夹下所有内容
cp -r 原文件夹 目标路径
#移动文件到指定目录
mv 文件 目标路径
#文件重命名(在同目录下操作)
mv 文件名 新文件名
#将文件内容输出到终端
cat 文件名
#查看指定文件的详细信息
stat 文件
注:md5sum 命令会根据文件内容生成一个md5序列值,通过比较md5序列值来判断两个文件的内容是否相同,整个过程与文件名无关;
#校验文件内容是否相同
md5sum 文件
文件搜索命令
注:若文件路径为空,就默认当前路径
#命令格式
find 文件路径 搜索条件
注:* 为通配符,代表任意数量字符; ? 为通配符,代表一个字符
#根据关键字查找文件
find 文件路径 -name "*关键字*"
#根据关键字查找文件(关键字不区分大小写)
find 文件路径 -iname "*关键字*"
#根据文件后缀查找文件
find 文件路径 -name "*.后缀名"
注:+ 代表大于,- 代表小于,无符号代表等于;n 为数据块,一个数据块的大小为 512 字节
#根据文件大小查找文件
find 文件路径 -size +n 或 find 文件路径 -size -n 或 find 文件路径 -size n
注:条件连接符( -a 代表并且,-o 代表或者)
#查找文件大小大于 1 MB 并且小于 2MB 的文件
find 文件路径 -size +2048 -a -size -4096
注:-type 参数,d 为文件夹,f 为文件,l 为软链接
#查找文件名中包含关键字的文件夹
find 文件路径 -name "*关键字*" -a -type d
#查找最近 n 天有被访问的文件
find 文件路径 -atime -n
#查找最近 n 分钟有被访问的文件
find 文件路径 -amin -n
#查找最近 n 天文件属性有修改的文件
find 文件路径 -ctime -n
#查找最近 n 分钟文件属性有修改的文件
find 文件路径 -cmin -n
#查找最近 n 天文件内容有修改的文件
find 文件路径 -mtime -n
#查找最近 n 分钟文件内容有修改的文件
find 文件路径 -mmin -n
#根据文件的拥有者查找文件
find 文件路径 -user 用户名
#根据文件所属用户组查找文件
find 文件路径 -group 用户组
#根据文件节点号查找文件
find 文件路径 -inum 节点号
#对文件查询结果进行操作命令
- exec 命令 {} \;
例  find 文件路径 -inum 文件节点号 -exec ls -l {} \;
注:locate指令不是系统基础指令,需要通过 apt install mlocate 下载,locate 查找文件的速率比 find -name 快得多,因为locate并不是从真实的目录查找文件,而是搜索一个数据库mlocate.db,mlocate.db存储了本地所有的文件信息(/tmp 除外),linux 系统自动创建这个数据库,并每天更新一次,为了确保新创建文件可以被正常检索,在执行查询命令前需要更新mloxate.db
#根据关键字查找文件
updatedb
locate 关键字 或 locate -i 关键字(忽略大小写)
#查看系统命令的存储位置
which 命令
#查看系统命令及帮助文档的存储位置
whereis 命令
#检索文件内容,找到并打印关键字所在行
grep 关键字 文件 -a
文件解压缩命令
注:使用gzip命令,解压或压缩后,都不会保留原文件,gzip 指令只能压缩文件;
#将文件压缩为 .gz 格式
gzip 文件
#解压 .gz 格式的压缩包
gunzip 压缩包 或 gzip -d 压缩包
#将文件压缩为 .zip 格式
zip 文件名.zip 文件
#将文件夹压缩为 .zip 格式
zip -r 文件名.zip 文件夹
#解压 .zip 格式的压缩包
unzip 压缩包
注:tar 指令只能够打包压缩文件夹,-c 打包, -z 打包同时压缩, -f 指定文件名
#将文件夹打包压缩为 .tar.gz格式
tar -czf 文件名.tar.gz 文件夹
注:-x 解包, -z 解压缩, -f 指定文件名
#解压 .tar.gz 格式的压缩包
tar -xzf  压缩包
注:rar 指令并非系统基础指令,需通过 apt install rar 下载
#将文件打包压缩为 .rar 格式
rar a 文件名.rar 文件
#解压 .rar 格式的压缩包
unrar x 压缩包
#将文件打包压缩为 .bz2 格式
bzip2 -k 文件 或 tar -cjf 文件名.bz2 文件
#解压 .bz2 格式的压缩包
bunzip2 -k 压缩包 或 tar -xjf 压缩包
权限管理命令
注:在修改文件权限时,u 代表文件拥有者, g 代表文件所属用户组, o 代表其他用户, a 代表所有用户; + 代表增加权限, - 代表移除权限, = 代表重新赋予权限;r 代表读权限, w 代表写权限, x 代表可执行权限;
注:文件夹权限和文件权限有所不同,文件夹的 r 权限代表可以列出文件夹下的内容;文件夹的 w 权限代表可以在文件夹下创建或删除文件;文件夹的 x 权限代表可以进入到文件夹
#修改文件权限命令格式
chmod ugoa +-= rwx file
#为文件拥有者赋予读写执行权限
chmod u=rwx file
#为其他用户增加写权限
chmod o+w file
#为文件所属用户组移除写和执行权限
chmod g-wx file
#为所有用户赋予读写执行权限,其他用户移除执行权限,文件所属用户组移除写和执行权限
chmod a=rwx,o-x,g-wx file
注:为用户赋予文件权限命令简洁版,将 rwx 权限看作是一个3位的二进制,000 代表无任何权限, 001 代表具有执行权限, 100 代表具有读权限, 111 代表具有读写执行权限, 110 代表具有读写权限, 010 代表具有写权限, 011 代表具有写和执行权限;在实际命令中,我们将二进制转换为十进制使用,比如 7 代表具有读写执行权限,0 代表无任何权限,4 代表具有读权限,3 代表具有写和执行权限,1 代表具有执行权限;在同时给ugo用户赋予权限时,我们需要严格按照用户的书写顺序 ugo,比如 777 代表为全部用户赋予读写执行权限,700 代表为文件拥有者赋予读写执行权限—文件所属用户组和其他用户无任何权限,734 代表文件拥有者赋予读写执行权限—文件所属用户组赋予写和执行权限—其他用户赋予读权限;
#为全部用户赋予读写执行权限
chmod 777 file 等同于 chmod u=7,g=7,o=7 file 或 chmod a=7 file
#为文件拥有者赋予读写执行权限,文件所属用户组赋予读写权限,其他用户赋予读权限
chmod 764 file 等同于 chmod u=7,g=6,o=4 file
#改变文件或文件夹的拥有者
chown 用户 文件
#改变文件或文件夹所属的用户组
chgrp 用户组 文件
注:在创建文件时,在默认的权限配置基础上,还要减去可执行权限 x
#查看创建文件或文件夹时,默认的权限配置
umask -S
注:若想要将默认的权限配置修改为 744 ,权限十进制反码应为 033 (等同于 777 -744 )
#修改默认的权限配置
umask 权限十进制反码
#远程登录其他主机,前提:能 ping 通目标主机IP
ssh 目标主机名@IP
#从本地复制文件到目标主机
scp 本地文件路径 目标主机名@IP:文件路径
#从目标主机复制文件到本地
scp 目标主机名@IP:文件路径 本地文件路径
#从本地复制指定文件夹目录下所有内容到目标主机
scp -r 本地文件路径 目标主机名@IP:文件路径
#从目标主机复制指定文件夹目录下所有内容到本地
scp -r 目标主机名@IP:文件路径 本地文件路径
注:linux 系统主要分为三个系列——Redhat系列、Debian系列、Gentoo系列;Redhat系列的软件包管理方式采用的是基于RPM包的 yum 包管理方式,Debian系列的软件包管理方式采用的是基于APT包的 apt-get / dpkg 包管理方式;ubantu 属于Debian系列;
#更新系统软件源列表
apt-get update
#搜索软件包
apt-cache search package
#安装软件包
apt-get install package
#升级已安装软件包
apt-get upgrade
#删除软件包
apt-get remove package
#删除软件包及相关配置文件
apt-get purge package
#自动删除不需要的依赖包
apt-get autoremove
#列出所有已安装的软件包
apt list --installed
#下载 aptitude,aptitude 对依赖包的管理能力优于 apt
apt-get install aptitude
#执行deb安装包
dpkg -i deb文件
#查看指定的已安装的package
dpkg -l | grep 关键词
#查看与package相关联的文件
dpkg -L package
#网络文件下载
wget url
#动态显示文件末尾内容,跟踪文件内容增长情况(常用于监控动态变化的日志文件)
tail -f filename
#打印关键字在文件中对应的行记录
grep "关键字" 文件 -a
网络命令
#查看本机路由表
netstat -rn
#查看端口的占用情况
netstat -apn | grep 端口号
#查看本机IP地址和MAC地址
ifconfig    或    ip addr
#查看本机的IP地址
hostname -I
进程管理命令
注:BSD 为 Unix 的的衍生系统
#查看系统中所有进程
ps aux    BSD操作系统格式
ps -le   linux标准命令格式
#显示归纳整理后的进程信息
pstree -p
#显示指定程序名称下的所有进程
pstree -p | grep 程序名称
注:格式 [信号代号:信号名称],[1:HUP],[2:INT],[9:KILL],[15:GTERM],[18:CONT],[19:STOP] ,pid 为进程号
#重启进程
kill -1 pid 或 kill -HUP pid
#程序终止信号,用于终止前台进程
kill -2 pid 或 kill -INT pid
#强制终止进程
kill -9 pid 或 kill -KILL pid
#强制终止指定程序名称下的所有进程
killall -9 程序名称 或 pkill -9 程序名称
#强制终止指定终端用户下所有开启的进程
pkill -9 -t 终端用户名
#暂停进程
kill -19 pid 或 kill -STOP pid
#恢复已暂停进程
kill -18 pid 或 kill -CONT pid
注:在top模式下,快捷键 shift + P 是以CPU占用率从高到底,shift + M 是以内存占用率从高到底
#查看系统当前运行状态(默认3秒更新一次)
top
#更改系统运行状态更新间隔(n为秒数)
top -d n
用户管理命令
#查看当前登录终端的所有用户
w
服务管理命令
#查看所有服务状态
service --status-all
#开启服务
service 服务名 start  或  /etc/init.d/服务名 start  或  systemctl start 服务名
#关闭服务
service 服务名 stop  或  /etc/init.d/服务名 stop  或  systemctl stop 服务名
#重启服务
service 服务名 restart  或  /etc/init.d/服务名 restart  或  systemctl restart 服务名
#查看开机自启动项
sudo systemctl list-unit-files
#关闭某个开机自启动项
sudo systemctl disable 服务名
#开启指定服务的开机自启动
sudo systemctl enabled 服务名
#查看历史命令
history
#将命令的执行结果写入文件(覆盖文件原内容)
命令 > 文件
#将命令的执行结果写入文件(执行结果添加在文件内容末尾)
命令 >> 文件
#将命令的错误执行信息写入文件(覆盖)
命令 2> 文件
#将命令的错误执行信息写入文件(追加)
命令 2>> 文件
#将命令的正确执行结果或错误执行信息写入文件(覆盖)
命令 &> 文件
#将命令的正确执行结果或错误执行信息写入文件(追加)
命令 &>> 文件
#导出数据库中的数据
mysqldump -uusername -ppassword database >  文件名.sql
#导出数据库中指定的表数据
mysqldump -uusername -ppassword database table >  文件名.sql
#导出数据库中所有的表结构
mysqldump -uusername -ppassword -d database >  文件名.sql
#导出数据库中指定的表结构
mysqldump -uusername -ppassword -d database table >  文件名.sql
#在数据库中导入数据
source sql文件
#查看系统的环境变量
env
挂载设备
#查看当前已挂载的设备
fdisk -l
#清除挂载目录下的所有设备
umount 挂载目录
#将设备挂载到指定目录
mount -t 文件系统类型 挂载目录 指定目录
#按照指定文件系统类型格式化当前设备
mkfs.vfat 挂载目录 -I
抓包指令
#抓取经过指定网卡的数据包, any 用于指代任意网卡
tcpdump -i 网卡名称
#抓取发送给目标地址为 192.168.200.205的数据包
tcpdump dst host 192.168.200.205
#抓取发送到目标端口3306的数据包
tcpdump dst port 3306
#抓取目标地址为 192.168.200.205, 目标端口为 3306的数据包
tcpdump dst host 192.168.200.205 dst port 3306
#抓取源地址为 192.168.200.205, 源端口为 3306发来的数据包
tcpdump src host 192.168.200.205 src port 3306
#抓取来自192.168网段的数据包
tcpdump src net 192.168
#根据协议进行过滤, 协议类型分为 ip tcp udp http arp icmp
tcpdump 协议类型 dst net 192.168 
#显示完整的数据包内容
tcpdump dst net 192.168 -s0