走進Linux伺服器之一:Linux操作基礎——Linux基本檔案操作(讀寫)
Linux基本檔案操作【讀寫】
前言
之前討論過如何對檔案和資料夾進行增刪和移動的操作,這裡我們來討論一下如何對檔案進行讀寫操作。
檔案閱讀操作
cat指令檢視全部內容
cat指令是一個專門用來檢視,也是一個只能用來檢視檔案的操作。
比如我們在我的伺服器上面寫一個C語言原始檔,程式碼如下:
#include <stdio.h>
int main(){
printf("This is the first C program on Kanna's server.\n");
return 0;
}
我們可以直接用一下形式直接檢視檔案內容
cat 檔名
以上面的C語言檔案為例:
[root@kanna ~] ls
Kanna.c
[root@kanna ~] cat Kanna.c
#include <stdio.h>
int main(){
printf("This is the first C program on Kanna's server.\n");
return 0;
}
[root@kanna ~]
head、tail檢視開頭、結尾
顧名思義,這兩個指令就是用來看檔案的開頭和結尾的。
以這個txt檔案為例:
1.txt:
1111111111
2222222222
3333333333
4444444444
5555555555
6666666666
7777777777
8888888888
9999999999
1010101010
這個檔案有很多行,一般來講如果我們只想看開頭幾行或者結尾幾行就可以用head和tail這兩個指令。
這兩個指令一般後面都要加上 -數字 以選擇檢視開頭\結尾幾行。
例子如下:
[root@kanna ~] ls
1.txt Kanna.c
[root@kanna ~] head -3 1.txt
1111111111
2222222222
3333333333
[root@kanna ~] tail -2 1.txt
9999999999
1010101010
[root@kanna ~]
例子中我們用head函式和tail函式看到了開頭三行和結尾三行。
more翻頁方式檢視檔案
當我們要檢視的檔案行數特別多的時候就可以用more指令來進行檢視,這個檢視的方式支援在終端中對檔案進行翻頁。
舉例:
[root@kanna ~] more passwd.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
libstoragemgmt:x:998:997:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
syslog:x:996:994::/home/syslog:/bin/false
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
--More--(59%)
中間這一大堆的東西可以先不管,我們只看輸出的最後一行,這裡寫著只在終端顯示了這個檔案的前59%,在這裡我們按下回車可以一行一行向下繼續閱讀,按下空格可以直接切換到下一頁。
grep對檔案進行關鍵字查詢
比如我有一個這個名字為alpha.txt的檔案:
apple
banan
coconut
dog
elephant
frog
google
hello
ice
juice
kill
lemon
mango
name
orange
pen
quit
run
start
tall
universe
view
want
x-ray
yellow
zero
如果我想查詢有or的單詞,我可以:
[root@kanna ~] grep or alpha.txt
orange
在Xshell(我用來連線伺服器的終端)中的顯示是這樣的:
檔案改寫操作
重定向
之所以把重定向放在這個位置,是因為重定向本身也涉及到關於檔案的寫入操作,重定向不像聽起來那麼深奧,其實重定向就是把本來應該在終端輸出的資訊輸出到了檔案中,比如在上面用more翻頁性檢視一個長文件時,例子中的passwd.txt就是我運用cat指令檢視在根目錄下etc資料夾在中的passwd檔案進行重定向到這個txt文件中的。
這個操作有點像C++的檔案流操作,本來用cout輸出到輸出埠的字元輸出到檔案中。
比如我們用pwd指令:
pwd
結果是這樣的:
我們建立一個名為workd的txt文字文件,把pwd的結果重定向到這個文件中,語法如下:
pwd > workd.txt
我們可以看到最後檢視workd.txt文件的時候,這個文件中顯示的是剛才pwd的結果。這就是重定向之後的結果。
重定向一般在要生成比較長的文件的時候經常用,比如用objdump來反彙編程式的時候經常用,以上面我們的Kanna.c檔案為例,我們先把他編譯,然後用objdump反彙編,把結果重定向到txt文件中:
這個時候我們再檢視Kanna.txt,由於反彙編的輸出特別多,所以我們用more來檢視
more Kanna.txt
可以看到這麼多才顯示了2%,如果要是在終端輸出檢視會非常不方便。這就讓重定向操作起到了作用。
gedit檔案編輯器
gedit檔案編輯器經常在有GUI的Linux系統上進行編輯,這個有點像Windows系統中的記事本。他們是什麼檔案都可以開啟的,雖然有些檔案開啟是亂碼或者是機器碼。在虛擬機器中執行帶有GUI視覺化圖形操作介面的CentOS使用gedit對檔案進行編輯大致如此:
vi、vim檔案編輯器
但是我們再伺服器上面,基本用的Linux系統都是沒有GUI的,因為伺服器本身不需要GUI,伺服器上面的系統都是不帶有GUI的,只有終端。輸入命令。所以在終端中,我們只能用vi、vim進行操作。推薦使用vim,這個是帶顏色的,便於區分。
比如我們用vim來檢視我們的Kanna.c
這個是用vim檢視Kanna.c的情況。
vim的模式切換
當我們剛剛用vim進行檔案讀寫操作的時候,我們發現我們雖然可以移動終端的游標,但是我們並不能輸入字元,這是因為我們現在還是在vim的命令模式(command mode),在這個狀態下,只能進行檔案的儲存、退出操作。
如上圖,我們需要按下 i 鍵(insert),切換到編輯模式(edit mode)
也可以通過按下a、o等進入編輯模式,不同按鍵的區別請大家自己去嘗試。
vim的命令模式
在命令模式下,我們可以通過輸入一個分號 : 來進行命令的輸入。按下分號後發現終端的底部也會打出一個分號,這個時候我們再分號後面輸入我們需要的操作,就可以進行相關的操作。
- :q 即為quit。輸入:q之後直接關閉目前正在檢視的檔案。
- :q! 這是強制退出,在沒有儲存的情況下可以進行強制退出,退出之前進行的操作不會被儲存。
- :w 即為 write,儲存
- :wq 即為 write and quit,儲存並退出。
- :set nu 每一行顯示行號
- :set list 顯示控制字元
- :set nonu取消顯示行號
- :set nolist取消顯示控制字元
接下來是不需要分號的操作: - yy 實現複製一行的符號(怎麼選取複製在後面提到)
- p 和上面的yy聯合使用,進行貼上
- 數字+yy複製N行。比如3yy複製三行
- dd 即為 delete的縮寫,刪除一整行。
- 同理,數字+dd即為刪除N行。比如3dd刪除三行
- u即為undo,撤銷操作
- d長按 可以實現退格(backspace)操作
- 按下鍵盤上的0和$實現跨越到行首和行尾
- gg G跨越到頁首和頁尾
- 3G 進入第三行,3可以換成任意數字
- /string (n N 可以迴圈) 查詢字元,按下n選擇下一個 (string即為查詢的字元)
- n,m s/string1/string2/g 在n到m行中,把所有string1全部替換為string2,g是全域性的意思,s就是switch的意思。
vim的編輯模式
在編輯模式下,檔案就像在記事本中或者在gedit中開啟的一樣,我們可以通過方向鍵對游標進行操作,如果沒有方向鍵可以先按下ESC退出到命令模式,然後再命令模式的狀態下用H,J,K,L四個鍵對游標進行移動,H向左,J向上,K向下,L向右。選取到需要的地方再按下i切回編輯模式
vim的視覺化模式
由於我們再終端中不能操作滑鼠,就會使得我們想相對的選取部分文字會很麻煩,在vim中可以用視覺化模式進行這個操作。
在命令模式中按下鍵盤上的v鍵即可進入視覺化模式。之後可以通過游標向滑鼠一樣進行選取,按下yy複製、dd刪除。
總結
本文介紹了一些關於Linux系統中如何進行檔案讀寫的操作,接下來將會介紹使用者管理和組管理相關的操作。
相關文章
- linux基礎操作Linux
- linux 檔案操作Linux
- linux基本操作Linux
- Linux基礎學習系列——Linux檔案目錄操作命令Linux
- Linux檔案IO操作Linux
- Linux基本操作命令Linux
- Linux基本操作指令Linux
- Linux 基本操作命令Linux
- Linux基本操作——1Linux
- Linux常用檔案操作命令Linux
- 【C++基礎】檔案流讀寫操作C++
- 如何在Linux中進行檔案切割操作?Linux
- 如何在 Linux下進行檔案切割操作?Linux
- linux常用基礎命令操作收集Linux
- Linux基礎命令---IP路由操作Linux路由
- Nginx基礎篇--Linux下操作NginxLinux
- linux伺服器目錄檔案的命令操作Linux伺服器
- Linux基礎知識和基本操作語句總結Linux
- Linux----12 檔案與檔案操作Linux
- Linux學習之檔案操作Linux
- 常用基礎Linux操作命令總結與hadoop基礎操作命令LinuxHadoop
- 【全面】Linux基礎知識和基本操作語句大全(一)Linux
- Linux系統的基本操作Linux
- Linux常用的文字檔案操作命令Linux
- Linux基楚操作指引【檔案改名、檔案備份、檔案刪除】Linux
- Linux基礎學習——檔案基礎Linux
- 『學了就忘』Linux基礎命令 — 20、檔案操作的相關命令Linux
- 【Linux】常用linux操作Linux
- linux讀寫檔案 簡單版Linux
- Linux 學習筆記--目錄結構及檔案基本操作Linux筆記
- Linux下MySQL基礎及操作語法LinuxMySql
- 系列教程--Linux基礎--05--Linux 檔案管理Linux
- Linux基礎之檔案管理Linux
- Linux檔案操作高頻使用命令Linux
- Linux 檔案屬性及詳細操作Linux
- Linux常用命令:檔案操作命令Linux
- python檔案讀寫操作Python
- 【知識分享】linux伺服器目錄檔案的命令操作Linux伺服器