一、系统目录结构
- ls / 查看根下面的文件
[root@linux-128 ~]# ls /bin dev home lib64 mnt proc run srv tmp varboot etc lib media opt root sbin sys usr
- tree: 查看目录的树状结构。 如果没有tree命令,用yum安装一下,命令:
[root@linux-128 ~]# yum install -y tree //这里我已经安装了。已加载插件:fastestmirrorLoading mirror speeds from cached hostfile * base: mirrors.cn99.com * extras: mirrors.cn99.com * updates: mirrors.cn99.com软件包 tree-1.6.0-10.el7.x86_64 已安装并且是最新版本
tree –L 2 / 指定目录的最大深度为2
[root@linux-128 ~]# tree -L 2 /boot/boot├── config-3.10.0-514.el7.x86_64├── grub│ └── splash.xpm.gz├── grub2│ ├── device.map│ ├── fonts│ ├── grub.cfg│ ├── grubenv│ ├── i386-pc│ ├── locale│ └── themes├── initramfs-0-rescue-eeb900e7bf10452a92774afda44a57b2.img├── initramfs-3.10.0-514.el7.x86_64.img├── initramfs-3.10.0-514.el7.x86_64kdump.img├── initrd-plymouth.img├── symvers-3.10.0-514.el7.x86_64.gz├── System.map-3.10.0-514.el7.x86_64
-
/bin/ /sbin/ 存放都是我们平常用的命令,如ls,tree,man等,为什么这些命令可以直接使用,是因为我们有一个环境变量PATH。/sbin/目录下面一般是root用户使用的,普通用户没有权限使用,普通用户用/bin/下面的,root用户也可以使用。
-
/root/ :root的家目录,存放一些用户的配置文件和东西,比如/root/.ssh/authorized_keys,如果一个普通用户要存放公钥,它必须在普通用户的家目录下创建一个.ssh/authorized_keys,命令:
[root@linux-128 ~]# useradd wuzhou[root@linux-128 ~]# ls /home/wuzhou/[root@linux-128 ~]# mkdir /home/wuzhou/.ssh/authorized_keys
-
/boot/ :存放系统启动相关的文件,比如grub,grub2.里面都是系统启动相关文件,不能删除。
-
/dev/ :是linux特有的设备文件,比如光驱,硬盘,鼠标等。
-
/etc/ : 存放系统配置文件的目录
-
这里是列表文本这里是列表文本/home/ : 用户的家目录。
-
/lib/ /lib64/ : 存放系统库文件的目录,很多命令都是依赖库文件,比如ls久以来一些库文件,有点像windows里面的.dll文件。
-
使用ldd 可以查看一个命令依赖那些库,这里命令要写绝对路径。
[root@linux-128 ~]# ldd /bin/ls linux-vdso.so.1 => (0x00007ffd7c382000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fd64daea000) libcap.so.2 => /lib64/libcap.so.2 (0x00007fd64d8e5000) libacl.so.1 => /lib64/libacl.so.1 (0x00007fd64d6db000) libc.so.6 => /lib64/libc.so.6 (0x00007fd64d31a000) libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fd64d0b9000) libdl.so.2 => /lib64/libdl.so.2 (0x00007fd64ceb4000) /lib64/ld-linux-x86-64.so.2 (0x00007fd64dd19000) libattr.so.1 => /lib64/libattr.so.1 (0x00007fd64ccaf000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd64ca93000)
-
/media/ :媒介目录,默认为空,插入U盘会自动存放在media目录下。
-
/mnt/ : 临时挂载目录,默认为空,可以将光驱和硬盘临时挂在/mnt/下用。
-
/opt/ : 默认为空,会把oracle安装再这个目录下。
-
/proc/ : 存放系统启动的一些进程,它会生成一个pid文件;如果工作中发现某个进程不太熟悉,我们可以找到这个进程的pid,通过pid去查看进程具体在哪里运行的,命令:
[root@linux-128 ~]# ls -l /proc/8ls: 无法读取符号链接/proc/8/exe: 没有那个文件或目录总用量 0dr-xr-xr-x 2 root root 0 10月 20 15:00 attr-rw-r--r-- 1 root root 0 10月 20 15:00 autogroup-r-------- 1 root root 0 10月 20 15:00 auxv-r--r--r-- 1 root root 0 10月 20 15:00 cgroup--w------- 1 root root 0 10月 20 15:00 clear_refs-r--r--r-- 1 root root 0 10月 20 14:46 cmdline-rw-r--r-- 1 root root 0 10月 20 15:00 comm-rw-r--r-- 1 root root 0 10月 20 15:00 coredump_filter-r--r--r-- 1 root root 0 10月 20 15:00 cpusetlrwxrwxrwx 1 root root 0 10月 20 15:00 cwd -> / \\这里cwd -> / 就是进程所在的路径-r-------- 1 root root 0 10月 20 15:00 environ
-
/run/ :进程产生的临时文件,所以一重启就会消失。
-
/src/ :默认为空,服务产生的一些文件。
-
/sys/ :存放系统内核相关的文件。
-
/tmp/ :系统的临时文件的目录,权限很大,任何一个用户都能操作,但是它有一个特殊权限,用户只能操作用户自己的文件和目录。
-
/usr/ :存放用户的一些文件。
-
/var/ :存放系统产生的一些系统日志,系统进程,服务,一些临时文件,pid,log,缓存等。/var/log/messages:系统的总日志文件。另外,mail指令的预设也设置在这里。
二、 ls命令
- ls是list的缩写,列出当前目录下的文件。
- ls –l 列出详细信息
[root@linux-128 ~]# ls -l /总用量 16lrwxrwxrwx. 1 root root 7 10月 17 03:41 bin -> usr/bindr-xr-xr-x. 4 root root 4096 10月 17 03:54 bootdrwxr-xr-x 19 root root 3200 10月 20 14:46 devdrwxr-xr-x. 77 root root 8192 10月 20 15:14 etcdrwxr-xr-x. 3 root root 20 10月 20 15:14 homelrwxrwxrwx. 1 root root 7 10月 17 03:41 lib -> usr/lib
- ls -i 查看inode
[root@linux-128 ~]# ls -i16797771 anaconda-ks.cfg \\ 16797771 就是文件anaconda-ks.cfg的inode号
- 注意:inode表示记录文件的属性,权限,所有者,所属组,大小,时间,存放在磁盘那一块位置等。
- ls –a 列出所有文件,包括隐藏文件。
[root@linux-128 ~]# ls –a . anaconda-ks.cfg .bash_logout .bashrc .ssh .. .bash_history .bash_profile .cshrc .tcshrc
- . 表示当前文件
- .. 表示当前文件的上一级目录
- ls –t 按文件的最后更改时间排序
[root@linux-128 ~]# ls -tl / 总用量 16 //最新排在最上面,最旧排在最下面。drwxrwxrwt. 8 root root 233 10月 20 15:39 tmpdrwxr-xr-x. 3 root root 20 10月 20 15:14 homedrwxr-xr-x. 77 root root 8192 10月 20 15:14 etcdrwxr-xr-x 21 root root 580 10月 20 15:03 rundrwxr-xr-x 19 root root 3200 10月 20 14:46 devdrwxr-xr-x. 19 root root 267 10月 20 14:46 vardr-xr-xr-x 13 root root 0 10月 20 14:46 sysdr-xr-xr-x 119 root root 0 10月 20 14:46 procdr-xr-x---. 3 root root 147 10月 18 19:15 root
- ls –d 针对目录,只列出目录本身信息
[root@linux-128 ~]# ls -ld /root/dr-xr-x---. 3 root root 147 10月 18 19:15 /root/
- ls –h 合适的大小单位
[root@linux-128 ~]# ls -lh /总用量 16Klrwxrwxrwx. 1 root root 7 10月 17 03:41 bin -> usr/bindr-xr-xr-x. 4 root root 4.0K 10月 17 03:54 bootdrwxr-xr-x 19 root root 3.2K 10月 20 14:46 devdrwxr-xr-x. 77 root root 8.0K 10月 20 15:14 etcdrwxr-xr-x. 3 root root 20 10月 20 15:14 homelrwxrwxrwx. 1 root root 7 10月 17 03:41 lib -> usr/liblrwxrwxrwx. 1 root root 9 10月 17 03:41 lib64 -> usr/lib64
三、 文件和目录的属性
[root@linux-128 ~]# ls -l /etc-rw-r--r--. 1 root root 16 10月 17 03:50 adjtime-rw-r--r--. 1 root root 1518 6月 7 2013 aliases-rw-r--r--. 1 root root 12288 10月 17 03:53 aliases.dbdrwxr-xr-x. 2 root root 236 10月 17 03:44 alternatives
我们在用ls 查看文件属性的时候,共显示了9列信息。
-
第一列:表示文件类型
- d 表示该文件是目录
- -表示该文件是普通文件,或者是二进制值文件(ls)
- l 表示该文件是链接文件,如软链接
- b 表示该文件是块文件,比如磁盘,/dev/sda
- c 表示该文件是串行端口设备,如键盘,鼠标。
- s 表示该文件为socket,用于进程间通信。
- p 管道文件,将一个命令的输出作为另一个命令的输入
-
第二列为有多个文件占用的inode是相同的,如果是目录,那这个数值与该目录底下有多少个一级子目录。
[root@linux-128 ~]# ls -ld /rootdr-xr-x---. 3 root root 147 10月 18 19:15 /root
这里第二列值会3,我们看下/root/下面有几个子目录:
[root@linux-128 ~]# ls -la /rootdr-xr-x---. 3 root root 147 10月 18 19:15 . //当前目录dr-xr-xr-x. 17 root root 265 10月 19 15:07 .. //上一级目录-rw-------. 1 root root 1422 10月 17 03:51 anaconda-ks.cfg-rw-------. 1 root root 989 10月 19 23:30 .bash_history-rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout-rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile-rw-r--r--. 1 root root 176 12月 29 2013 .bashrc-rw-r--r--. 1 root root 100 12月 29 2013 .cshrcdrwx------. 2 root root 80 10月 19 17:04 .ssh //这个是我们放公钥的目录-rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc
-
第三列表示该文件的所有者
-
第四列表示该文件的所属组
-
第五列表示该文件的大小
-
第六、七、八列表示时间
-
第九列表示文件名
四、alias命令
- alias别名是另一个命令加选项组合形成的一个新命令
- ls 就是一个别名,用which来查看
[root@linux-128 ~]# which lsalias ls='ls --color=auto' /usr/bin/ls //绝对路径
- which查看二进制文件的绝对路径
- 做别名 alias
[root@linux-128 ~]# alias aming='ls -lha'[root@linux-128 ~]# aming总用量 28Kdr-xr-x---. 3 root root 147 10月 18 19:15 .dr-xr-xr-x. 17 root root 265 10月 19 15:07 ..-rw-------. 1 root root 1.4K 10月 17 03:51 anaconda-ks.cfg-rw-------. 1 root root 989 10月 19 23:30 .bash_history-rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout-rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile-rw-r--r--. 1 root root 176 12月 29 2013 .bashrc-rw-r--r--. 1 root root 100 12月 29 2013 .cshrcdrwx------. 2 root root 80 10月 19 17:04 .ssh-rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc
- 取消别名:unalias
[root@linux-128 ~]# unalias aming[root@linux-128 ~]# aming-bash: aming: 未找到命令
- 查看系统中所有的别名
[root@linux-128 ~]# aliasalias cp='cp -i'alias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'alias grep='grep --color=auto'alias l.='ls -d .* --color=auto'alias ll='ls -l --color=auto'alias ls='ls --color=auto'alias mv='mv -i'alias rm='rm -i'alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'