系統(tǒng)目錄結(jié)構(gòu)上下
ls=列出系統(tǒng)目錄和文件
[root@ask-01 ~]# ls /
bin??boot??dev??etc??home??lib??lib64??media??mnt??opt??proc??root??run??sbin??srv??sys??tmp??usr??var
使用ls命令列出根目錄下的所有文件喜颁,這些文件分別都有自己的用意,接下來就認(rèn)識(shí)一些常用的目錄
[root@ask-01 ~]# ls /root
anaconda-ks.cfg
ROOT目錄就是root用戶的家目錄抗楔,每個(gè)用戶都有一個(gè)家目錄啊研,用戶的家目錄就是用來存一些它的配置文件咖熟。
[root@ask-01 ~]# ls /root/.ssh/authorized_keys
/root/.ssh/authorized_keys
比如之前我們建好的密鑰的配置文件。如果我們需要給別的普通用戶名創(chuàng)建密鑰同樣的也需要在別的用戶下創(chuàng)建.ssh/authorized_keys文件。比如我們現(xiàn)在就可以使用useradd命令創(chuàng)建好一個(gè)新的普通用戶煌珊,這樣我們就可以在home的目錄下看到我們新建好的用戶目錄
useradd=創(chuàng)建普通用戶的命令
[root@ask-01 ~]# useradd Ask
[root@ask-01 ~]# ls /home/
Ask
這時(shí)我們就可以在Ask用戶目錄中創(chuàng)建密鑰配置文件了私杜。普通用戶和root的位置是不一樣的蚕键,root用戶是在根目錄下,普通用戶是在home的目錄下歪今。
接下來我們可以看下目錄結(jié)構(gòu)嚎幸,根目錄下都有哪些目錄或者文件,這里我們可以用個(gè)命令把它列出來叫tree
tree=豎形的方式列出目錄下都有哪些目錄
默認(rèn)一開tree命令是還沒有安裝的寄猩,需要進(jìn)行安裝嫉晶,我們可以使用yum命令開始安裝tree。
[root@ask-02 ~]# tree
-bash: tree: 未找到命令
[root@ask-02 ~]# yum install -y tree
已加載插件:fastestmirror
base????????????????????????????????????????????????????????????????????????????????| 3.6 kB??00:00:00
extras??????????????????????????????????????????????????????????????????????????????| 3.4 kB??00:00:00
updates?????????????????????????????????????????????????????????????????????????????| 3.4 kB??00:00:00
extras/7/x86_64/primary_db??????????????????????????????????????????????????????????| 145 kB??00:00:00
Loading mirror speeds from cached hostfile
* base:mirrors.aliyun.com
* extras:mirrors.163.com
* updates:mirrors.aliyun.com
正在解決依賴關(guān)系
--> 正在檢查事務(wù)
---> 軟件包 tree.x86_64.0.1.6.0-10.el7 將被 安裝
--> 解決依賴關(guān)系完成
依賴關(guān)系解決
===========================================================================================================
Package???????????????架構(gòu)????????????????????版本????????????????????????????源?????????????????????大小
===========================================================================================================
正在安裝:
tree??????????????????x86_64??????????????????1.6.0-10.el7????????????????????base???????????????????46 k
事務(wù)概要
===========================================================================================================
安裝??1 軟件包
總下載量:46 k
安裝大刑锲:87 k
Downloading packages:
tree-1.6.0-10.el7.x86_64.rpm????????????????????????????????????????????????????????|??46 kB??00:00:05
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安裝????: tree-1.6.0-10.el7.x86_64???????????????????????????????????????????????????????????????1/1
驗(yàn)證中??????: tree-1.6.0-10.el7.x86_64???????????????????????????????????????????????????????????????1/1
已安裝:
tree.x86_64 0:1.6.0-10.el7
完畢替废!
這時(shí)我們就可以開始使用tree命令了,只是用tree命令查看根目錄的話泊柬,會(huì)顯示的目錄太多了椎镣,在此我們可以用man命令來看下tree的命令都有哪些操作
man=查看命令的詳細(xì)信息,可以通過這個(gè)命令詳細(xì)的了解到什么有哪些參數(shù)和用法
[root@ask-02 ~]# man tree
TREE(1)??????????????????????????????????General Commands Manual?????????????????????????????????TREE(1)
NAME
tree - list contents of directories in a tree-like format.
SYNOPSIS
tree??[-acdfghilnpqrstuvxACDFQNSUX]??[-L??level??[-R]]??[-H??baseHREF]??[-T??title] [-o filename]
[--nolinks] [-P pattern] [-I pattern] [--inodes] [--device]??[--noreport]??[--dirsfirst]??[--ver‐
sion] [--help] [--filelimit #] [--si] [--prune] [--du] [--timefmt format] [directory ...]
-L level
Max display depth of the directory tree.
這里我們可以看到參數(shù) -L level的意思就是指定最大的目錄的深度兽赁。打個(gè)比方我們指定就要看最大目錄二層状答,我們就可以這么輸入
[root@ask-02 ~]# tree -L 2 /
/
├── bin -> usr/bin
├── boot
│?? ├── config-3.10.0-514.el7.x86_64
│?? ├── grub
│?? ├── grub2
│?? ├── initramfs-0-rescue-4fcceeac8b60402197becade5286e4ef.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
│?? ├── vmlinuz-0-rescue-4fcceeac8b60402197becade5286e4ef
│?? └── vmlinuz-3.10.0-514.el7.x86_64
├── dev
│?? ├── agpgart
│?? ├── autofs
│?? ├── block
│?? ├── bsg
│?? ├── btrfs-control
這樣,我們就可以清楚的看到哪些目錄下有哪些文件刀崖,比如boot下有g(shù)rub和grub2惊科。
那么我們常用到的目錄有一下幾個(gè):bin;dev亮钦;etc馆截;home;sbin蜂莉;boot
bin
這里bin有兩個(gè)蜡娶,bin是用來存放命令文件的,我們使用的ls就是在bin的目錄下(兩個(gè)bin目錄下都有)映穗,那么bin和sbin的區(qū)別是什么呢窖张?bin是普通用戶下存的命令文件目錄,sbin是超級(jí)用戶下存的命令文件目錄男公,sbin中的s就是super的意思荤堪。那么sbin的目錄里能有屬于普通用戶的命令也有屬于超級(jí)用戶的命令合陵,而bin的目錄下就沒有超級(jí)用戶的命令。所以root用戶就能使用sbin下的命令澄阳,同樣也可以使用bin下的命令拥知,而普通用戶則不能使用sbin下的命令。
boot
boot目錄就是存放系統(tǒng)啟動(dòng)相關(guān)文件的目錄碎赢,比方grub(單用戶模式)就在boot目錄下面低剔,那么boot目錄里的系統(tǒng)文件不能隨意刪除,否則很容易就到系統(tǒng)啟動(dòng)不了
[root@ask-02 ~]# ls /boot
config-3.10.0-514.el7.x86_64?????????????????????????????initrd-plymouth.img
grub?????????????????????????????????????????????????????symvers-3.10.0-514.el7.x86_64.gz
grub2????????????????????????????????????????????????????System.map-3.10.0-514.el7.x86_64
initramfs-0-rescue-4fcceeac8b60402197becade5286e4ef.img??vmlinuz-0-rescue-4fcceeac8b60402197becade5286e4ef
initramfs-3.10.0-514.el7.x86_64.img??????????????????????vmlinuz-3.10.0-514.el7.x86_64
initramfs-3.10.0-514.el7.x86_64kdump.img
dev
dev是Linux系統(tǒng)里的一些設(shè)備文件目錄肮塞,比方說鍵盤襟齿;鼠標(biāo);光盤枕赵;硬盤猜欺,它們都在dev下面
[root@ask-02 ~]# ls /dev
agpgart??????????full????????????????null????snapshot??tty19??tty35??tty51??ttyS1????vcsa2
autofs???????????fuse????????????????nvram???snd???????tty2???tty36??tty52??ttyS2????vcsa3
block????????????hidraw0?????????????oldmem??sr0???????tty20??tty37??tty53??ttyS3????vcsa4
bsg??????????????hpet????????????????port????stderr????tty21??tty38??tty54??uhid?????vcsa5
btrfs-control????hugepages???????????ppp?????stdin?????tty22??tty39??tty55??uinput???vcsa6
bus??????????????initctl?????????????ptmx????stdout????tty23??tty4???tty56??urandom??vfio
etc
etc是系統(tǒng)的一些配置文件的目錄,比方說我們的網(wǎng)卡配置文件就是創(chuàng)建在這里的
[root@ask-02 ~]# ls /etc/sysconfig/network-scripts/ifcfg-
ifcfg-ens33????ifcfg-ens33-1??ifcfg-ens33-2??ifcfg-lo
home
home 是用戶的家目錄拷窜,這目錄用來存用戶的一些文件
[root@ask-02 ~]# ls /home
ASk
lib
lib和lib64是我們的庫目錄开皿,我們很多命令都依賴庫目錄,我們可以打個(gè)比方看下ls都以來哪些庫
[root@ask-02 ~]# ldd /bin/ls
linux-vdso.so.1 =>??(0x00007ffc769f1000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f21ce933000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f21ce72e000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007f21ce524000)
libc.so.6 => /lib64/libc.so.6 (0x00007f21ce163000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f21cdf02000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f21cdcfd000)
/lib64/ld-linux-x86-64.so.2 (0x00007f21ceb62000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007f21cdaf8000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f21cd8dc000)
這里我們可以看到ls依賴在libselinux.so.1 => /lib64/篮昧;?libcap.so.2 => /lib64/等等赋荆。
media
media是媒介目錄,默認(rèn)是空目錄懊昨,比方說我插上U盤窄潭,那么它就可以自動(dòng)的放在media目錄下。
mnt
mnt是個(gè)臨時(shí)的掛載目錄酵颁,默認(rèn)也是空的嫉你,我們可以臨時(shí)把光驅(qū)或者硬盤掛載在這個(gè)目錄下面去
run目錄存放:進(jìn)程產(chǎn)生的臨時(shí)文件,重啟關(guān)機(jī)文件會(huì)消失的躏惋!
srv目錄存放:服務(wù)產(chǎn)生的文件均抽,一般為空.sys目錄存放:系統(tǒng)內(nèi)核相關(guān)的文件(平時(shí)用不到的)
tmp:系統(tǒng)的臨時(shí)目錄,任何用戶都可以在tmp下操作
usr目錄存放:系統(tǒng)用戶所用得到的一些文件
var目錄存放:進(jìn)程服務(wù)產(chǎn)生的一些臨時(shí)文件緩存
ls命令
ls的具體用法其掂,都有哪些參數(shù)選項(xiàng)
ls -l:就可以把這個(gè)目錄的文件詳細(xì)的列出來
[root@ask-02 ~]# ls -l
總用量 4
-rw-------. 1 root root 1422 12月 12 08:01 anaconda-ks.cfg
-rw------- ?= ?權(quán)限
1 ? ? ? ? ? ? ? ?= ?文件數(shù)量
root ? ? ? ? ? = ?用戶
root ? ? ? ? ? = ?用戶所屬組
1422 ? ? ? ? = ? 文件大小
12月12 08:01 ?= ?時(shí)間日期
anaconda-ks.cfg ?= ?文件名
ls -i:查看目錄或者文件的inode號(hào)
[root@ask-02 ~]# ls -i
33582987 anaconda-ks.cfg
33582987是這個(gè)文件的inode號(hào),
inode號(hào)是唯一的潦蝇,多個(gè)文件可以同時(shí)用相同inode號(hào)
ls -la:顯示這個(gè)目錄下的所有文件包括隱藏文件(文件名前加“點(diǎn)”的就是隱藏文件)
[root@ask-02 ~]# ls -la
總用量 28
dr-xr-x---.??3 root root??147 12月 13 21:50 .
dr-xr-xr-x. 17 root root??245 12月 15 03:14 ..
-rw-------.??1 root root 1422 12月 12 08:01 anaconda-ks.cfg
-rw-------.??1 root root 1757 12月 15 16:37 .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 .cshrc
drwx------.??2 root root???61 12月 15 15:45 .ssh
-rw-r--r--.??1 root root??129 12月 29 2013 .tcshrc
ls -lta:以時(shí)間的順序排列
[root@ask-02 ~]# ls -lta
總用量 28
-rw-------.??1 root root 1757 12月 15 16:37 .bash_history
drwx------.??2 root root???61 12月 15 15:45 .ssh
dr-xr-xr-x. 17 root root??245 12月 15 03:14 ..
dr-xr-x---.??3 root root??147 12月 13 21:50 .
-rw-------.??1 root root 1422 12月 12 08:01 anaconda-ks.cfg
-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 .cshrc
-rw-r--r--.??1 root root??129 12月 29 2013 .tcshrc
ls -ld:和ls -l 的卻別就在-l會(huì)列出目錄下的子文件款熬,加了d就只會(huì)顯示目錄本身
[root@ask-02 ~]# ls -l /
總用量 16
lrwxrwxrwx.??1 root root????7 12月 12 07:58 bin -> usr/bin
dr-xr-xr-x.??4 root root 4096 12月 12 08:04 boot
drwxr-xr-x. 19 root root 3160 12月 16 00:22 dev
drwxr-xr-x. 77 root root 8192 12月 16 01:38 etc
drwxr-xr-x.??3 root root???17 12月 16 01:38 home
lrwxrwxrwx.??1 root root????7 12月 12 07:58 lib -> usr/lib
lrwxrwxrwx.??1 root root????9 12月 12 07:58 lib64 -> usr/lib64
drwxr-xr-x.??2 root root????6 11月??5 2016 media
drwxr-xr-x.??2 root root????6 11月??5 2016 mnt
drwxr-xr-x.??2 root root????6 11月??5 2016 opt
dr-xr-xr-x. 98 root root????0 12月 16 00:22 proc
dr-xr-x---.??3 root root??147 12月 13 21:50 root
drwxr-xr-x. 21 root root??580 12月 16 00:59 run
lrwxrwxrwx.??1 root root????8 12月 12 07:58 sbin -> usr/sbin
drwxr-xr-x.??2 root root????6 11月??5 2016 srv
dr-xr-xr-x. 13 root root????0 12月 16 00:22 sys
drwxrwxrwt.??8 root root??233 12月 16 00:59 tmp
drwxr-xr-x. 13 root root??155 12月 12 07:58 usr
drwxr-xr-x. 19 root root??267 12月 16 00:22 var
[root@ask-02 ~]# ls -ld /
dr-xr-xr-x. 17 root root 245 12月 15 03:14 /
ll=ls -l是ls -l 的別名
我們可以同過which命令來查看ll是那個(gè)命令的別名
[root@ask-02 ~]# which ll
alias ll='ls -l --color=auto'
/usr/bin/ls
alias命令
alias別名命令,我們可以通過which命令查看命令是有別名攘乒,比如贤牛,ls和ll這些命令都是有別名的,which是用來查看
一個(gè)文件所在的路徑的则酝。
[root@ask-02 ~]# which ll
alias ll='ls -l --color=auto'
/usr/bin/ls
[root@ask-02 ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@ask-02 ~]# which man
/usr/bin/man
[root@ask-02 ~]# which yum
/usr/bin/yum
這里我們可以看到有些命令前面有alias 有些則沒有殉簸,alias的意思就表示該命令是由ls命令加一個(gè)選項(xiàng)這樣的組合形成的一個(gè)新的命令
如果我們不想使用別名闰集,那我們可以直接使用絕對(duì)路徑命令,那么它列出來的目錄就沒有顏色的了
[root@ask-02 ~]# /usr/bin/ls /
bin??boot??dev????etc??home??lib????lib64??media??mnt??opt????proc??root??run??sbin??srv??sys??tmp??usr??var
那我們想看有哪些命令是有別名的呢般卑,我們可以通過alias來查看
[root@ask-02 ~]# alias
alias 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'
我們還可以通過alias來自定義一個(gè)命令武鲁,打個(gè)比方我們將ask設(shè)置為ls -lha
[root@ask-02 ~]# alias ask='ls -lha'
[root@ask-02 ~]# ask
總用量 28K
dr-xr-x---.??3 root root??147 12月 13 21:50 .
dr-xr-xr-x. 17 root root??245 12月 15 03:14 ..
-rw-------.??1 root root 1.4K 12月 12 08:01 anaconda-ks.cfg
-rw-------.??1 root root 1.8K 12月 15 16:37 .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 .cshrc
drwx------.??2 root root???61 12月 15 15:45 .ssh
-rw-r--r--.??1 root root??129 12月 29 2013 .tcshrc
這樣輸入ask就等于輸入ls -lha是一樣的了,同時(shí)我們也可以通過which命令來看下ask
[root@ask-02 ~]# which ask
alias ask='ls -lha'
/usr/bin/ls
如果我們想要取消掉剛才我們所創(chuàng)建的那個(gè)命令蝠检,我們可以使用unalias來取消
[root@ask-02 ~]# unalias ask
[root@ask-02 ~]# ask
-bash: ask: 未找到命令
這樣我們運(yùn)行ask就不生效了沐鼠。