1. Linux的目录结构
Linux的目录结构是一个树型结构。
Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘。
Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面。
在Linux系统中,路径之间的层级关系,使用:/ 来表示。
Linux只有一个顶级目录,称之为:根目录
/user/local/hello.txt
注意:开头的 / 表示根目录,后面的 / 表示层级关系。
比如:在根目录下有一个文件夹test,文件夹内有一个文件hello.txt,请描述文件的路径
/test/hello.txt
在 Linux 系统中,这几个目录是比较重要的,注意不要误删除或者随意更改内部文件:
/etc:是系统中的配置文件,如果更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin:这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目
录下的。
/bin、/usr/bin 是给系统用户使用的指令(除 root 外的通用用户),而/sbin, /usr/sbin 则是给 root
使用的指令。
/var:是一个非常重要的目录,系统上跑了很多程序,每个程序都会有相应的日志产生,而这些日
志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。
在Windows系统中,路径之间的层级关系,使用: \ 来表示。
Windows系统有多个顶级目录,即各个盘符
D:\data\work\hello.txt
注意:D: 表示D盘,\ 表示层级关系
2. 绝对路径与相对路径
绝对路径一定是由根目录 / 开始写起。例如,使用绝对路径的表示方式指明 bin 文件所在的位置,
该路径应写为 /usr/bin:
[root@localhost ~]# bin
bash: bin: command not found <-- 没有找到
[root@localhost ~]# /usr/bin
bash: /usr/bin: is a directory <-- 是一个文件
当使用 root 身份登录 Linux 系统时,当前工作目录默认为 /root,如果此时需要将当前工作目录调
整到 root 的子目录 Desktop 中,就可以使用绝对路径:
[root@localhost ~]# pwd <-- 显示当前所在的工作路径
/root
[root@localhost ~]# cd /root/Desktop
[root@localhost Desktop]# pwd
/root/Desktop
和绝对路径不同,相对路径不是从根目录 / 开始写起,而是从当前所在的工作目录开始写起。使用
相对路径表明某文件的存储位置时,经常会用到2 个特殊目录,即当前目录(用 . 表示)和父目录
(用 .. 表示),上面的例子用相对路径就比较简单:
[root@localhost ~]# pwd <-- 显示当前所在的工作路径
/root
[root@localhost ~]# cd ./Desktop
[root@localhost Desktop]# pwd
/root/Desktop
如果以 root 身份登录 Linux 系统,并实现将当前工作目录由 /root 转换为 /usr 目录,有以下 2 种方式:
#使用绝对路径
[root@localhost ~]# pwd <-- 显示当前所在的工作路径
/root
[root@localhost ~]# cd /usr
[root@localhost ~]# pwd
/usr
#使用相对路径
[root@localhost ~]# pwd <-- 显示当前所在的工作路径
/root
[root@localhost ~]# cd ../usr <-- 相对 root,usr 位于其父目录 /,因此这里要用到 ..
[root@localhost ~]# pwd
/usr
总之,绝对路径是相对于根路径 / 的,只要文件不移动位置,那么它的绝对路径是恒定不变的;而
相对路径是相对于当前所在目录而言的,随着程序的执行,当前所在目录可能会改变,因此文件的
相对路径不是固定不变的。
3. Linux命令基础格式
command [-options] [-parameter]
command: 命令本身
-options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
-parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等
命令的选项用于调整命令功能,而命令的参数是这个命令的操作对象。
4. ls命令
ls命令的作用是列出目录下的内容
ls [-a -l -h] [linux路径]
当 ls 命令不使用任何选项时,默认只会显示非隐藏文件的名称,并以文件名进行排序,同时会根
据文件的具体类型给文件名配色(蓝色显示目录,白色显示一般文件)。
在Linux系统中,以”.”开头的文件\文件夹会自动隐藏
只有通过-a选项才可以展示出来
-h必须要搭配 -l 一起使用。
列出根目录下的所有目录:
[root@www ~]# ls -al ~
total 156
drwxr-x--- 4 root root 4096 Sep 24 00:07 .
drwxr-xr-x 23 root root 4096 Sep 22 12:09 ..
-rw------- 1 root root 1474 Sep 4 18:27 anaconda-ks.cfg
-rw------- 1 root root 955 Sep 24 00:08 .bash_history
-rw-r--r-- 1 root root 24 Jan 6 2007 .bash_logout
-rw-r--r-- 1 root root 191 Jan 6 2007 .bash_profile
-rw-r--r-- 1 root root 176 Jan 6 2007 .bashrc
drwx------ 3 root root 4096 Sep 5 10:37 .gconf
-rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log
-rw-r--r-- 1 root root 5661 Sep 4 18:25 install.log.syslog
当文件名包含空格、特殊字符或者开始字符为破折号时,可以使用反斜杠(\)进行转义,或者使用引号将文件名括起来:
ls "my file.txt" # 列出文件名为"my file.txt"的文件
ls my\ file.txt # 列出文件名为"my file.txt"的文件
ls -- -filename # 列出文件名为"-filename"的文件
ls 命令还可以使用通配符进行模式匹配,例如 * 表示匹配任意字符,? 表示匹配一个字符,[...] 表示匹配指定范围内的字符:
ls *.txt # 列出所有扩展名为.txt的文件
ls file?.txt # 列出文件名为file?.txt的文件,其中?表示任意一个字符
ls [abc]*.txt # 列出以a、b或c开头、扩展名为.txt的文件
在使用 ls -l 命令时,第一列的字符表示文件或目录的类型和权限。其中第一个字符表示文件类型
(如下图),第一列的其余 9 个字符表示文件或目录的访问权限,分别对应三个字符一组的 rwx
权限,前三个字符表示所有者的权限,中间三个字符表示所属组的权限,后三个字符表示其他用户
的权限。
比如:-r-xr-x---
的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可
读、可执行,其他人没有任何权限。
(日常美图时间)