1. 程式人生 > 實用技巧 >04_目錄結構和基礎命令

04_目錄結構和基礎命令

檔案管理概述

建立	複製	移動	刪除	檢視	編輯	壓縮

系統的目錄結構

Windows
反斜線 \
Linux
所有的檔案或目錄的起點或者頂點都是以根開始的 /
[root@qls ~]# ls -1  /
軟連線檔案
 /bin		#存放系統命令的目錄    普通使用者可以執行的命令 
 /sbin		#存放系統命令的目錄    需要管理員許可權才可以執行的命令
 /lib		#庫檔案目錄   32位庫檔案 
 /lib64		#庫檔案目錄   64位庫檔案
 ====
 /usr/bin
 /usr/sbin
 /usr/lib
 /usr/lib64
 ====
 /boot		#系統引導目錄    存放的是系統核心和grub的配置 
 /dev		#系統裝置目錄
 	/dev/cdrom -> sr0		#光碟映象
    /dev/null				#黑洞裝置  將一些不用的資料匯入到黑洞裝置  
    /dev/zero				#字元裝置  源源不斷的產生資料 字元 
    /dev/random				#產生隨機數的裝置 
	/dev/stderr -> /proc/self/fd/2		#錯誤輸出   2>
	/dev/stdin -> /proc/self/fd/0		#標準輸入 	<
	/dev/stdout -> /proc/self/fd/1		#標準輸出 	>
	/dev/pts/				#存放的是虛擬終端資訊  
	#磁碟裝置及分割槽  
	/dev/sda
	/dev/sda1      /
	/dev/sda2
	/dev/sda3    /boot
 /etc		#系統的主配置檔案存放目錄    程式配置檔案存放目錄 
 	/etc/sysconfig/network-scripts/ifcfg-*		#系統網絡卡配置檔案
 	/etc/hosts			#本地域名解析檔案   記錄 IP地址與主機名的對應的對映關係 
 	/etc/resolv.conf	#本地DNS配置檔案 
    /etc/fstab			#裝置掛載目錄配置檔案    開機自啟動掛載列表  
 	/etc/hostname		#主機名配置檔案  
 /home			#普通使用者的家目錄     /home/test
 /media			#掛載一些可移動的裝置     CD   相機
 /mnt			#臨時掛載目錄 
 /opt			#早期第三方軟體安裝目錄 
 /proc			#虛擬可變的目錄   記錄了系統的實時狀態 
 /root			#超級使用者管理員root的家目錄  
 /run			#程序執行時產生的一些pid檔案  
 /srv			#物理裝置所產生的一些檔案
 /sys			#物理裝置的驅動資訊檔案
 /tmp			#公共臨時目錄  公共場所     系統會定時的刪除這個目錄下長時間沒有訪問的檔案
 /usr			#系統目錄 系統檔案目錄    跟Windows目錄一樣
 	/usr/local		#軟體安裝目錄    
 /var			#可變的目錄     系統日誌資訊  
 	/var/log		#系統日誌存放目錄 
 	/var/log/messages		#系統級別日誌
 	/var/log/secure			#使用者登入日誌 
	/var/tmp			#程式執行時所產生的一些程序檔案 
	/var/run			#程式執行時所產生的程序的pid檔案目錄

路徑定位

包含整個檔名稱及檔案的位置,這樣的定位稱之為路徑 
路徑就是對於檔案的定位的一種方式  
每個目錄下都有一個點和兩個點,都表示什麼意思  
.		#表示的是當前所在的目錄 
..		#當前目錄的上一級目錄  
[root@qls usr]# ./local/		#當前目錄下的local目錄    ==    /usr/local
[root@qls usr]# ../				#當前目錄的上一級目錄   /  根    
./			#表示當前的目錄  
.			#表示當前的目錄
../			#從當前目錄的上一級目錄開始 
..			#上一級目錄 
什麼是絕對路徑   什麼又是相對路徑

絕對路徑:   凡是以根開始的路徑就是絕對路徑   或者以~開頭的路徑也是絕對路徑  ~  ===  /root    ~  == /home/xxx
/usr/local/ 		#絕對路徑 
相對路徑:  不是以根為開頭的路徑就是相對路徑     相對路徑是針對當前目錄而言的   
./local/
local/

基礎命令

1. pwd			#顯示當前工作目錄的絕對路徑    告訴我,你在哪裡  
[root@dzy ~]# pwd
/root
# pwd 檢視當前所在目錄的絕對路徑#
2. cd
cd  :  change directory
        改變    目錄

