Linux 常用命令 持续更新
-
【ls】 命令:用于显示目录内容。
[wfsb@yes zzz]$ ls -l 【列表显示】
total 44
-rwxrwxrwx 1 root root 0 Feb 18 09:33 a.sh
-rw-rw-r-- 1 wfsb wfsb 2 Nov 19 09:36 a.txt
[wfsb@yes zzz]$ ls -lr 【按文件名倒序显示】
total 44
drwxr-xr-x 2 root root 6 Feb 18 09:33 zzz
drwxr-xr-x 2 root root 6 Feb 18 09:41 www
[wfsb@yes zzz]$ ls -lt 【按文件时间倒序显示】
total 44
drwxr-xr-x 2 root root 6 Feb 18 09:41 www
drwxr-xr-x 2 root root 6 Feb 18 09:33 zzz
[wfsb@yes zzz]$ ls -lS 【按文件大小排序显示】
total 44
drwxr-xr-x 2 root root 6 Feb 18 09:41 www
drwxr-xr-x 2 root root 6 Feb 18 09:33 zzz
[wfsb@yes zzz]$ ls -lh 【按文件大小以人类较易读的方式(例如 GB, KB 等等)列出来】
total 44K
-rwxrwxrwx 1 root root 1G Feb 18 09:33 a.sh
-rw-rw-r-- 1 wfsb wfsb 2MB Nov 19 09:36 a.txt
[wfsb@yes zzz]$ ls -rlth --full-time 【显示文件详细日期时间】
total 44K
-rw-rw-r-- 1 wfsb wfsb 2 2021-09-07 10:34:17.304856086 +0800 file_6.txt
-
【cp】 命令:cp(copy)命令用于复制文件。
cp [-adfilprsu] 源文件(source) 目标文件(destination)
cp test /tmp 将test文件复制到目录/tmp下
cp -p test /tmp 连同test文件的属性(权限、用户、时间)一起复制到/tmp目录下,而非使用默认属性
cp -p a.txt b.txt
[wfsb@yes zzz]$ ll
-rw-rw-r-- 1 wfsb wfsb 2 Nov 19 09:36 a.txt
-rw-rw-r-- 1 wfsb wfsb 2 Nov 19 09:36 b.txt
cp -r zzz/ www/ 【-r 递归复制目录】
[wfsb@yes zzz]$ tree www
www
└── zzz
└── a.ttxt
1 directory, 1 file
cp -u test /tmp/test 【-u是在目标文件和源文件有差异时,才会复制。】
cp www/file_2.txt .【将文件复制到当前目录】
-
【rm】 命令:rm(remove)用于删除文件或目录。
rm a.sh 删除a.sh文件。
rm -f a.txt 强制删除a.txt文件。
rm -r zzz/ 递归删除zzz目录。
rm -rf www/ 强制递归删除www目录。
-
【mv】 命令:mv(move)用于移动文件与目录,或更名。
mv a.txt b.txt 将a.txt 更名为b.txt。
mv file_1.txt file_2.txt www/ 将文件file_1.txt和file_2.txt移动到目录www/中。
-
【cd】 命令:cd是Change Directory的缩写,用于切换目录。
cd 切换到自己的主文件夹(进入用户在该系统的home目录)
cd ~ 切换到自己的主文件夹(进入用户在该系统的home目录)
cd ~hehe 切换到hehe的主文件夹
cd .. 切换到当前目录的上一层目录
cd - 切换到上一次使用的目录
cd /var/spool/mail 切换到/var/spool/mail(绝对路径写法)
cd ../spool 切换到上一层spool(相对路径写法)
-
【pwd】 命令:pwd是Print Working Directory的缩写,用于显示目前所在目录。
pwd [-P]
选项与参数:
-L:显示当前目录,有链接文件时,直接显示链接文件的目录,(不加参数时默认此方式)
-P:显示出实际的目录,而非使用软链接(link)的目录。
[wfsb@yes ~]$ ll tt
lrwxrwxrwx 1 root root 08 Dec 11 23:46 tt -> /home/wfsb/test
[wfsb@yes ~]$ cd tt
[wfsb@yes tt]$ pwd
/home/wfsb/tt
[wfsb@yes tt]$ pwd -P
/home/wfsb/test
[wfsb@yes tt]$ pwd -L
/home/wfsb/tt
-
【mkdir】 命令:mkdir是make directory的缩写,用于创建目录。
mkdir test 创建一个名为test的目录。
mkdir test2 test3 同时创建两个目录。
mkdir -p test1/test2/test3/ 同时创建多层目录。
mkdir -m 777 test4 创建权限为777的目录。
-
【rmdir】 命令:rmdir是remove directory的缩写,用于删除“空”目录。
rmdir test 删除test空目录。
rmdir -p z4/z5/ 删除多层空目录。
-
【tree】命令:用于显示树状图目录的内容。
-a 显示所有文件和目录。
[wfsb@yes ~]$ tree zzz -a
zzz
├── a.txt
├── file_10.txt
└── file_9.txt
0 directories, 11 files
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
[wfsb@yes ~]$ tree zzz -A
zzz
tqq a.txt
tqq file_10.txt
mqq file_9.txt
0 directories, 11 files
-C 在文件和目录清单加上色彩,便于区分各种类型。
[wfsb@yes ~]$ tree zzz -C
zzz
├── a.txt
├── file_10.txt
└── file_9.txt
0 directories, 11 files
-d 显示目录名称而非内容。
[wfsb@yes ~]$ tree zzz -d
zzz
0 directories
-D 列出文件或目录的更改时间。
[wfsb@yes ~]$ tree zzz -D
zzz
├── [Nov 11 9:36] a.txt
├── [Sep 2 10:34] file_10.txt
└── [Sep 2 10:34] file_9.txt
0 directories, 11 files
-f 在每个文件或目录之前,显示完整的相对路径名称。
[wfsb@yes ~]$ tree zzz -f
zzz
├── zzz/a.txt
├── zzz/file_10.txt
└── zzz/file_9.txt
0 directories, 11 files
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
[wfsb@yes ~]$ tree zzz -F
zzz
├── a.sh*
├── a.txt
├── file_10.txt
├── file_9.txt
└── zzz/
1 directory, 12 files
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
[wfsb@yes ~]$ tree zzz -g
zzz
├── [root ] a.sh
├── [wfsb] a.txt
├── [wfsb] file_10.txt
├── [wfsb] file_9.txt
└── [root ] zzz
1 directory, 12 files
-i 不以阶梯状列出文件或目录名称。
[wfsb@yes ~]$ tree zzz -i
zzz
a.sh
a.txt
file_10.txt
file_9.txt
zzz
1 directory, 12 files
-L level 限制目录显示层级
[wfsb@yes ~]$ tree zzz -L 1
zzz
├── a.sh
├── a.txt
├── file_10.txt
├── file_9.txt
└── zzz
1 directory, 12 files
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
[wfsb@yes ~]$ tree zzz -l
zzz
├── a.sh
├── a.txt
├── file_10.txt
├── file_9.txt
└── zzz
1 directory, 12 files
-n 不在文件和目录清单加上色彩。
[wfsb@yes ~]$ tree zzz -n
zzz
├── a.sh
├── a.txt
├── file_10.txt
├── file_9.txt
└── zzz
1 directory, 12 files
-N 直接列出文件和目录名称,包括控制字符。
[wfsb@yes ~]$ tree zzz -N
zzz
├── a.sh
├── a.txt
├── file_10.txt
├── file_9.txt
└── zzz
1 directory, 12 files
-p 列出权限标示。
[wfsb@yes ~]$ tree zzz -p
zzz
├── [-rwxrwxrwx] a.sh
├── [-rw-rw-r--] a.txt
├── [-rw-rw-r--] file_10.txt
├── [-rw-rw-r--] file_9.txt
└── [drwxr-xr-x] zzz
1 directory, 12 files
-P<范本样式> 只显示符合范本样式的文件或目录名称。
[wfsb@yes zzz]$ tree -P z*
.
└── zzz
1 directory, 0 files
-q 用"?"号取代控制字符,列出文件和目录名称。
[wfsb@yes zzz]$ tree -q ww?
www
0 directories, 0 files
-s 列出文件或目录大小。
[wfsb@yes zzz]$ tree -s
.
├── [ 0] a.sh
├── [ 2] a.txt
├── [ 3] file_10.txt
├── [ 2] file_9.txt
├── [ 6] www
└── [ 6] zzz
2 directories, 12 files
-t 用文件和目录的更改时间排序。
[wfsb@yes zzz]$ tree -t
.
├── www
├── zzz
├── a.sh
├── a.txt
├── file_10.txt
└── file_9.txt
2 directories, 12 files
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
[wfsb@yes zzz]$ tree -u
.
├── [root ] a.sh
├── [wfsb] a.txt
├── [wfsb] file_10.txt
├── [wfsb] file_9.txt
├── [root ] www
└── [root ] zzz
2 directories, 12 files
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。
[wfsb@yes zzz]$ tree -x
.
├── a.sh
├── a.txt
├── file_10.txt
├── file_9.txt
├── www
└── zzz
-
【crontab】 命令:crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
* * * * *
- - - - -
| | | | |
| | | | +----- 星期几 (0 - 7) (Sunday=0 or 7)
| | | +---------- 月份 (1 - 12)
| | +--------------- 几号 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
crontab -l; 查看当前定时任务。
crontab -e; 编辑定时任务。
crontab例子:
# 每天1点删除30天前创建的文件
0 1 * * * sudo find /aaa/share/bbb/ccc_bak -maxdepth 1 -type d -mtime +29 -exec rm -rf {} \;
# 每两分钟执行一次脚本
*/2 * * * * /bin/bash /root/aaa.sh
# 每周六删除目录 /share 30天前创建的文件
0 0 * * 6 sudo find /share -type f -mtime +29 -exec rm -f {} \;
# 8点、11点、14点、17点 切换hehe用户执行脚本
0 8,11,14,17 * * * su hehe -s /bin/bash /usr/local/ccc.sh
# 每天的22:30 执行test.sh
30 22 * * * /bin/bash /usr/local/test.sh
# 每月1、10、15日的4 : 15执行test.sh
15 4 1,10,15 * * /bin/bash /usr/local/test.sh
# 每周六、周日的1 : 10执行test.sh
10 1 * * 6,0 /bin/bash /usr/local/test.sh
# 每天18 : 00至22 : 00之间每隔30分钟执行test.sh
0,30 18-22 * * * /bin/bash /usr/local/test.sh
# 表示每星期六的23点执行test.sh
0 23 * * 6 /bin/bash /usr/local/test.sh
# 每一小时执行test.sh
0 */1 * * * /bin/bash /usr/local/test.sh
# 晚上11点到早上7点之间,每隔一小时执行test.sh
0 23-7/1 * * * /bin/bash /usr/local/test.sh
# 每月的5号与每周一到周三的12点执行test.sh
0 12 5 * mon-wed /bin/bash /usr/local/test.sh
# 一月一号的10点执行test.sh
0 10 1 jan * /bin/bash /usr/local/test.sh