文章目录
- ls指令
- pwd指令
- cd指令
- touch指令
- mkdir指令
- rmdir指令 && rm指令
- cp指令
- man指令
- echo指令
- 输出重定向
- 追加重定向
 
- cat指令
- 输入重定向
 
- mv指令
- which指令
- alias指令
- more && less指令
- head && tail指令
- 事件相关的指令
- date显示
- 时间戳
 
- cal指令
- find指令
- grep指令
- zip && unzip指令
- tar指令
- bc指令
- uname指令
ls指令
语法:ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:
| 选项 | 全称 | 含义 | 
|---|---|---|
| -a | –all | 显示所有文件,包括隐藏文件(以 .开头的文件) | 
| -A | –almost-all | 显示所有文件,除了 .和.. | 
| -i | –inode | 显示文件的 i结点的索引信息 | 
| -l | –long | 显示详细信息如权限、所有者、大小和修改时间 | 
| -h | –human-readable | 配合 -l选项,以人类可读的格式显示文件大小 | 
| -d | –directory | 只显示目录本身,而不是其内容。常与通配符结合使用 | 
| -F | –classify | 在每个文件名后附加一个字符以指示文件类型 | 
| -r | –reverse | 逆序显示文件 | 
| -t | –time | 根据修改时间排序,最新的文件排在最前面 | 
| -s | –size | 根据文件大小排序,最大的文件排在最前面 | 
| -R | –recursive | 递归地列出子目录中地所有文件和目录 | 
| -1 | 每行显示一个文件 | 
以ls -l 或ll列出文件时,一共有七列。
例如:
[root@VM-12-11-centos ~]# ls -ahl
total 28K
dr-xr-x—. 2 root root 135 Dec 16 02:34 .
dr-xr-xr-x. 17 root root 224 Dec 14 01:38 …
-rw-------. 1 root root 1.3K Dec 14 01:38 anaconda-ks.cfg
-rw-------. 1 root root 1.2K Dec 16 02:34 .bash_history
-rw-r–r–. 1 root root 18 Dec 28 2013 .bash_logout
-rw-r–r–. 1 root root 176 Dec 28 2013 .bash_profile
-rw-r–r–. 1 root root 176 Dec 28 2013 .bashrc
-rw-r–r–. 1 root root 100 Dec 28 2013 .cshrc
-rw-r–r–. 1 root root 129 Dec 28 2013 .tcshrc
从上面可以看到,每一行都有7列,分别是:
- 第一列共10位,第1位表示文档类型,d表示目录,-表示文件,l表示链接文件,d表示可随机存取的设备,如U盘等,c表示一次性读取设备,如鼠标、键盘等。后9位,依次对应三种身份所拥有的权限,身份顺序为:owner、group、others,权限顺序为:readable、writable、executable。如:-r-xr-x---的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可执行,其他人没有任何权限。
- 第二列表示链接数,表示有多少个文件链接到inode号码。
- 第三列表示拥有者
- 第四列表示所属群组
- 第五列表示文档容量大小,单位字节
- 第六列表示文档最后修改时间,注意不是文档的创建时间哦
- 第七列表示文档名称。以点(.)开头的是隐藏文档
pwd指令
语法:pwd
功能:显示用户当前所在的目录
cd指令
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个结点都是目录或文件。
所以它的叶子节点一点故事空目录或非目录文件,路上结点一定是非空目录节点。
 