cd   選項  引數: 從來不用選項
cd /usr/local
cd ../local
cd /tmp
cd ~
cd ~/.ssh
cd ..
cd .
cd ./local
cd -  :  切換到 上一次所在的目錄
3. ls		#顯示檔案或者目錄列表資訊      開啟目錄  顯示目錄裡面的內容  

常用選項:
	-l		#以長格式形式顯示檔案或者目錄的詳細屬性資訊  
	-i		#顯示檔案或者目錄的inode資訊   索引節點資訊 
    -h		#以位元組大小的形式顯示檔案大小   B   KB   MB   GB  
    -a		#顯示所有的檔案,隱藏檔案  所有以點開頭的檔案就是隱藏檔案 
    -S	 	#以檔案大小進行排序  從大到小顯示
    -t		#根據時間進行排序  最新的時間在最上面    
    -r		#倒敘排序   
    -F		#給不同的檔案加上不同的識別符號    
    	/		#目錄 
    	*		#可執行檔案  
    	=		#套接字檔案  socker檔案  
    	|		#管道檔案  
4. tree			#以樹狀形式顯示目錄列表  
tree -dL 2 /
[root@qls ~]# yum install  -y  tree 
	選項:
			-a		#顯示所有檔案或者目錄  隱藏檔案 
			-d		#只顯示目錄及目錄的數量 
			-h		#顯示檔案的大小  
			-F		#給不同型別的檔案加上不同的識別符號
			    	/		#目錄 
    				*		#可執行檔案  
    				=		#套接字檔案  socker檔案  
    				|		#管道檔案         
             -L		#根據目錄的基本顯示  	
[root@dzy ~]# tree
.
└── anaconda-ks.cfg
0 directories, 1 file
[root@dzy ~]# tree -a
.
├── anaconda-ks.cfg
├── .bash_history
├── .bash_logout
├── .bash_profile
├── .bashrc
├── .cshrc
├── .tcshrc
└── .viminfo
0 directories, 8 files
[root@dzy ~]# tree  -d   /var/log/
/var/log/
├── anaconda
├── audit
├── ntpstats
├── rhsm
├── sa
└── tuned
6 directories
[root@dzy ~]# tree  -h   /var/log/
/var/log/
├── [ 176]  anaconda
│ ├── [ 26K]  anaconda.log
│ ├── [3.9K]  ifcfg.log
│ ├── [1.5M]  journal.log
│ ├── [   0]  ks-script-3PCKae.log
│ ├── [108K]  packaging.log
│ ├── [ 29K]  program.log
│ ├── [121K]  storage.log
│ ├── [275K]  syslog
│ └── [ 21K]  X.log
[root@dzy ~]# tree  -L  2  /
5. mkdir		#建立目錄
	選項:
		-p		#建立多級目錄  遞迴建立   當目錄已經存在時,再次建立不會提示報錯 
		-v		#顯示建立的過程  		
		-m		#建立的時候,給目錄設定一個許可權  
		{}		#生成序列  有規律和無規律    有規律使用..分割   無規律的使用逗號分割 	
在相同的路徑下,不能存在相同的檔名稱 
在不同的路徑下,可以存在相同的檔名稱  
[root@qls ~]# mkdir  /data		#使用絕對路徑進行建立
[root@qls ~]# mkdir  data		#使用相對路徑進行建立
[root@qls ~]# mkdir dzy{a..Z}
[root@qls ~]# mkdir dzy{A..z}

[root@qls ~]# mkdir  /root/data
mkdir: cannot create directory ‘/root/data’: File exists

File exists			#檔案已經存在 
	解決:  
		1. 你要建立的目錄已經存在,無需再次進行建立 	
		2. 你要建立的目錄路徑書寫錯誤  
6. touch		#建立檔案   建立空檔案  當檔案已經存在時,建立的時候不會報錯,但是會改變檔案的時間戳
		{}		#生成序列  有規律和無規律    有規律使用..分割   無規律的使用逗號分割 
[root@qls ~]# touch  test.txt	

# 例如
#1. mkdir dzy
#2. touch dzy

## 不會報錯,雖然zls目錄已經存在,但是linux中一切皆檔案,修改'3種時間'
[root@oldboy ~]# touch /zlsxxx/abc
touch: cannot touch ‘/zlsxxx/abc’: No such file or directory
## touch建立檔案的時候,必須要在已經存在的目錄中
## 如果目錄許可權不夠,touch也會報錯