目录结构
登录系统后,在当前命令窗口下输入命令:
ls /
你会看到如下图所示:
树状目录结构:
以下是对这些目录的解释:
-
/bin:
bin是Binary的缩写, 这个目录存放着最经常使用的命令。 -
/boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 -
/dev :
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 -
/etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录。 -
/home:
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 -
/lib:
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 -
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 -
/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。 -
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。 -
/opt:
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 -
/proc:
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
-
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。 -
/sbin:
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 -
/selinux:
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。 -
/srv:
该目录存放一些服务启动之后需要提取的数据。 -
/sys:
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
-
/tmp:
这个目录是用来存放一些临时文件的。 -
/usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。 -
/usr/bin:
系统用户使用的应用程序。 -
/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。 -
/usr/src:
内核源代码默认的放置目录。 -
/var:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 -
/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
Linux常用命令
- pwd
- cd
- ls
- touch
- mkdir
- rmdir
- cp
- mv
- rm
- wc
- du
pwd:显示工作目录路径
命令语法:pwd [选项]
选项 | 含义 |
---|---|
-L | 目录链接时,输出链接路径 |
-P | 输出物理路径 |
cd:更改工作目录路径
命令语法:cd[选项][目录]
选项 | 含义 |
---|---|
cd或cd ~ | 回到用户主目录 |
cd .. | 变当前工作目录路径位置至当前目录的父目录。 |
cd -P | 如果是链接路径,则进入链接路径的源物理路径 |
cd ~li | 改用户工作目录路径位置至用户li的主目录。 |
ls:列出目录和文件信息
选项 | 选项含义 |
---|---|
-a | 显示指定目录下所有子目录的文件,包括隐藏文件 |
-A | 显示指定目录下所有子目录与文件,包括隐藏文件,但不列出“.”和“..” |
-c | 配合-lt:根据车体么排序并显示ctime |
-d | 如果参数是目录,只显示其名称而不显示其下的歌文件和子目录 |
-F | 显示文件类型 |
-i | 在输出的第一列显示文件的inode号 |
-l | 以长格式显示文件的详细信息 |
-r | 逆序排列 |
-t | 根据修改时间排序 |
-s | 一块数形式先生每个文件分配的尺寸 |
-S | 根据文件大小排序 |
例子:显示目录/var下文件的子目录的简单信息
~]# ls /var
显示/root目录下所以文件和子目录的详细信息,包括隐藏文件
~]# ls -al /root
显示/etc目录下的文件和子目录信息,用标记标出文件类型
~]# ls -F /etc
touch:创建空文件、更改文件时间
命令语法:touch [选项] [文件]
选项 | 选项含义 |
---|---|
-a | 只更改访问时间(atime) |
-m | 更改文件的修改时间记录(mtime) |
-c | 假如目标文件存在,则不会建立新的文件 |
-r<文件> | 使用指定文件的时间属性而非当前时间 |
-d<字符串> | 使用指定字符串表示时间而非当前时间 |
-t<日期时间> | 使用[CC]YY]MMDDhhmm[.ss]格式的时间而非当前时间 |
例如:在当前目录下创建文件file1、file2、file3
[root@localhost ~]# touch file1
[root@localhost ~]# touch file2 file3
[root@localhost ~]# ls -l file1 file2 file3
-rw-r--r--. 1 root root 5 Aug 3 22:12 file1
-rw-r--r--. 1 root root 6 Aug 3 22:12 file2
-rw-r--r--. 1 root root 0 Aug 3 22:12 file3
将文件file1的时间记录改为9月17日19点30分
[root@localhost ~]# ls -l /root/file1
-rw-r--r--. 1 root root 5 Aug 4 2019 /root/file1
[root@localhost ~]# touch -c -t 09171930 /root/file1
[root@localhost ~]# ls -l /root/file1
-rw-r--r--. 1 root root 5 Sep 17 2019 /root/file1
时间格式是MMDDHHmm,如果要加上2019年年份
[root@localhost ~]# touch -c -t 09171930 /root/file1
mkdir:创建目录
命令语法:mkdir [选项] [目录]
选项 | 选项含有 |
---|---|
-m<权限模式> | 对新创建的目录设置权限,在没有-m选项时,默认权限是755 |
-v | 每次创建新目录都显示信息 |
-p | 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动创建那些尚不存在的目录,即以此可以建立多个目录 |
例子:创建目录newdir1 ,其默认权限为755
[root@localhost ~]# touch -c -t 09171930 /root/file1
[root@localhost ~]# ls -ld newdir1
drwxr-xr-x. 2 root root 6 Jun 22 22:27 newdir1
创建目录newdir2,其权限为777
[root@localhost ~]# mkdir -m 777 newdir2
[root@localhost ~]# ls -ld newdir2
drwxrwxrwx. 2 root root 6 Aug 3 22:39 newdir2
rmdir:删除空目录 命令语法:rmdir [选项] [目录]
选项 | 选项含义 |
---|---|
-p | 递归删除目录,当子目录删除后其父目录为空时,也一同被删除 |
-v | 输出处理的目录详情 |
例子:同时删除/root/newdir2和/root/newdir2/newdir3这两个空目录
[root@localhost ~]# mkdir /root/newdir2
[root@localhost ~]# mkdir /root newdir2/newdir3
[root@localhost ~]# rmdir -pv /root/newdir2/newdir3
rmdir: removing directory, ‘/root/newdir2/newdir3’
rmdir: removing directory, ‘/root/newdir2’
rmdir: removing directory, ‘/root’
rmdir: failed to remove directory ‘/root’: Device or resource busy
cp:复制文件的和目录
命令语法:cp [选项] [源文件|目录] [目标文件|目录]
选项 | 选项含义 |
---|---|
-a | 在复制目录时保留链接、文件属性、并递归地复制目录,等同于-dpr选项 |
-d | 复制时保留链接 |
-f | 在覆盖目标文件之前不给出提示信息要求用户确认 |
-i | 和-f选项相反看,在覆盖目标文件之前给出提示信息,要求用户确认 |
-p | 出复制源文件的内容外,还把其修改时间和访问权限也复制到新文件中 |
-l | 不做复制,只是链接文件 |
-r | 如果给出的源文件是一个目录文件,将递归复制该目录下所有的子目录和文件。此时目标必须为一个目录名 |
例子:将/etc/grub2.cfg文件复制到/root目录下,并改名为grub
[root@localhost ~]# cp /etc/grub2.cfg /root/grub
cp: overwrite ‘/root/grub’? y
[root@localhost ~]# ls
anaconda-ks.cfg grub newdir1
将/etc/grub2.cfg文件复制到/root目录下
[root@localhost ~]# cp /etc/grub2.cfg /root
[root@localhost ~]# ls
anaconda-ks.cfg grub grub2.cfg newdir1
[root@localhost ~]#
将/boot目录以及该目录中的所有文件和子目录都复制到/root目录中
[root@localhost ~]# cp -r /boot /root
[root@localhost ~]# ls -l /root
total 24
-rw-------. 1 root root 1260 Jun 9 14:21 anaconda-ks.cfg
dr-xr-xr-x. 5 root root 4096 Jun 22 23:21 boot
-rw-r--r--. 1 root root 4287 Jun 22 23:15 grub
-rw-r--r--. 1 root root 4287 Jun 22 23:18 grub2.cfg
drwxr-xr-x. 2 root root 6 Jun 22 22:27 newdir1
mv:文件和目录改名、移动文件和目录路径
命令语法:mv [选项] [源文件|目录] [目标文件|目录]
选项 | 选项含义 |
---|---|
-i | 覆盖前询问 |
-f | 覆盖前不询问 |
-n | 不覆盖已存在的文件 |
-u | 只有在源文件文件比目标文件新,或目标文件不存在时才进行移动 |
-T | 将目标文件视作普通文件处理 |
例子:将/root/pic目录下所以的后缀名为“.png”的文件移动到/usr/local/share/pic目录下
[root@localhost ~]# mv -f /root/pic/*.png /usr/local/share/pic
把/root/pic/kpic.png文件改名为/root/pic/life.png
[root@localhost ~]# mv /root/pic/kpic.png /root/pic/life.png
[root@localhost ~]# ls /root/pic
{kpic.png life.png
把/root/pic目录名称更改为/root/mypic
root@localhost ~]# mv /root/pic /root/mypic
[root@localhost ~]# ls /root
123.png} anaconda-ks.cfg boot grub grub2.cfg mypic newdir1
rm:删除文件或目录
命令语法:rm [选项] [文件|目录]
选项 | 选项含义 |
---|---|
-f | 强制删除。忽略不存在的文件,不给出提示信息 |
-r | 递归删除目录及其内容 |
-i | 在删除前需要确认 |
例子:删除当前目录下的file4文件
root@localhost ~]# rm file4
rm: remove regular empty file ‘file4’? y
[root@localhost ~]# ls
123.png} anaconda-ks.cfg boot grub grub2.cfg mypic newdir1
连同/root/ab/a文件和/root/ab目录一起删除
[root@localhost ~]# mkdir /root/ab
[root@localhost ~]# touch /root/ab/a
[root@localhost ~]# ls -l /root/ab/a
-rw-r--r--. 1 root root 0 Jun 22 23:51 /root/ab/a
[root@localhost ~]# rm -rf /root/ab
[root@localhost ~]# ls /root
123.png} anaconda-ks.cfg boot grub grub2.cfg mypic newdir1
wc:统计文件行数、单词数、字节数和字符数
命令语法:wc [选项] [文件]
选项 | 选项含义 |
---|---|
-l | 统计行数 |
-w | 统计单词数 |
-c | 统计字节数 |
-m | 统计字符数 |
-L | 统计文件中最长行的长度 |
例子:统计/root/aa文件的行数、单词数和字节数
[root@localhost ~]# wc -l /root/aa/ce.log
3 /root/aa/ce.log
统计/root目录下有多少子目录和文件
[root@localhost ~]# ls /root|wc -l
8
du:计算机文件或目录的容量
命令语法:du [选项]...[文件或目录]...
选项 | 选项含义 |
---|---|
-h | 人性化显示容量信息 |
-a | 查看所有目录以及文件的容量信息 |
-s | 仅显示总容量 |
-c | 显示总计信息 |
-l | 如果是硬连接,就多次计算其尺寸 |
-x | 跳过处于不同文件系统之上的目录 |
-S | 不包括子目录的占用量 |
-L | 找出任何符号链接指示的真正目的地 |
查看/root目录及子目录的容量信息
[root@localhost ~]# du /root
[root@localhost ~]# du -a /root
查看/root所占磁盘空间总和
[root@localhost ~]# du -sh /root
100M /root
以MB为单位显示/root目录磁盘占用量
[root@localhost ~]# du -sh /root
100M /root
选项 | 选项含义 |
---|---|
-h | 人性化显示容量信息 |
-a | 查看所有目录以及文件的容量信息 |
-s | 仅显示总容量 |
-c | 显示总计信息 |
-l | 如果是硬连接,就多次计算其尺寸 |
-x | 跳过处于不同文件系统之上的目录 |
-S | 不包括子目录的占用量 |
-L | 找出任何符号链接指示的真正目的地 |
查看/root目录及子目录的容量信息
[root@localhost ~]# du /root
[root@localhost ~]# du -a /root
查看/root所占磁盘空间总和
[root@localhost ~]# du -sh /root
100M /root
以MB为单位显示/root目录磁盘占用量
[root@localhost ~]# du -sh /root
100M /root