文件系统和目录简介
Linux里面一切皆文件,linux只有一个根目录/,所有的文件或者说资源都存储在根目录/为源头的树形目录结构中。任何硬件设备也都是文件,它们各有自己的一套文件目录结构。
Linux 中的目录,和 Windows 系统中的文件夹类似,不同之处在于,Linux 系统中的目录也被当做文件看待。
文件的扩展名对 Linux 操作系统没有特殊的含义,换句话说,Linux 系统并不以文件的扩展名开分区文件类型。
绝对路径和相对路径
绝对路径一定是由根目录 / 开始写起。而相对目录,是相对当前工作目录为参照物的路径。相对路径不是从根目录 / 开始写起,而是从当前所在的工作目录开始写起。使用相对路径表明某文件的存储位置时,经常会用到 2 个特殊目录,即当前目录(用 . 表示)和其父目录(用 … 表示),其上上级目录通过用cd 加绝对路径进入即可。
常见子目录 | 用途 |
---|---|
/root | 系统管理员root的宿主目录 |
/home | 普通用户的宿主目录 |
/boot | 系统内核、启动文件 |
/dev | 设备文件 |
/etc | 配置文件 |
/bin | 所有用户可执行的命令 |
/sbin | 管理员可执行的管理命令 |
/usr | 应用程序 |
/var | 日志文件 |
/lib | 存放系统程序的动态连接共享库文件(类似于windows里的DLL文件) |
/media | 可卸载的媒介挂载点,例如U盘,光驱等 |
/proc | 存放映射系统信息的文件 |
/mnt | 临时挂载存储设备的目录 |
/opt | 第三方应用程序安装所存放的目录 |
/tmp | 存放系统的临时文件 |
/srv | 服务目录,存放本地服务的相关文件 |
1. cd命令
cd命令进入目录 | 作用 |
---|---|
cd ~ | 代表当前登录用户的主目录 |
cd ~ 用户名 | 表示切换至指定用户的主目录 |
cd- | 代表上次所在目录 |
cd. | 代表当前目录 |
cd . . | 代表上级目录 |
2. pwd(Print Working Directory)命令打印路径
功能是显示当用户当前所处的目录。
3. ls和alias命令
选项 | 作用 |
---|---|
-a | 显示全部文件,包括隐藏文件(以.开头的文件) |
-A | 显示全部的文件,连同隐藏文件,但不包括.与. .这两个目录 |
-d | 仅列出目录本身,不列出目录内的文件数据 |
-f | ls默认会以文件名排序,使用-f选项会直接列出结果,而不进行排序 |
-F | 在文件或者目录名后加上文件类型的指示符号,如,*代表可运行文件,/代表目录,=代表socket文件, |
-h | 以人性化的方式显示文件或目录大小,1KB、1MB、1GB等 |
-i | 显示inode节点信息 |
-l | 除文件名称外,将文件型态、权限、拥有者、文件大小等资讯详细列出 |
-n | 以UID和GID分别代替文件用户名和群组名显示出来。 |
-r | 将排序结果反向输出 |
-R | 连同子目录内容一起列出来,等于将该目录下的所有文件都显示出来 |
-S | 以文件容量的大小排序,而不是以文件名排序 |
-t | 以时间排序,而不是以文件名排序 |
linux中alias定义别名,格式:alias 别名=‘原命令 -选项/参数’
注意:
- 在定义别名时,等号两边不能有空格,否则shell不能决定您需要做什么。
- 仅在命令中包含空格或特殊字符时才需要引号。
- 如果键入不带任何参数的alias 命令,将显示所有已定义的别名。
alias myhome=‘cd /home’; 此alias命令只作用于当次登入的操作。
如果想每次登入都能使用这些命令的别名,则可以把相应的alias命令存放在 ~/.bashrc 文件中。打开~/.bashrc文件,输入要设置的alias命令,保存,然后运行。
注意:删除别名用unalias aaa
4. mkdir(make directories)命令
此命令用于创建新的目录,所有用户都可以使用。
- -m 选项用于手动创建目录时同时配置目录的权限,而不再使用默认权限。
- -p 选项递归创建所有目录,以创建 /home/aaa/bbb为例,在默认情况下,你需要
一层一层的创建各个目录,而使用 -p 选项,则系统会自动帮你创建 /home/aaa、/home/aaa/bbb
5. rmdir(remove empty directories)命令
此命令与mkdir命令相反,用于删除空目录。
- -p 选项用于递归删除空目录,注意是空目录,鸡肋命令,一般都用rm
6. touch命令
此命令一般用来创建新文件。注意touch 命令不光可以用来创建文件(当指定操作文件不存在时,该命令会在当前位置建立一个空文件),此命令更重要的功能是修改文件的时间参数(但当文件存在时,会修改此文件的时间参数)。注意touch 1.txt 2.txt 3.txt,可以在同一个路径下同时创建多个文件。
比如touch {1…5}.txt可以同一个路径下同时创建1-5.txt五个文件。
7. cp命令
cp 命令既可以复制文件,也可以复制目录。同时cp还有文件重命名的作用,比如cp ./a.txt …/b.txt
8. rm命令
此命令它可以永久性地删除文件系统中指定的文件或目录。rm -rf / 慎用。-f:强制删除(force),和 -i 选项相反,使用 -f,系统将不再询问,而是直接删除目标文件或目录。
• -i:和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录。
• -r:递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件。
9. mv(move) 命令
mv可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名。注意mv快的原因本质就是重命名,其实没有移动文件。当然mv本省也可以实现文件重命名的角色
选项 | 作用 |
---|---|
-f | 强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖 |
-i | 交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项) |
-n | 如果目标文件已经存在,则不会覆盖移动,而且不询问用户 |
-v | 显示文件或目录的移动过程 |
-u | 若目标文件已经存在,但两者相比,源文件更新,则会对目标文件进行升级 |
10. 文件查看cat/more/less/head/tail
cat命令:只能查看不能编辑
- -n: 查看文件内容带行号
- -b :空白行不编号
- -s :将所有连续的空行替换为一个空行
more yum.log 可以半屏幕展示,然后按照回车键继续输入
less指令用来分屏查看文件内容,它的功能与more指令类似
head用于输出文件开头部分的内容,默认情况下head指令显示文件的前十行内容
- -n 行数 : 输出文件尾部n行的内容
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容
- -n 行数 : 输出文件尾部n行的内容
- -f :显示文件最新追加的内容,监视文件变化
- tail -f /var/log/messages查看日志
11. wc(word count)命令
此命令用来统计文件中单词数量
- l:统计行数
- w:统计出现的单词数量
- c :字节数量
- wc不带任何选项默认执行lwc
12. grep(global regular expression print,全局正则表达式输出)命令
- -i:查找时不区分大小写 加不加都一样(默认)
- -v:显示不包含匹配文本的所有行(反向查询,反向匹配)
- -n:显示匹配行及行号
- -c:只输出匹配到的总行数(不是匹配到的次数)
- -e:实现可多个查找条件的匹配,逻辑or关系
- -E:支持使用扩展正则表达式,相当于使用egrep命令
- -l:列出包含指定模式的文件的文件名,哪个文件里出现这个单词
grep可以在多个文件中查找单词,如:
使用 ^ 符号输出所有以某指定模式开头的行.。同样可以使用 $ 符号输出所有以指定模式结尾的行
- grep ^root /etc/passwd
- grep bash$ /etc/passwd
^$,表示空行。
13. ln命令
该命令是用来创建软硬链接的。
硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。如果删除硬链接对应的源文件,则硬链接文件仍然存在,而且保存了原有的内容,这样可以起到防止因为误操作而错误删除文件的作用。
另一种是符号链接(又称软链接),软链接可以是任意文件或目录,可以链接不同文件系统的文件。在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身,这一点类似于 Windows 操作系统下的快捷方式。
无论是软链接还是硬链接,文件都保持同步变化!
ln -s [原文件或目录] [软链接名](功能描述:给原文件创建一个软链接)
ln [原文件或目录] [硬链接名](功能描述:给原文件创建一个硬链接)
14. echo命令
echo使用来输出内容到控制台,参数-e:支持反斜线控制的字符转换。整体来说这个比较简单,就是一些特殊字符注意下。
控制字符 | 作用 |
---|---|
\ | 输出 “ \ ”本身 |
\n | 换行符 |
\t | 制表符,相当于tab键 |
15. “ > ”和“ >> ”命令
- ls -al >> aaa.txt (功能描述:列表的内容追加到文件aa.txt的末尾)
- cat bb.txt > aaa.txt (功能描述:将bb.txt的内容覆盖到aaa.txt中)
覆盖(>):
追尾(>>):
特别注意,两者如果文件不存在都会新建文件的!
16. history命令
用来查看历史命令。