文章目录
1.ls命令
ls,全称 list ,其功能是列出指定目录下的内容及其相关属性信息。 默认状态下(即 ls 不加任何选项和参数),ls命令会列出当前目录的内容。而带上参数后,我们可以用 ls 来查看更细致的内容。
格式:ls [选项]… [文件或目录]… (…的意思是这些选项和参数可以是多个)
我们可以使用 ls --help 来查看 ls 命令的所有使用方式,这里常用的有:
-
-l 已长格式显示文件和目录列表 ll=ls -l
-
-a 显示全部包括隐藏文件
-
-A 显示全部文件或隐藏文件,但不包括 . 和…
-
-d 只显示当前目录
-
-h 友好显示文件大小(一般会和 -l 一起使用,即 ls -lh,或 ll -h)
-
-R 递归显示该目录及该目录的子目录下的所有内容
-
–color 显示颜色(–color=[WHEN],WHEN可以是never、auto、always(默认))
-
-S 按从大到小排序
参考之前 ll 的命令,可以看出passwd最大、111.txt第二,rh最小
颜色表示的文件类型:
- 黑色:数据文件 TXT
- 绿色:可执行文件
- 黄色:块设备文件
- 红色:压缩包
- 蓝色:文件夹
- 天蓝色:连接文件(快捷方式)
2.通配符
符号 | 功能 |
---|---|
? | 匹配一个字符,如:f?.txt |
* | 匹配所有非隐藏的字符无论多长多短,但不匹配 “.” 开头的文件,即隐藏文件 |
{1…10} | 1到10 |
{a…z} | a到z |
{A…Z} | A到Z |
[123] | 任取其中之一(没有也行) |
[a-z] | 注意范围 |
0-9 | 匹配0-9任意一个 |
“\” | 转义符,表示被转义字符原来的意思 |
[[:lower:]] | 小写字母表示 a-z |
[[:upper:]] | 大写字母表示 a-z |
[^zhou] | 匹配列表中所有字符以外的字符,这里为除zhou之外的所有字符 |
[[:digit:]] | 任意数字,相当于0-9 |
实验:
- 利用通配符{1…10}快速创建10个文件
- 利用通配符[123]取其中之一显示
- 利用通配符{a…z}快速创建文件
- 利用通配符{A…Z}快速创建文件
- 利用通配符[a-d]来显示文件
- 利用通配符[2-5]来显示文件
- [[:upper:]]匹配大写字母
- [[:lower:]]匹配小写字母
- ?匹配一个字符
- *(星号)匹配的是所有非隐藏文件(.开头的文件都是隐藏文件)
我们通过 ls -a 可以看到 .123.exe 文件
但是,使用 * 号,就不会匹配到 .123.exe 文件
3.alias命令
alias,中文意思为别名,在Linux中可以使用alias命令来为比较繁琐的命令进行简化,就比如,我需要修改网卡信息,如果不使用alias命令,你需要在终端上敲 vim /etc/sysconfig/network-scripts/ifcfg-ens33,这对于初学者来说,算是比较长的命令了,不好记住,这时我们可以用alias命令对上面这条命令进行简化,就比如,我将修改网卡信息的命令使用mywangka,那我们可以这样做:
先定义:alias mywangka=‘ vim /etc/sysconfig/network-scripts/ifcfg-ens33’
执行:mywangka 就可以了
(注:=前后不要有空格,不然会报错;alias不是永久生效的,当你将终端关闭后再打开,或者重启系统后,都会失效,要想永久生效,就需要修改系统的配置文件,这个我们以后会具体讲述)
当定义了一个别名的时候,各种类型的命令优先级就会发生变化,其优先级依次为:别名 > 内部命令 > Hash > 外部命令
4.du命令
du,全称 disk usage,用于查看磁盘的占用情况
命令格式:du [选项] [文件或目录]
选项 | 说明 |
---|---|
du(不加任何选项) | 统计所有的文件及目录大小,但是只显示目录,不显示文件 |
-a | 统计所有的东西,包括目录和文件 |
-h | 以人性化的方式显示统计结果(默认以KB计数,不显示单位) |
-s | 只统计所占空间的总体大小(只显示整体,不会展开显示) |
–max-depth=n | 表示查询的最大层数(n)(当前目录为0层,下级目录为1层,以此类推);此命令也可以使用 -d n(n为层数) |
–exclude=n | 统计除n以外的所有文件及目录 |
(注:-a 和 -s 不能同时使用,因为你不可能即只要整体,又要显示所有文件及目录,二者是冲突的;除了a和s不能组合使用,其他的选项皆可组合使用,且du命令的选项之间没有先后之分,比如既可 du -sh,也可 du -hs,也可 du -s -h,但是du --exclude=n 后边想要-h的话,就必须要有-,因为一个选项是 --(双杠),一个是 -(单杠))
du
可以和 du -a 做个比较
du -a
du -s
du -s
du --maxdepth=1(du -d 1)
(注:./代表的是当前目录,它的层级是0;如果层数大于等于2,它显示的是2层之前的所有,包括 0,1,同样的,如果是3,则包含 0,1,2,以此类推,所以我们不能使用此命令来查看单单第n层的信息)
du --exclude=brltty(此命令意思为查看除brltty文件夹之外的所有文件大小)
这是du --exclude=brltty -h的内容:
这是du -h的内容:
5.mkdir命令
mkdir,全称 make directory ,创建文件夹
格式:mkdir 文件夹名称,比如 mkdir 666,就是创建一个名为666的文件夹
mkdir命令在实际的生产环境中常用的选项只有 -p 和 -v
mkdir -p 表示递归创建,比如mkdir -p aa/bb/cc ,就是在创建一个aa的文件夹,再在aa里创建bb,再在bb里创建cc,可以使用tree命令来查看递归关系。
mkdir -v 表示会输出你新建文件夹的信息,比如 mkdir -v 123 ,当敲下回车键时,系统会提示你创建了一个名为123的文件夹,如果想要确定mkdir命令是否生效,可以使用 -v
6.touch命令
touch命令,在Linux中是用来创建文件的命令之一,它只作用于文件。
格式:touch [文件名],比如 touch 123.txt,touch也支持批量创建,比如 touch 1.txt 2.txt 3.txt
7.ln命令
ln,全称 link ,链接 ,链接分为两种,一为软连接,一为硬链接
软连接: ln -s [源文件或目录] [链接文件或目录位置](目录必须是存在的,而文件必须是不存在的,我们不能链接到已有文件上)(我个人认为最好使用绝对路径)
ln -s /opt/123.txt /mnt/1.txt
我们可以先在123.txt中写几个数据,再将123.txt链接到mnt目录下的1.txt上去(1.txt之前是不存在的)
如果想链接到已有的文件,就会报错
硬链接:ln [源文件或目录] [链接文件或目录位置](使用方法和软连接一样)
软硬连接的区别:
对比项 | 软链接 | 硬链接 |
---|---|---|
本质 | 是同一个文件 | 不是同一个文件 |
inode号 | 相同 | 不同 |
连接数 | 创建新的硬链接,连接数会增加,删除会减少 | 删除新建不会改变 |
文件夹 | 不支持 | 支持 |
删除源文件 | 只是连接数减一,不影响访问 | 无法访问链接文件 |
文件类型 | 和源文件相同 | 链接文件,和源文件无关 |
文件大小 | 和源文件相同 | 源文件的路径的长度 |
解释:
1. 硬链接:
- 新建的硬链接是已经存在的文件的一个别名,所以本质上来说,它们是同一个文件(就比如你有大名、乳名、外号,这三者都代表你自己);
- 所有的硬链接都是共享同一个inode号 (文件在文件系统上的唯一标识),当原文件删除时,新建的文件仍然可以使用(就是说长大后,没人再会喊你的乳名(等于被删了),但大名和外号依然代表你),除非链接数为0(删完所有硬链接,包括源文件),这个文件才会彻底被删掉(就是说一切能代表你的名字都没了,你才真正的不存在了);
- 硬链接不支持链接文件夹,就算你想操作,系统也不会执行;
- 就文件类型而言,所有的硬链接都是指向同一个文件的inode号,所以,硬链接的文件类型肯定是和源文件相同的(还是那句话,不论喊你的大名、乳名还是外号,都是喊你),当然,文件大小也肯定和源文件相同
2.软链接:
- 本质上来说,软链接相当于windows系统中的快捷方式;
- 每创建一个软链接,它的inode号都是不同的(包括源文件);
- 当新增或者删除软链接时,它的链接数并不会改变(个人感觉可能永远是1,若不对,望留言指正);
- 软链接是支持对文件夹进行操作的;
- 如果删除了源文件,软链接就失效了,因为软链接跳转的源文件不存在了(还是可以参考windows系统,源文件没了,快捷方式自然就没用了);
- 至于类型,软链接是一个链接文件,和源文件是无关,它只负责跳转到源文件;
- 文件大小则是源文件路径的长度;