linux讀文件命令繞過姿勢
ox1
前些天參加cctf大賽有個web題是命令執行,但實際考的是對文件內容查看的命令以及繞過方式,這裏再總結一波吧。
0x2
1.more 2.cat 3.tac命令,倒敘顯示 4.head命令,可以顯示哪些內容
5.tail命令,可以指定顯示哪些內容 6.less與more類似,但是比more更好的是它可以【pg dn】【pg up】翻頁。
0X3
more 的語法、參數和命令;
more [參數選項] [文件]
參數如下:
+num 從第num行開始顯示;
-num 定義屏幕大小,為num行;
+/pattern 從pattern 前兩行開始顯示;
-c 從頂部清屏然後顯示;
-d 提示Press space to continue, ‘q‘ to quit.(按空 鍵繼續,按q鍵退出),禁用響鈴功能;
-l 忽略Ctrl+l (換頁)字符;
-p 通過清除窗口而不是滾屏來對文件進行換頁。和-c參數有點相似;
-s 把連續的多個空行顯示為一行;
-u 把文件內容中的下劃線去掉
退出more的動作指令是q
more 的參數應用舉例;
# more -dc /etc/profile 註:顯示提示,並從終端或控制臺頂部顯示;
# more +4 /etc/profile 註:從profile的第4行開始顯示;
# more -4 /etc/profile 註:每屏顯示4行;
# more +/MAIL /etc/profile 註:從profile中的第一個MAIL單詞的前兩行開始顯示;
more 的動作指令;
我們查看一個內容較大的文件時,要用到more的動作指令,比如ctrl+f(或空格鍵)是向下顯示一屏,ctrl+b是返回上一屏; Enter鍵可以向下滾動顯示n行,要通過定,默認為1行;
我們只說幾個常用的;自己嘗試一下就知道了;
Enter 向下n行,需要定義,默認為1行;
Ctrl+f 向下滾動一屏;
空 鍵 向下滾動一屏;
Ctrl+b 返回上一屏;
= 輸出當前行的行號;
:f 輸出文件名和當前行的行號;
v 調用vi編輯器;
! 命令 調用Shell,並執行命令;
q 退出more
當我們查看某一文件時,想調用vi來編輯它,不要忘記了v動作指令,這是比較方便的;
其它命令通過管道和more結合的運用例子;
比如我們列一個目錄下的文件,由於內容太多,我們應該學會用more來分頁顯示。這得和管道 | 結合起來,比如:
# ls -l /etc |more
2、cat命令
使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
說明:把檔案串連接後傳到基本輸出(螢幕或加 > fileName 到另一個檔案)
參數:
-n 或 --number 由 1 開始對所有輸出的行數編號
-b 或 --number-nonblank 和 -n 相似,只不過對於空白行不編號
-s 或 --squeeze-blank 當遇到有連續兩行以上的空白行,就代換為一行的空白行
-v 或 --show-nonprinting
範例:
cat -n textfile1 > textfile2 把 textfile1 的檔案內容加上行號後輸入 textfile2 這個檔案裏
cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的檔案內容加上行號(空白行不加)之後將內容附加到 textfile3 裏。
範例:
把 textfile1 的檔案內容加上行號後輸入 textfile2 這個檔案裏
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的檔案內容加上行號(空白行不加)之後將內容附加到 textfile3 裏。
cat -b textfile1 textfile2 >> textfile3
cat /dev/null > /etc/test.txt 此為清空/etc/test.txt檔案內容
cat 也可以用來制作 image file。例如要制作軟碟的 image file,將軟碟放好後打
cat /dev/fd0 > OUTFILE
3:tac命令,倒序顯示
tac: 從最後一行開始顯示,可以看出 tac 是 cat 的反向顯示!
4、head命令,可以指定顯示那些內容
語法:
[root @test /root ]# head [-n number] [檔名]
參數說明:
-n :顯示 number 行
說明:
head 的英文意思就是『頭』啦,那麽這個東東的用法自然就是顯示出一個檔案的前幾行啰!沒錯!就是這樣!若不加參數就默認輸出前面十行內容,不信自己操作一下,也可以自定義輸出的行數 那就加入『 head -n number filename 』即可!
比如我們顯示/etc/profile的前10行內容,應該是:# head -n 10 /etc/profile
5、tali命令,可以指定顯示那些內容
tail 是顯示一個文件的內容的後多少行;
用法比較簡單;
tail -n 行數值 文件名;
比如我們顯示/etc/profile的最後5行內容,應該是:
# tail -n 5 /etc/profile
6、less 與 more 類似,但是比 more 更好的是,他可以[pg dn][pg up]翻頁!
more ,less
其實這兩個命令有極大的相似之處都是分頁顯示檔案內容,但是區別也是有的,如下:
1)more:以百分比的形式分頁顯示,提示給用戶已經顯示了多少內容
less:沒有百分比的提示
2)less更加靈活,可用通過【page down】【page up】上翻下翻頁查看已經顯示出的內容,而more不具備
3)對less顯示出的內容中可以使用 /‘字符‘ 輸入需要查找的字符或者字符串並高亮顯示,而more 不具備
- nl
顯示檔案內容時輸出行號,跟cat -n類似的功能,也是全盤輸出
8.od
以二進制的方式讀取檔案內容。
0x4
值得一提的是,這次題目過濾了很多,但是vi沒有過濾,雖然將cat過濾為空,但是可以cacatt繞過,或者使用tac命令倒敘輸出。
linux讀文件命令繞過姿勢