作用:
使用:
# 在当前目录下建立一个子目录(子文件夹)
mkdir 子目录名
作用:
使用:
# 修改f1的时间戳为当前时间,如果f1不存在,则创建f1
touch f1
# 修改f1的时间戳为指定时间
touch -d "xxxx-xx-xx" f1
作用:
使用:
# 复制一份f1文件并命名为f2
cp f1 f2
# 将f1文件复制一份同名文件到dir1中
cp f1 dir1
# 将dir1中的全部文件复制一份同名文件到dir2中
cp -r dir1 dir2
# 常用参数
-i:如果复制的目的路径下已有同名文件,则询问是否覆盖
-r:是否递归复制子目录
作用:
使用:
# 将f1文件重命名为f2文件
mv f1 f2
# 将dir1文件夹重命名为dir2文件夹
mv dir1 dir2
# 将dir1文件夹移动到dir2中并重命名为dir3
mv dir1 dir2/dir3
# 将f1文件移动到dir1文件夹中
mv f1 dir1
# 常用参数
-i:如果移动的目的路径下已有同名文件,则询问是否覆盖
-f:强制执行移动操作,不管是否有同名文件
作用:
使用:
# 删除f1文件
rm f1
# 删除dir1文件夹
rm -r dir1
# 删除空文件夹dir1,如果文件夹dir1不为空则报错
rm -d dir1
# 等价于
rmdir dir1
# 常用参数
-i:删除前询问
-f:强制执行删除操作
-r:递归删除文件夹及其子文件夹,如果要删除的是文件夹的话则必须加上
-d:如果是空文件夹则删除
作用:
使用:
pwd
# 输出:
/home/jeremy_wsl/linux_command_test
作用:
使用:
(1) cat
:直接将文件的全部内容打印到控制台中;
(2) more
:逐页将文件的内容打印到控制台中;
space
加载下一页;b
加载上一页;(3) less
:新开一个窗口打印文件内容;
more
的功能更加强大,推荐使用:
space
加载下一页;b
加载上一页;?
反向搜索匹配的字符串;/
正向搜索匹配的字符串;
n
可以跳转到下一个匹配的字符串;N
可以跳转到上一个匹配的字符串;y
加载上一行;more
和less
中可以使用的其他一些指令如下:
:n
:加载查看当前目录的上一个文件的内容;:p
:加载查看当前目录的下一个文件的内容;作用:
使用:
u
:文件所有者;
g
:用户组;o
:其他用户;a
,相当于ugo
;r
:是否可以读(4
);w
:是否可以写(2
);x
:是否可以执行(1
);# 为u/g/o增加文件f1的可读权限r
chmod ugo+r f1
# 递归为所有用户增加当前目录下的文件的可读权限r
chmod -R a+r *
# 为u/g/o设置文件f1的可读、可写和可执行权限
chmod 777 f1 # 等价于 chmod a=rwx f1
作用:
root
权限可以执行该命令;使用:
# 将f1文件的所有权转移到指定用户上
chown [用户名 | 用户ID]:[组名 | 组ID] f1
# 常用参数
-v:显示命令执行过程
-R:递归处理子目录中的文件
作用:
使用:
find [路径] [可选参数]
# 在当前目录查找f1文件
find ./ -name f1
# 在当前目录查找以.txt为后缀的文件
find ./ -name "*.txt"
# 在/home目录查找大于1MB
find /home -size +1M
# 在/var/log目录下查找7天内修改过的文件
find /var/log -mtime -7
# 在/var/log目录下查找3天前创建的文件
find /var/log -ctime +3
# 关于参数n的说明
+n:查找大于n的文件或目录
-n:查找小于n的文件或目录
n:查找等于n的文件或目录
file [文件名 | 文件目录名]
作用:
tar
命令作为归档命令;gzip
只能压缩单个文件;.gz
;使用:
# 压缩f1文件
gzip f1
# 递归压缩dir1目录下的所有文件,每个文件对应一个压缩文件.gz
gzip -r dir1
# 查看压缩文件f1.gz的压缩率等信息
gzip -l fl.gz
# 解压缩当前目录下的所有.gz文件,同时输出解压缩过程信息
gzip -dv *
# 常用参数
-r:递归进行文件压缩
-l:查看压缩文件的压缩信息
-d:解压缩压缩文件
-v:输出指令执行过程
作用:
gzip
命令,这里可以一次性压缩和归档多个文件,功能更加强大;使用:
# 将当前目录的f1、f2等文件打包生成一个xxx.tar文件
tar -cvf xxx.tar f1 f2 ...
# 将xxx.tar文件解包到当前目录
tar -xvf xxx.tar
# 查看xxx.tar文件中的所有文件列表
tar -tvf xxx.tar
# 将当前目录的f1、f2等文件打包并压缩生成一个xxx.tar.gz文件
tar -czvf xxx.tar.gz f1 f2 ...
# 解压缩文件xxx.tar.gz
tar -xzvf xxx.tar.gz
# 将压缩文件xxx.tar.gz解压到指定文件夹/path/to/dest
tar -xzvf xxx.tar.gz -C /path/to/dest
# 常用参数
-c:建立新的归档文件
-v:显示指令执行过程
-f:指定归档文件名字
-x:从归档文件中还原文件
-t:列出归档文件的内容
-z:通过gzip命令压缩归档文件
-C:切换到指定的目录
作用:
使用:
-e
:翻译转义字符,如\t
、\n
等;# 按照转义字符打印字符串
echo -e "hello world!\n"
# 打印变量
export name='jeremy' # 设置name变量,注意等号左右没有空格
echo "$name is now here"
作用:
使用:
# 查看grep所有选项说明
grep --help
# 查找f1文件内容中匹配字符串的行
grep [匹配字符串] f1
# 递归查找dir1的所有文件内容中的匹配字符串的行,同时输出行号
grep -r -n [匹配字符串] dir1
# 查找其他命令输出结果中的匹配字符串,仅输出匹配的行数
[其他命令] | grep -c [匹配字符串]
# 按照文件中的多个匹配字符串查找f1文件中的匹配行
grep -f [匹配字符串所在文件名] f1
# 在当前目录下名字包含test字符串的文件中查找匹配的字符串,不区分大小写
# 不会递归查找,仅查找当前目录
grep -i [匹配字符串] *test*
# 在当前目录下的所有名字含dir字符串的文件夹中的所有文件查找匹配字符串
grep -r [匹配字符串] ./*dir*
# 在当前目录下所有名字包含test字符串的文件中查找匹配的字符串,递归查找
find ./ -name "*test*" | xargs grep -n [匹配字符串]
# 常用参数
-n:显示匹配行所在文件的行号
-c:仅显示查找到的匹配行的数量
-r:递归查找文件夹的子文件,如果查找的是文件夹则必须加上
-v:反向查找,显示所有不含匹配字符串的行
-i:查找匹配字符串时不区分大小写
作用:
使用:
# 对f1文件中的行进行排序,默认以第一列按ASCII码升序,排序结果输出到控制台
sort f1
# 按照第二列和第三列进行排序
sort -k 2,3 f1
# 常用参数
-k:指定排序的列,可以多个,列与列之间用空格分开
-r:按照倒序排序
-n:根据每行开头的数字值大小进行排序,除数字开头外的部分用ASCII码排序,非数字开头的行排在前面(注意数字值大小顺序并非字典顺序)
-b:忽略每行前面的空格字符
-u:去掉排序结果中的重复行
作用:
使用:
# 切换到root用户
su root
作用:
su
粒度更小且更安全的使用系统管理员身份的方式;使用:
sudo
操作日志;# 以系统管理者的身份执行指令
sudo 指令
作用:
使用:
# 查看当前控制台下属于当前用户所有的进程
ps
# 查看系统上运行的所有进程
# -e:列出所有进程
# -f:以完整格式显示进程信息
# f:以树形结构显示进程之间的父子关系
ps -ef f
# 查看指定用户的进程
# -u:按照用户筛选进程
ps -u username
# 显示所有在内存中的进程详细信息,包括占用CPU百分比和内存百分比
# a:显示所有用户的进程
# u:按照用户导向的格式显示信息
# x:显示没有控制终端的进程
ps aux
# 查看指定pid进程的详细信息
ps -p [进程id]
# 查看指定进程名的详细信息
ps -ef | grep [进程名]
# 查看指定pid进程的线程信息
ps -T [进程id]
# 显示ps各个参数的详细命令
ps --help all
作用:
使用:
1 (HUP)
:重新加载进程;9 (KILL)
:强制杀死一个进程;15 (TERM)
:通知进程终止(默认);# 发送KILL信号给gpid的进程组(也就是pid进程及其所产生的所有进程)
kill -9 [进程id]
# 发送TERM信号给gpid的进程组(也就是pid进程及其所产生的所有进程)
kill [进程id]
# 查看所有可以发送的信号
kill -l
作用:
使用(注意大小写):
# 打开top窗口
top
作用:
使用:
&
即可;bg %[作业号]
让后台作业继续执行;fg %[作业号]
将后台作业调到前台终端执行;jobs
命令查看;
ps
和top
也可以查看;# 查看当前终端的所有后台作业
jobs
# 将一个后台暂停的作业继续执行
bg %[jobnumber]
# 将一个后台作业调到前台(也就是当前终端中)执行
fg %[jobnumber]
# 常用参数
-l:显示作业编号、进程ID和命令行等详细信息
-n:仅显示上次调用jobs指令后状态发生改变的作业
-r:仅显示正在运行(Running)的作业
-s:仅显示被阻塞(Stopped)的作业
作用:
使用:
# 跟踪某个已有的进程
strace -p [进程id]
# 使用可执行文件创建进程并跟踪
strace [可执行文件路径]
# 将跟踪结果打印到磁盘文件中
strace -o [打印文件路径] [可执行文件路径]
# 仅跟踪信号传递信息
strace -e trace=signal [可执行文件路径]
# 一个例子
# strace.out是跟踪信息打印文件
# a.out是可执行文件
# 仅跟踪信号信息
strace -e trace=signal -o strace.out ./a.out
mount -t [设备类型] [设备名] [设备挂载点]
# 将U盘/dev/sdb1挂载到/media/disk目录
mount -t vfat /dev/sdb1 /media/disk
作用:
使用:
umount [设备名 | 设备挂载点]
作用:
使用:
# 查看磁盘使用情况,单位是块(1024Bytes = 1KB)
df
# 查看磁盘使用情况,单位是MB、GB等
df -h
作用:
使用:
# 显示当前目录的文件夹所占空间,单位是MB、GB等
du -h # 等价于 du -h ./
# 显示当前目录所有文件的所占总空间
du -s ./
# 显示当前目录所有文件和文件夹所占的空间
du -a ./
# 常用参数
-h:用常见的单位显示各个文件或目录的大小
-s:显示某个目录下所有文件的总大小
-a:显示所有文件和文件夹的大小,而不是默认的只显示文件夹的大小
作用:
使用:
# 显示当前的内存状态
free
# 额外显示内存之和,以易读的单位显示
free -t -h
# 每10s查询一次内存状态
free -s 10
作用:
ipconfig
;使用:
# 查看当前网络接口信息
ifconfig
# 设置IP地址和子网掩码
sudo ifconfig eth0 192.168.0.2 netmask 255.255.255.0 up
作用:
使用:
# 测试通信是否正常,四次回复后结束
ping -c 4 www.google.com
作用:
使用:
traceroute www.google.com
作用:
使用:
# 列出所有网络连接
netstat -a
# 查看所有端口是否被占用
netstat -tupn
netstat -apn
# 常用参数
-a:显示所有连接中的socket
-t:显示TCP的连接状态;
-u:显示UDP的连接状态;
-p:显示正在占用socket的进程pid;
-n:直接使用ip地址,而不通过域名服务器;
作用:
使用:
# 查看路由表
route -n
作用:
使用:
wget http://xxx.tar.gz
作用:
使用:
# 重新安装ssh
sudo apt install openssh-server -y
# 启动ssh服务
sudo service ssh start
# 查看ssh服务状态
sudo service ssh status
# 设置ssh开机自启动
sudo systemctl enable ssh
# 修改ssh配置
sudo vim /etc/ssh/sshd_config
# 打开防火墙的2000端口
sudo ufw allow 2000
# 重启ssh服务
sudo service ssh restart
# 重启防火墙
sudo ufw reload
# 客户端连接
ssh 用户名@xx.xx.xx.xx
作用:
使用:
# 启用ufw防火墙
sudo ufw enable
# 禁用ufw防火墙
sudo ufw disable
# 显示ufw状态,包括已启用或已禁用、所有允许和拒绝的规则
sudo ufw status numbered
# 允许SSH连接
sudo ufw allow ssh
# 允许Web服务器访问TCP端口80和443
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 要拒绝所有对TCP端口22的SSH连接
sudo ufw deny ssh
# 拒绝Web服务器访问TCP端口80和443
sudo ufw deny 80/tcp
sudo ufw deny 443/tcp
# 删除规则
sudo ufw delete allow 80
sudo ufw delete 2
作用:
使用:
telnet [远程主机ip] [远程主机端口]
wget
下载:wget http://xxx.tar.gz
tar
解压:tar -zxvf ./xxx.tar.gz -C /usr/local
./configure
make
编译源码:make
make install
将软件安装在用户空间:make install
apt install xxx
apt update xxx
apt remove xxx
apt purge xxx
# 打印所有已安装包
apt list --installed
# 打印所有已安装包版本信息
apt list --all-versions
yum install xxx
yum update xxx
yum remove xxx
yum erase xxx
# 打印所有可安装软件
yum list
yum clean all
yum makecache
作用:
参考:
cat /proc/[pid]/cmdline
ls /proc/[pid]/cmdline
ll /proc/[pid]/fd
cat /proc/[pid]/maps
cat /proc/[pid]/status
ll /proc/[pid]/task
cat /proc/cpuinfo
cat /proc/devices
cat /proc/meminfo
cat /proc/swaps
cat /proc/uptime
cat /proc/version
cat /proc/vmstat
作用:
ZONE_DMA
:0-16M
的物理地址,用于只能寻址24位地址线的硬件设备的I/O传输(DMA映射);ZONE_DMA32
:16M-4G
的物理地址,用于普通硬件设备的I/O传输(DMA映射);ZONE_NORMAL
:高于4G
的物理地址,通用内存,用于执行一般任务,可以使用整个物理地址空间,可用的内存数量相对较大;参考:
cat /proc/zoneinfo
# 一些参数说明如下:
nr_inactive_anon: 未被访问过的匿名(非共享)页面数量,处于不活动状态。
nr_active_anon: 被访问过的匿名页面数量,处于活跃状态。
nr_inactive_file: 未被访问过的文件(共享)页面数量,处于不活跃状态。
nr_active_file: 被访问过的文件页面数量,处于活跃状态。
nr_unevictable: 不可换出页面数量,通常是因为它们被锁定了。
nr_slab_reclaimable: 可回收的 slab 页面数量,即可通过内存回收机制释放的页面数量。
nr_slab_unreclaimable: 不可回收的 slab 页面数量,即无法通过内存回收机制释放的页面数量。
nr_isolated_anon: 处于隔离状态的匿名页面数量。
nr_isolated_file: 处于隔离状态的文件页面数量。
workingset_nodes: 已经被扫描的 workingset 节点数量。
workingset_refault_anon: 在 workingset 内存中重新访问过的匿名页面数量。
workingset_refault_file: 在 workingset 内存中重新访问过的文件页面数量。
workingset_activate_anon: 被添加到 workingset 内存中的匿名页面数量。
workingset_activate_file: 被添加到 workingset 内存中的文件页面数量。
workingset_restore_anon: 从 swap 空间恢复的匿名页面数量。
workingset_restore_file: 从 swap 空间恢复的文件页面数量。
workingset_nodereclaim: 已经被扫描的 workingset 节点的数量。
nr_anon_pages: 匿名页面数量。
nr_mapped: 映射的页面数量。
nr_file_pages: 文件页面数量。
nr_dirty: 脏页面数量,即需要写回到磁盘的页面数量。
nr_writeback: 正在写回到磁盘的脏页面数量。
nr_writeback_temp: 临时写回到磁盘的页面数量。
nr_shmem: 共享内存页面数量。
nr_shmem_hugepages: 已分配的共享内存巨页数量。
nr_shmem_pmdmapped: 已映射的共享内存页面数量。
nr_file_hugepages: 已分配的文件巨页数量。
nr_file_pmdmapped: 已映射的文件页面数量。
nr_anon_transparent_hugepages: 已分配的匿名透明巨页数量。
nr_vmscan_write: 因内存压力而写回到磁盘的页面数量。
nr_vmscan_immediate_reclaim: 立即回收的页面数量。
nr_dirtied: 自上次内存回收以来脏页面数量增加的数量。
nr_written: 自上次内存回收以来写入磁盘的页面数量。
nr_kernel_misc_reclaimable: 可回收的内核杂项页面数量。
nr_foll_pin_acquired: 追随锁定的页面数量。
nr_foll_pin_released: 追随锁定已释放的页面数量。
nr_kernel_stack: 内核栈使用的页面数量。
nr_page_table_pages: 页表页面数量。
nr_swapcached: 已缓存到 swap 空间的页面数量。
pages free: DMA 区中当前空闲页面数量。
min: DMA 区中可用于内存回收的最小页面数。
low: DMA 区中内存压力水平的下限,低于此值时系统开始考虑执行内存回收操作。
high: DMA 区中内存压力水平的上限。
spanned: DMA 区总大小。
present: DMA 区中当前存在的页面数量。
managed: DMA 区管理的页面数量。
cma: 预留给连续内存分配器 (CMA) 的页面数量。
protection: DMA 区的访问权限。
x
代替);cat /ect/passwd
作用:
使用:
?
或者/
可以在文档中快速查找字符串,并高亮显示;
n
切换下一个符合的字符串;N
切换上一个符合的字符串;man [命令名称]