语法:cd 目录名
功能:改变当前工作目录到指定目录下。
Example:
cd ..                        返回上级目录
cd /home/litao/linux/        绝对路径
cd ../day02/                 相对路径
cd ~                         进入用户家目录
cd -                         返回最近访问目录
root用户的家目录为:/root
CentOS中普通用户账号统一放在/home
所以普通用户的家目录为:/home/username
touch指令
语法:touch [选项] …文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。
常用选项:
| 选项 | 含义 | 
|---|---|
| -a | 只更改存取时间 | 
| -c | 不建立任何文档 | 
| -d | 使用指定的日期时间,而非现在的时间 | 
| -f | 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题 | 
| -m | 只更改变动时间 | 
| -r | 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同 | 
| -t | 使用指定的日期时间,而非现在的时间 | 
mkdir指令
语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为dirname的目录
常用选项:
-p/–parents:可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
rmdir指令 && rm指令
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p] [dirname]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:
-p:当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rm指令可以同时删除文件或目录
语法:rm [-f-i-r-v] [dirname/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项:
| 选项 | 含义 | 
|---|---|
| -f | 即使文件属性为只读(即写保护),亦直接删除 | 
| -i | 删除前逐一询问确认 | 
| -r | 删除目录及其下所有文件 | 
cp指令
语法:cp [选项] [源目录或源文件] [目标目录或目标文件]
功能:拷贝文件或目录
说明:cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
常用选项:
| 选项 | 全称 | 含义 | 
|---|---|---|
| -f | –force | 强行复制文件或目录, 不论目的文件或目录是否已经存在 | 
| -i | –interactive | 覆盖文件之前先询问用户 | 
| -r | –recursive | 将指定目录下的文件及子目录一并处理。 | 
拷贝目录时,使用-r选项
man指令
语法:man [选项] [命令]
功能:在Linux手册中查找命令
搜索完后,按q退出。
echo指令
语法:echo [字符串]
功能:将字符串在显示器显示。
注:字符串可以加""或''或什么都不加。
 
echo输出默认有换行,printf默认没有换行。
没有""的情况下printf会以空格作为结束标志。
如果加了"",则printf的使用方法与C++中相同,只是需要注意,不要加,。
 
输出重定向
在Linux下,一切皆文件。显示器和键盘也是文件,显示器是只能输出,不能输入的文件;键盘是只能输入,不能输出的文件。那么echo既然可以将字符串在显示器上打印,那么echo也可以将字符串输出到文件中。
语法:echo [字符串] > [文件]
这种更改输出文件的操作,就叫做输出重定向。
 
可以看到:1. 数据没有在显示器显示。 2. 数据呗写入到文件中。这就是输出重定向。
如果我们继续向文件中写入内容:

可以看到,原来文件中的内容被覆盖了。
所以输出重定向的操作分为两步:1. 清空文件 2. 写入新内容
所以,如果我们想清空一个文件中的内容,可以使用> [文件]。
如果我们不想清空文件的原内容,想直接在文件末尾追加新内容,那就要用到追加重定向。
追加重定向
语法: echo [字符串] >> [文件]
功能:在文件末尾追加新内容。
 
注:如果文件不存在,则会创建新文件。(输出重定向和追加重定向都是如此)
cat指令
语法:cat [选项] [文件]
功能:查看目标文件的内容
常用选项:
| 选项 | 含义 | 
|---|---|
| -b | 对非空输出行编号 | 
| -n | 对输出的所有行编号 | 
| -s | 不输出多行空行 | 
上面提到,Linux下,一切皆文件。
所以cat指令默认从输入设备(文件)读取。
输入cat指令后按回车即可;退出时需按Ctrl + C。

cat [文件] 的方式可以将文件中的内容输出。
输入重定向
cat < [文件] 被称为输入重定向,作用也是输出文件中的内容。
 
那么加不加<有区别吗?加与不加<是有区别的,这个以后再介绍。
mv指令
语法:mv [源文件] [目标文件]
功能:移动文件或目录,或重命名。
当目标文件或目标目录不存在时,会将源文件或目录移动,然后重命名为目标文件或目录。
当目标目录存在时,会将源文件或目录放在目标目录下,不发生重命名。
which指令
语法:which [指令]
功能:查看指令对应的路径
指令本质上是可执行程序(也是文件:可执行文件,只是安装在了系统的某种路径下)
执行指令时,现在系统中查找对应的指令。
CentOS下路径为:/usr/bin/
alias指令
语法:alias [字符串] = ‘指令’
功能:为指令添加重命名
删除重命名需要alias [字符串] = ''
more && less指令
语法:more/less [选项] [文件]
功能:显示文件的前n/后n行。
可以使用/...搜索...内容,按q退出。
less可以用光标上下移动,more不可以。
head && tail指令
语法:head/tail [-num] [文件]
head提取文件的前num行,默认num == 10,tail提取文件的后num行。
Example:提取test.txt中的第1001-1020行
- head -1020 test.txt > tmp.txt
 tail -20 tmp.txt
2. 管道
 head -1020 test.txt | tail -20
事件相关的指令
date显示
date指定格式显示时间:date + %Y:%m:%d
date用法:date [OPTION] [+FORMAT]
显示方面,使用者可以设定想要显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:
| 标记 | 含义 | 
|---|---|
| %H | 小时 | 
| %M | 分钟 | 
| %S | 秒 | 
| %X | 相当于 %H:%M:%S | 
| %d | 日 | 
| %m | 月 | 
| %Y | 年 | 
| %F | 相当于 %Y-%m-%d | 
时间戳
时间戳:从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒
输出时间戳:date +%s
从时间戳转换为时间:date -d@1717574162
cal指令
cal指令显示日历。
格式:cal [参数] [月份] [年份]
常用格式:
| 选项 | 含义 | 
|---|---|
| -3 | 显示系统前一个月,当前月和下一个月的日历 | 
| -j | 显示在当年的第几天 | 
| -y | 显示当前年份的日历 | 

find指令
语法:find [目录] -name [文件]
功能:在特定目录下搜索特定文件(可能访问磁盘)
which只在指令路径下搜索指令文件
whereis在系统指定路径下查找,既可以找到可执行程序,有可以找到手册、安装包、压缩包之类
grep指令
语法:grep [选项] [字符串] [文件]
功能:按行在文件中搜索字符串,将包含字符串的行打印出来
如果从目录中查找,加-r选项
常用选项:
| 选项 | 含义 | 
|---|---|
| -i | 忽略大小写 | 
| -n | 顺便输出行号 | 
| -v | 反向选择,将不包含字符串的行打印出来 | 
zip && unzip指令
语法:zip 压缩文件.zip 目录或文件
功能:将目录或文件压缩成zip格式
如果要压缩目录,加-r
tar指令
四个常用:
打包压缩:tar czf XXX
预览:tar tzf XXX.tgz
解压解包:tar xzf XXX.tgz
解压到指定路径:tar xzf XXX.tgz -C(大写) 目录
bc指令
运行计算器,可配合管道
uname指令
获取电脑和操作系统的相关信息。


















