linux檔案操作
命令 | 作用 |
---|---|
type | 命令用來顯示指定命令的型別,判斷給出的指令是內部指令還是外部指令 |
help | help命令只能顯示shell內部命令的幫助資訊,而linux系統中絕大多數命令是外部命令,所以help命令的作用非常有限。而對於外部命令的幫助資訊可以使man命令或者info命令檢視 |
ll | ll命令可以列出當前檔案或目錄的詳細資訊,含有時間、讀寫許可權、大小、時間等資訊 ,像Windows顯示的詳細資訊 |
whereis | whereis命令用來定位命令的二進位制程式、原始碼檔案和man手冊頁等相關檔案的路徑。 |
find | 查詢當前目錄下的所有指定檔案 |
pwd | 即顯示當前工作目錄的絕對路徑。 |
echo | echo命令用於在終端裝置上輸出字串或變數提取後的值 |
history | 命令用於顯示使用者以前執行過的歷史命令,並且能對歷史命令進行追加和刪除等操作 |
ln | ln命令是linux系統中一個非常重要命令,英文全稱是“link”,即連結的意思,它的功能是為某一個檔案在另外一個位置建立一個同步的連結 |
cat | 檢視檔案內容 |
linux檔案系統
- /bin:
bin 是 Binaries (二進位制檔案) 的縮寫, 這個目錄存放著最經常使用的命令。- /boot:
這裡存放的是啟動 Linux 時使用的一些核心檔案,包括一些連線檔案以及映象檔案。- /dev :
dev 是 Device(裝置) 的縮寫, 該目錄下存放的是 Linux 的外部裝置,在 Linux 中訪問裝置的方式和訪問檔案的方式是相同的。- /etc:
etc 是 Etcetera(等等) 的縮寫,這個目錄用來存放所有的系統管理所需要的配置檔案和子目錄。- /home:
使用者的主目錄,在 Linux 中,每個使用者都有一個自己的目錄,一般該目錄名是以使用者的賬號命名的,如上圖中的 alice、bob 和 eve。- /lib:
lib 是 Library(庫) 的縮寫這個目錄裡存放著系統最基本的動態連線共享庫,其作用類似於 Windows 裡的 DLL 檔案。幾乎所有的應用程式都需要用到這些共享庫。- /lost+found:
這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些檔案。- /media:
linux 系統會自動識別一些裝置,例如U盤、光碟機等等,當識別後,Linux 會把識別的裝置掛載到這個目錄下。- /mnt:
系統提供該目錄是為了讓使用者臨時掛載別的檔案系統的,我們可以將光碟機掛載在 /mnt/ 上,然後進入該目錄就可以檢視光碟機裡的內容了。- /opt:
opt 是 optional(可選) 的縮寫,這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。- /proc:
proc 是 Processes(程序) 的縮寫,/proc 是一種偽檔案系統(也即虛擬檔案系統),儲存的是當前核心執行狀態的一系列特殊檔案,這個目錄是一個虛擬的目錄,它是系統記憶體的對映,我們可以通過直接訪問這個目錄來獲取系統資訊。
這個目錄的內容不在硬碟上而是在記憶體裡,我們也可以直接修改裡面的某些檔案,比如可以通過下面的命令來遮蔽主機的ping命令,使別人無法ping你的機器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
該目錄為系統管理員,也稱作超級許可權者的使用者主目錄。- /sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超級使用者的二進位制檔案) 的縮寫,這裡存放的是系統管理員使用的系統管理程式。
?* /selinux:
這個目錄是 Redhat/CentOS 所特有的目錄,Selinux 是一個安全機制,類似於 windows 的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的檔案的。- /srv:
該目錄存放一些服務啟動之後需要提取的資料。- /sys:
這是 Linux2.6 核心的一個很大的變化。該目錄下安裝了 2.6 核心中新出現的一個檔案系統 sysfs 。
sysfs 檔案系統集成了下面3種檔案系統的資訊:針對程序資訊的 proc 檔案系統、針對裝置的 devfs 檔案系統以及針對偽終端的 devpts 檔案系統。
該檔案系統是核心裝置樹的一個直觀反映。
當一個核心物件被建立的時候,對應的檔案和目錄也在核心物件子系統中被建立。- /tmp:
tmp 是 temporary(臨時) 的縮寫這個目錄是用來存放一些臨時檔案的。- /usr:
usr 是 unix shared resources(共享資源) 的縮寫,這是一個非常重要的目錄,使用者的很多應用程式和檔案都放在這個目錄下,類似於 windows 下的 program files 目錄。- /usr/bin:
系統使用者使用的應用程式。- /usr/sbin:
超級使用者使用的比較高階的管理程式和系統守護程式。- /usr/src:
核心原始碼預設的放置目錄。- /var:
var 是 variable(變數) 的縮寫,這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌檔案。- /run:
是一個臨時檔案系統,儲存系統啟動以來的資訊。當系統重啟時,這個目錄下的檔案應該被刪掉或清除。如果你的系統上有 /var/run 目錄,應該讓它指向 run
萬物皆檔案
- 檔案系統:作業系統如何管理檔案,內部定義了一些規則或者定義
- 所有在Linux裡東西都是以檔案方式操作
- Linux和 Windows訪問檔案不一樣,Windows是對盤進行的訪問
Linux維護的是一個樹狀結構的檔案模型- 只有一個根節點,名字為/
- 一個節點上可以多個子節點
- 查詢檔案的方式
- 相對路徑
- 以當前路徑為基準,查詢其他資源
- vi ../etc/sysconfig/network
- 絕對路徑
- 以根目錄為基準,查詢其他資源
- vi etc/sysconfig/network.scripts/ifcfg-ens33
- 在日常使用中儘量,可以找到路徑即可。
- 在配置檔案中,儘量使用絕對路徑。
- 相對路徑
- 可以隨意掛在磁碟
- mount命令:作用是將一個分割槽掛載到另一個資料夾下,當我們對這個分割槽進行讀寫的時候,實際上是對另一個資料夾進行讀寫
檔案操作相關命令
mkdir | 建立目錄 |
mk -p filename | 可以建立包含子檔案的資料夾 |
rmdir | 刪除目錄 |
rm -rf filename | 可以直接刪除包含子檔案的資料夾 |
cp | 可以將多個檔案複製到一個具體的檔名或一個已經存在的目錄下,也可以同時複製多個檔案到一個指定的目錄中 |
touch | 一是建立新的空檔案,二是改變已有檔案的時間戳屬性 |
stat | 用來顯示檔案或檔案系統的詳細資訊 |
ln | 為某一個檔案在另外一個位置建立一個同步的連結,軟連線和原始檔案不是同一個檔案.硬連結: 與普通檔案沒什麼不同,inode 都指向同一個檔案在硬碟中的區塊軟連結: 儲存了其代表的檔案的絕對路徑,是另外一種檔案,在硬碟上有獨立的區塊,訪問時替換自身路徑.https://www.jianshu.com/p/dde6a01c4094 |
cat | 用於連線檔案並列印到標準輸出裝置上 |
tail | 檢視檔案尾部內容 |
tail -F filename | 實時顯示目標檔案被寫入的資料。可以用於檢查日誌檔案是否被寫入。 |
head | 命令可用於檢視檔案的開頭部分的內容,有一個常用的引數 -n 用於顯示行數,預設為 10,即顯示 10 行的內容 |
more /less | 分頁檢視文件內容 |
find | 查詢指定的檔案 |
linux更改使用者名稱
vi /etc/hostname //修改完成後exit登出就行了
檔案傳輸
linux和windows
- 使用yum -y install lrzsz,然後上傳檔案是rz,下載是sz。
- 使用xftp。
linux之間的檔案傳輸
從node1傳送檔案到node2,使用
scp 待發送檔案 目標ip:目標路徑
資料夾不能直接傳送,新增引數-r,即scp -r 待發送檔案 目標ip:目標路徑
檢視檔案大小
df -h /檢視路徑
在HDFS裡面是du
檔案的打包壓縮和解壓
使用tar
解壓
tar zxvf 待解壓檔案
tar zxf 待解壓檔案 少了一個V,安靜解壓
tar zxvf 待解壓檔案 -C “/opt” 解壓到指定的opt目錄
壓縮
tar cf 檔名.tar.gz 帶打包檔案
使用zip
解壓
unzip 待解壓檔案
壓縮
zip -r 壓縮後.zip 待壓縮檔案
金鑰
1.生成金鑰
ssh-keygen -t rsa -P " -f ~/.ssh/id_rsa
- ssh-keygen是生成指令
- rsa是加密使用的演算法
- /.ssh/id_rsa:,指的是使用者的/home/目錄
- 一般密碼存放在~/.ssh/中,id_rsa為儲存的檔名
- 引數表
--b:指定金鑰長度;
-e:讀取openssh的私鑰或者公鑰檔案;
-C:添加註釋;
-f:指定用來儲存金鑰的檔名;
-i:讀取未加密的ssh-v2相容的私鑰/公鑰檔案,然後在標準輸出裝置上顯示openssh相容的私鑰/公鑰;
-l:顯示公鑰檔案的指紋資料;
-N:提供一個新密語;
-P:提供(舊)密語;
-q:靜默模式;
金鑰儲存
公鑰儲存在:~/.ssh/id_rsa.pub
私鑰儲存在:~/.ssh/id_rsa
主機之間的免密登入
基本原理:
(詳細見:https://blog.csdn.net/u013415591/article/details/81943189)
1.在A上生成公鑰私鑰。
2.將公鑰拷貝給server B,要重新命名成authorized_keys(從英文名就知道含義了)
3.Server A向Server B傳送一個連線請求。
4.Server B得到Server A的資訊後,在authorized_key中查詢,如果有相應的使用者名稱和IP,則隨機生成一個字串,並用Server A的公鑰加密,傳送給Server A。
5.Server A得到Server B發來的訊息後,使用私鑰進行解密,然後將解密後的字串傳送給Server B。Server B進行和生成的對比,如果一致,則允許免登入。
6.得到server B發來的訊息後,會使用私鑰進行解析,然後將機密後的字串發給server B。
7.接收到機密後的字串會跟先前生成的字串進行對比,如果一致就允許免密登陸。
總結下A欲免密B的操作:
- A生成金鑰:ssh-keygen -t rsa
- A傳送金鑰:ssh-copy-id -i ~/.ssh/id_rsa.pub root@B
- ssh B 即可免密登入