目录
- 对于目录,列出目录内所有内容包括目录和文件;
- 对于文件,只列出指定文件;
选项
- -a、--all,不忽略以 . 开头的文件;
- -A、--almost-all,列出所有文件除 . 、.. 以外;
- --color=[WHEN],控制是否使用色彩分辨文件;WHEN 可以是"never"(默认)、"always"或"auto"其中之一;
- -d、--directory,只列出目标本身而不是目录内容;
- -F,--classify,添加文件类型提示符(*可执行的普通文件、/表示目录、@表示符合链接、|表示FIFOs、=表示套接字(sockets));
- -h、--human-readable,与-l一起以易于阅读的格式输出文件大小;
- -i、--inode,显示文件的inode号;
- -m,所有文件以逗号隔开,并填满整行行宽;
- -n,--numeric-uid-gid,类似-l,但列出UID和GID号;
- -g,类似-l,但不列出所有者;
- -G,--no-group,与-l一起以一个长列表的形式,不输出组名;
- -o,类似 -l,但不列出有关组的信息;
- -l,使用长格式列出文件详细信息;
- --author,列出文件作者;
- --block-size=SIZE,以指定单位打印;
- -p,--indicator-style=slash,对目录加上表示符号"/";
- -Q, --quote-name,将文件名称加上双引号;
- -r,--reverse,逆序排列;
- -R,--recursive,递归显示子目录;
- -S,以文件大小排序;
- -t,以修改实际排序;
- -u,同-lt 一起使用按照访问时间排序并显示,同-l一起使用显示访问时间并按文件名排序;
- -X,根据扩展名排序;
- -Z, --context,打印文件的安全上下文;
- -1,每行只列出一个文件;
- --help, 显示此帮助信息并退出;
- --version,显示版本信息并退出;
注:SIZE 可以是一个可选的整数,后面跟着以下单位中的一个: KB 1000,K 1024,MB 1000*1000,M 1024*1024,还有 G、T、P、E、Z、Y;
//列出当前所有目录
[wz@192 ~]$ ls -d */
- 打印用户当前目录;
- 切换工作目录;
[wz@192 ~]$ cd .. //切换到上一级目录
[wz@192 ~]$ cd ~ //切换到家目录
[wz@192 ~]$ cd - //返回到最近一次访问目录
- 将文件访问时间access和修改时间modify更改为当前时间;
- 无指定的文件将创建空文件;
选项
- -a,只更改访问时间;
- -m,只更改修改时间;
- --time=WORD,access、atime、use 都等于-a,modify、mtime 等于-m;
- -c, --no-create,不创建任何文件;
- -d、--date=字符串,使用指定时间,而非当前时间;
- -t STAMP,使用指定时间,而非当前时间;
注:stat,显示文件或文件系统的状态;
- 创建目录;
选项
- -m、--mode=模式,设置权限(类似chmod);
- -p,--parents,可递归创建多目录(目录不存在不报错);
- -v,--verbose,显示创建目录信息;
[wz@192 ~]$ mkdir -m a=rwx mydir
[wz@192 ~]$ mkdir -p mydir/{dir1,dir2}
- 删除空目录;
选项
- -p,--parents,可递归删除多目录(子目录删除后父目录变为空目录);
- -v,--verbose,显示删除目录信息;
- 删除文件或目录;
选项
- -f,--force,强制删除(忽略不存在的文件,且不提示);
- -i,删除前需确认;
- -I,大写i,删除超过三个文件或递归删除前需确认;
- -d,--dir,删除空目录;
- -r,-R,--recursive,递归删除目录及内容;
- -v,--verbose,显示删除信息步骤;
- 查看Linux手册页命令帮助;
选项
- -a,--all,查找所有匹配的手册页;
- -f, --whatis,等同于 whatis;
- -k, --apropos,等同于 apropos;
注:手册分8章
- 1—可程序程序或shell命令;
- 2—系统调用(内核提供的函数,可查看函数所需头文件);
- 3—库函数;
- 4—设备说明;
- 5—文件格式;
- 6—游戏备用;
- 7—附件;
- 8—系统管理命令,只能由root使用,如ifconfig;
[wz@192 ~]$ man -f mkdir
mkdir (1) - make directories
mkdir (1p) - make directories
mkdir (2) - create a directory
mkdir (3p) - make a directory
[wz@192 ~]$ man -k mkdir
gvfs-mkdir (1) - (未知的主题)
mkdir (1) - make directories
mkdir (1p) - make directories
mkdir (2) - create a directory
mkdir (3p) - make a directory
mkdirat (2) - create a directory relative to a directory file descri...
[wz@192 ~]$ ls /usr/share/man
ca en id man0p man2 man3x man5x man7x man9x pl sk zh_CN
cs es it man1 man2x man4 man6 man8 mann pt sv zh_TW
da fr ja man1p man3 man4x man6x man8x nl pt_BR tr
de hu ko man1x man3p man5 man7 man9 overrides ru uk
--help、help、man、info比较
- --help,外部命令的选项(不是独立工具);
- help,显示内建命令简要帮助信息;
- man,显示系统手册内容,大多数为命令的解释信息;
- info,基于菜单的超文本系统,关于Linux shell、工具、GNU项目开发程序的说明文档;
- 复制文件或目录;
- 如复制两个及以上文件或目录,且最后一个是已存在的目录,则将所有文件或目录复制到该目录中;若最后一个目录不存在,则报错;
选项
- -f,--force,强行复制,如目标文件无法(权限不管等)打开则移除并重试;
- -i,--interactive,覆盖前询问用户;
- -r,-R,--recursive,递归复制目录及其子内容;
- 重命名文件/目录,或移动到目标目录中;
选项
- -f,--force,覆盖不询问;
- -i,--interactive,覆盖前询问用户;
- -n,--no-clobber,不覆盖已存在文件;
- 查看目标文件的内容;
选项
- -b,--number-nonblank,对非空输出行编号;
- -n,--number,对输出所有行编号;
- -E,--show-ends,输出每行结束处添加“$”;
- -s,--squeeze-blank,不输出多个空行;
[wz@192 Desktop]$ cat > a << aa
> adfaf
> sdfdf
> aa //输入aa表示结束
[wz@192 Desktop]$ cat a
adfaf
sdfdf
//合并文件内容
[wz@192 Desktop]$ cat file1 file2 > file
- 过滤器,用于分页显示文本(只能向后查看);
选项
- -num,显示指定行数;
- +num,从指定行号开始显示;
- +/string,从匹配string位置开始显示;
- -s,多行压缩为一行显示;
- 与more类似,但可通过翻页键查看上下页内容;
选项
- -e,显示结束后,自动离开;
- -g,搜索时,只显示最后关键字;
- -i,忽略搜索时的大小写;
- -m,显示类似more的百分比;
- -N,显示每行行号;
- -s,显示连续空行为一行;
命令内操作
- b,向后翻一页;d,向后翻半页;
- y,向前翻一页;u,向前翻半页;
- 空格键,向前滚动一页;回车键,向前滚动一行;
- h,显示帮助界面;Q,退出;
- 显示文件开头内容(默认10行);
- 如指定多个文件,会给出文件名;
- 如不指定文件或“-”,则从标准输入读取数据;
选项
- -c,--bytes=[-]k,显示文件前k字节内容,如添加“-”则显示0-倒数第k字节内容;
- -n,--lines=[-]k,显示文件前k行内容,如添加“-”则显示0-倒数第k行内容;
- -q,--quiet,--silent,不显示文件名;
- -v,--verbose,总是显示文件名;
[wz@VM-4-4-centos ~]$ head -2 02/top.log
top - 23:51:02 up 54 days, 14:42, 2 users, load average: 0.09, 0.06, 0.06
Tasks: 92 total, 3 running, 89 sleeping, 0 stopped, 0 zombie
[wz@VM-4-4-centos ~]$ head -n 2 02/top.log
top - 23:51:02 up 54 days, 14:42, 2 users, load average: 0.09, 0.06, 0.06
Tasks: 92 total, 3 running, 89 sleeping, 0 stopped, 0 zombie
- 显示文件末尾内容(默认10行);
- 如指定多个文件,会给出文件名;
- 如不指定文件或“-”,则从标准输入读取数据;
选项
- -f,--follow[=name],随文件内容增长,输出后续添加的数据(起到实时监控的效果);
- -c,--bytes=k,显示文件尾k字节内容;
- -n,--lines=k,显示文件尾k行内容;
- -q,--quiet,--silent,不显示文件名;
- -v,--verbose,总是显示文件名;
//从第2行开始显示
[wz@VM-4-4-centos ~]$ tail -n +2 02/top.log
//只显示第2行
[wz@VM-4-4-centos ~]$ tail -n +2 02/top.log | head -1
- global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来;
- 一种强大的文本搜索工具,能使用正则表达式搜索文本,并把匹配的行打印出来;
选项
- -i,--ignore-case,不区分大小写;
- -v,--invert-match,显示不匹配的行;
- -m,--max-count=num,匹配的最大数;
- -b,--byte-offset,打印该行所在的块号码;
- -n,--line-number,打印匹配的行号;
- -H,--with-filename,打印文件名;
- -h,--no-filename,不打印文件名;
- -c,--count,打印匹配的行数;
- -w, --word-regexp,匹配整个单词;
- -x, --line-regexp,匹配整行;
- -R, -r, --recursive,递归匹配;
- -L, --files-without-match 匹配多个文件时,显示不匹配的文件名;
- -l, --files-with-matches 匹配多个文件时,显示匹配的文件名;
- -B, --before-context=NUM 打印匹配本身以及前面的几个行由NUM控制;
- -A, --after-context=NUM 打印匹配本身以及随后的几个行由NUM控制;
- -C, --context=NUM,打印匹配本身以及随后的几个行由NUM控制 ;
- -NUM,根-C的用法一样的;
grep '^\(root\|zhang\)' //匹配以root或zhang开头的行;
grep '^zhang[a-z]*$' //匹配以zhang开头,只含字母;
- 打印或设置系统日期和时间;
- date [option] [+format]
显示格式
- %Y,年份(0000~9999);
- %m,月份(01~12);
- %d,日(01~31);
- %F,相当于(%Y-%m-%d);
- %H,时(00~23);
- %M,分(00~59);
- %S,秒(00~61);
- %X,相当于(%H:%M:%S);
设置时间
- date -s,设置当前时间,只有root有权限,其他用户只可查看;
- date -s 20220220,设置日期,但时间会设置为空;
- date -s 01:01:01,设置时间,日期不影响;
//设置日期和时间
[root@192 ~]# date -s "20220220 01:01:01"
[root@192 ~]# date -s "2022-02-20 01:01:01"
[root@192 ~]# date -s "01:01:01 20220220"
[root@192 ~]# date -s "01:01:01 2022-02-20"
时间戳(从1970-1-1 UTC/GMT的午夜开始所经过的秒数、不考虑润秒);
- 时间->时间戳,date +%s
- 时间戳->时间,date -d@1508749502
[root@192 ~]# date +%s
1645290364
[root@192 ~]# date -d@1645290364
Sun Feb 20 01:06:04 CST 2022
- 显示公历日历;
- cal [options] [[[day] month] year]
选项
- -1,查看当前月份日历;
- -3,查看前月、当月、下月三个月日历;
- -y,查看12个月日历;
- -m,以星期一开头;
- -s,以星期日开头;
- 查找目录和文件;
- find path -options
选项
- -name,按照文件名查找;
- -perm,按照文件权限查找;
- -user,按照属主查找;
- -group,按照属组查找;
- -type,按照类型查找;
-
b - 块设备文件。 d - 目录。 c - 字符设备文件。 p - 管道文件。 l - 符号链接文件。 f - 普通文件。 s - socket文件
-
- -size n[cwbkMG],按文件大小查找;
-
c: 表示字节数 w: 字 (2字节) b: 代表 512 位元组的区块(如果用户没有指定后缀,则默认为 b) k: 表示 kilo bytes (1024字节) M: 兆字节(1048576字节) G: 千兆字节 (1073741824字节)
-
- -depth,先查找当前目录,在查找其子目录;
- -maxdepth,查找最大目录层数;
- -delete,删除;
//按照名字查找
[wz@192 ~]$ find . -name “file*”
//按照权限查找
[wz@192 ~]$ find . -perm 755
//按照文件类型查找
[wz@192 ~]$ find . -name aa -type f
//查找文件大小大于10M
[wz@192 ~]$ find . -size +10M
//查找以null开头的文件,在执行ls -l
[wz@192 ~]find ./ -name "null_*" -exec ls -l {} \;
zip
- 压缩目录或文件;
- 是应用广泛的跨平台压缩工具,后缀.zip;
选项
- -c,加注释;
- -m,删除源文件;
- -r,处理目录及其子目录;
- -x,排除文件列表中其他文件;
- -v,显示处理信息;
//压缩文件,并显示处理信息,及删除源文件
[wz@192 ~]$ zip -vm Desktop/file.zip aa ab
adding: aa (in=0) (out=0) (stored 0%)
adding: ab/ (in=0) (out=0) (stored 0%)
total bytes=0, compressed=0 -> 0% savings
zip diagnostic: deleting file aa
deleting directory ab (if empty)
//压缩目标及其内容
[wz@192 Desktop]$ zip -r file.zip a
updating: a/ (stored 0%)
adding: a/b/ (stored 0%)
adding: a/b/c/ (stored 0%)
adding: a/a (stored 0%)
//压缩时排除文件a
[wz@192 Desktop]$ zip file.zip ./* -x ./a
adding: b (stored 0%)
adding: c (stored 0%)
unzip
- 解压.zip文件;
选项
- -j,不重建目录结构,把所有文件解压到同一目录下;
- -n,不覆盖原有文件;
- -o,不询问用户,直接覆盖原文件;
- -Z,查看压缩信息,但不解压,相当于zipinfo;
- -d 目录,解压到指定目录;
- -x 文件,排除压缩文件中指定文件;
- 解/压缩文件,本身不具备压缩功能,是调用压缩功能实现的;
选项
- -z,--gzip,--gunzip,--unzip,通过gzip过滤归档;
- -j,--bzip2,通过bzip2过滤归档;
- -c,--create,创建新归档;
- -t,--list,查看归档内容;
- -x,--extract,--get,解开压缩文件;
- -v,--verbose,详细列出处理的文件;
- -f,--file=ARCHIVE,使用归档文件或ARCHIVE设备;
- -r,--append,追加文件至归档末尾;
- -u,--update,更新归档文件;
- -p, --preserve-permissions, --same-permissions,解压文件并保留权限信息(默认只为超级用户服务);
- -N, --newer=DATE-OR-FILE, --after-date=DATE-OR-FILE,只保存比 DATE-OR-FILE 更新的文件;
- -C,--directory=目录,解压到指定目录;
//归档压缩
[wz@192 Desktop]$ tar -cvf file.tar file.log //仅归档打包
[wz@192 Desktop]$ tar -zcvf file.tar.gz file.log //打包并以gzip压缩
[wz@192 Desktop]$ tar -jcvf file.tar.gz file.log //打包并以bzip2压缩
[wz@192 Desktop]$ ll -h
-rwxrwxrwx. 1 root root 5.1M Feb 20 12:32 file.log
-rw-rw-r--. 1 wz wz 167K Feb 20 12:36 file.tar.gz
-rw-rw-r--. 1 wz wz 103K Feb 20 12:36 file.tar.bz2
//打包file,但排除file/dir目录
[wz@192 Desktop]$ tar -cvf file.tar file --exclude=file/dir
//查阅压缩文件内容
[wz@192 Desktop]$ tar -ztvf file.tar.gz
-rwxrwxrwx root/root 5242923 2022-02-20 12:32 file.log
[wz@192 Desktop]$ tar -jtvf file.tar.bz2
-rwxrwxrwx root/root 5242923 2022-02-20 12:32 file.log
//解压
[wz@192 Desktop]$ tar -zxvf file.tar.gz //解压到当前目录
[wz@192 Desktop]$ tar -zxvf file.tar.gz -C ./dir //解压到指定目录
[wz@192 Desktop]$ tar -xvf file.tar.gz file1.log //只解压压缩文件内的file1.log
//将/etc打包后,直接解压到当前目录
[wz@192 Desktop]$ tar -cvf - /etc | tar -xvf -
- 简单计算器,可进行进制转换;
选项
- -i, --interactive,强制交互模式;
- -l,--mathlib,加载强大的数学库;
- -q,--quiet,不输出介绍信息;
[wz@192 Desktop]$ bc -q
2*5
10
quit
[wz@192 Desktop]$ echo 2*5 | bc
10
[wz@192 Desktop]$ echo 'obase=2;12' | bc //进制转换
1100
- 获取电脑和操作系统的相关信息,默认选项-s;
选项
- -a,all,列出所有信息;
- -s,--kernel-name,输出内核名称;
- -n,--nodename,输出网络节点上的主机名;
- -r,--kernel-release,输出内核发行号;
- -v,--kernel-version,输出内核版本;
- -m,--machine,输出主机硬件架构名称;
- -p,--processor,输出处理器类型;
- -i,--hardware-platform,输出硬件平台;
- -o,--operating-system,输出操作系统名称;
[wz@192 Desktop]$ uname -a
Linux 192.168.37.128 3.10.0-1160.el7.x86_64
#1 SMP Mon Oct 19 16:18:59 UTC 2020
x86_64 x86_64 x86_64
GNU/Linux
- 关机
选项
- -h,将系统服务停掉后,立即关机;
- -r,将系统服务停掉后,重启;
- -t sec,过指定秒数后关机;
其他命令(扩展)
- 安装和登录命令
- login、shutdown、halt、reboot、install、mount、umount、chsh,exit,last;
- 文件处理命令
- file,mkdir,grep,dd,find,mv,ls,diff,cat,ln;
- 系统管理命令
- df,top,free,quota,at,lp,adduser,groupadd,kill,crontab;
- 网络系统命令
- ifconfig,ip,ping,netstat,telnet,ftp,route,rlogin,rcp,finger,mail,nslookup;
- 系统安全命令
- passwd,su,umask,chgrp,chmod,chown,chatt,sudo ps,who;
- 其他命令
- tar,unzip,gunzip,unarj,mtools,man,unendcode,uudecode;
重要热键
- [tab]按键,命令补齐和档案补齐功能;
- ctrl+c,当前程序强制停掉;
- ctrl+d,通常表示在键盘输入结束EOF,或用于取代exit;