目錄
- mkdir命令語法
- 命令格式
- 命令功能
- 命令參數
- mkdir命令示例
- 實例1:創建一個空目錄
- 實例2:遞歸創建多個目錄
- 實例3:創建權限為777的目錄
- 實例4:創建新目錄都顯示信息
- 實例五:一個命令創建項目的目錄結構
- cat命令語法
- 命令格式
- 命令功能
- 命令參數
- cat命令示例
- 實例一:把 log2012.log 的文件內容加上行號后輸入 log2013.log 這個文件里
- 實例二:把 log2012.log 和 log2013.log 的文件內容加上行號(空白行不加)之后將內容附加到 log.log 里。
- 實例三:使用here doc來生成文件
- touch命令語法
- 命令格式
- 命令參數
- 命令功能
- touch命令示例
- 實例一:創建不存在的文件
- vi與vim的區別
- vi/vim 的使用
- 命令模式:
- 輸入模式
- 底線命令模式
- vi/vim 使用實例
- 使用 vi/vim 進入一般模式
- 按下 ESC 按鈕回到一般模式
- 在一般模式中按下 :wq 儲存后離開 vi
mkdir命令語法
linux mkdir 命令用來創建指定的名稱的目錄,要求創建目錄的用戶在當前目錄中具有寫權限,并且指定的目錄名不能是當前目錄中已有的目錄。
命令格式
mkdir [選項] 目錄…
命令功能
通過 mkdir 命令可以實現在指定位置創建以 DirName(指定的文件名)命名的文件夾或目錄。
要創建文件夾或目錄的用戶必須對所創建的文件夾的父文件夾具有寫權限。
并且,所創建的文件夾(目錄)不能與其父目錄(即父文件夾)中的文件名重名,即同一個目錄下不能有同名的(區分大小寫)。
命令參數
- -m, –mode=模式,設定權限<模式> (類似 chmod),而不是 rwxrwxrwx 減 umask
- -p, –parents 可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項后,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄;
- -v, –verbose 每次創建新目錄都顯示信息
- –help 顯示此幫助信息并退出
- –version 輸出版本信息并退出
mkdir命令示例
實例1:創建一個空目錄
命令:
mkdir test1
輸出:
[root@localhost soft]# cd test [root@localhost test]# mkdir test1 [root@localhost test]# ll 總計 4drwxr-xr-x 2 root root 4096 10-25 17:42 test1 [root@localhost test]#
實例2:遞歸創建多個目錄
命令:
mkdir -p test2/test22
輸出:
[root@localhost test]# mkdir -p test2/test22 [root@localhost test]# ll 總計 8drwxr-xr-x 2 root root 4096 10-25 17:42 test1 drwxr-xr-x 3 root root 4096 10-25 17:44 test2 [root@localhost test]# cd test2/ [root@localhost test2]# ll 總計 4drwxr-xr-x 2 root root 4096 10-25 17:44 test22 [root@localhost test2]#
實例3:創建權限為777的目錄
命令:
mkdir -m 777 test3
輸出:
[root@localhost test]# mkdir -m 777 test3 [root@localhost test]# ll 總計 12drwxr-xr-x 2 root root 4096 10-25 17:42 test1 drwxr-xr-x 3 root root 4096 10-25 17:44 test2 drwxrwxrwx 2 root root 4096 10-25 17:46 test3 [root@localhost test]#
說明:
test3 的權限為rwxrwxrwx
實例4:創建新目錄都顯示信息
命令:
mkdir -v test4
輸出:
[root@localhost test]# mkdir -v test4 mkdir: 已創建目錄 “test4” [root@localhost test]# mkdir -vp test5/test5-1 mkdir: 已創建目錄 “test5” mkdir: 已創建目錄 “test5/test5-1” [root@localhost test]#
實例五:一個命令創建項目的目錄結構
命令:
mkdir -vp scf/{lib/,bin/,doc/{info,product},logs/{info,product},service/deploy/{info,product}}
輸出:
[root@localhost test]# mkdir -vp scf/{lib/,bin/,doc/{info,product},logs/{info,product},service/deploy/{info,product}} mkdir: 已創建目錄 “scf” mkdir: 已創建目錄 “scf/lib” mkdir: 已創建目錄 “scf/bin” mkdir: 已創建目錄 “scf/doc” mkdir: 已創建目錄 “scf/doc/info” mkdir: 已創建目錄 “scf/doc/product” mkdir: 已創建目錄 “scf/logs” mkdir: 已創建目錄 “scf/logs/info” mkdir: 已創建目錄 “scf/logs/product” mkdir: 已創建目錄 “scf/service” mkdir: 已創建目錄 “scf/service/deploy” mkdir: 已創建目錄 “scf/service/deploy/info” mkdir: 已創建目錄 “scf/service/deploy/product” [root@localhost test]# tree scf/ scf/ |-- bin |-- doc | |-- info | `-- product |-- lib |-- logs | |-- info | `-- product `-- service `-- deploy |-- info `-- product 12 directories, 0 files [root@localhost test]#
cat命令語法
cat命令的用途是連接文件或標準輸入并打印。這個命令常用來顯示文件內容,或者將幾個文件連接起來顯示,或者從標準輸入讀取內容并顯示,它常與重定向符號配合使用。
命令格式
cat [選項] [文件]…
命令功能
cat主要有三大功能:
- 一次顯示整個文件:cat filename
- 從鍵盤創建一個文件:cat > filename 只能創建新文件,不能編輯已有文件.
- 將幾個文件合并為一個文件:cat file1 file2 > file
命令參數
-A, --show-all 等價于 -vET -b, --number-nonblank 對非空輸出行編號 -e 等價于 -vE -E, --show-ends 在每行結束處顯示 $ -n, --number 對輸出的所有行編號,由1開始對所有輸出的行數編號 -s, --squeeze-blank 有連續兩行以上的空白行,就代換為一行的空白行 -t 與 -vT 等價 -T, --show-tabs 將跳格字符顯示為 ^I -u (被忽略) -v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
cat命令示例
實例一:把 log2012.log 的文件內容加上行號后輸入 log2013.log 這個文件里
命令:
cat -n log2012.log log2013.log
輸出:
[root@localhost test]# cat log2012.log 2012-01 2012-02 ======[root@localhost test]# cat log2013.log 2013-01 2013-02 2013-03 ======[root@localhost test]# cat -n log2012.log log2013.log 1 2012-01 2 2012-02 3 4 5 ====== 6 2013-01 7 2013-02 8 9 10 2013-03 11 ======[root@localhost test]#
說明:
實例二:把 log2012.log 和 log2013.log 的文件內容加上行號(空白行不加)之后將內容附加到 log.log 里。
命令:
cat -b log2012.log log2013.log log.log
輸出:
[root@localhost test]# cat -b log2012.log log2013.log log.log 1 2012-01 2 2012-02 3 ====== 4 2013-01 5 2013-02 6 2013-03 7 ======[root@localhost test]#
實例三:使用here doc來生成文件
輸出:
[root@localhost test]# cat >log.txt <<EOF > Hello > World > Linux > PWD=$(pwd) > EOF [root@localhost test]# ls -l log.txt -rw-r–r-- 1 root root 37 10-28 17:07 log.txt [root@localhost test]# cat log.txt Hello World Linux PWD=/opt/soft/test [root@localhost test]#
說明:
注意粗體部分,here doc可以進行字符串替換。
備注:
tac (反向列示)
命令:
tac log.txt
輸出:
[root@localhost test]# tac log.txt PWD=/opt/soft/test Linux World Hello
說明:
tac 是將 cat 反寫過來,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行連續顯示在螢幕上,而 tac 則是由最后一行到第一行反向在螢幕上顯示出來!
touch命令語法
linux的touch命令不常用,一般在使用make的時候可能會用到,用來修改文件時間戳,或者新建一個不存在的文件。
命令格式
touch [選項]… 文件…
命令參數
- -a 或–time=atime或–time=access或–time=use 只更改存取時間。
- -c 或–no-create 不建立任何文檔。
- -d 使用指定的日期時間,而非現在的時間。
- -f 此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題。
- -m 或–time=mtime或–time=modify 只更改變動時間。
- -r 把指定文檔或目錄的日期時間,統統設成和參考文檔或目錄的日期時間相同。
- -t 使用指定的日期時間,而非現在的時間。
命令功能
touch命令參數可更改文檔或目錄的日期時間,包括存取時間和更改時間。
touch命令示例
實例一:創建不存在的文件
命令:
touch log2012.log log2013.log
輸出:
[root@localhost test]# touch log2012.log log2013.log [root@localhost test]# ll -rw-r--r-- 1 root root 0 10-28 16:01 log2012.log -rw-r--r-- 1 root root 0 10-28 16:01 log2013.log
如果log2014.log不存在,則不創建文件
[root@localhost test]# touch -c log2014.log [root@localhost test]# ll -rw-r--r-- 1 root root 0 10-28 16:01 log2012.log -rw-r--r-- 1 root root 0 10-28 16:01 log2013.log
實例二:更新log.log的時間和log2012.log時間戳相同
命令:
touch -r log.log log2012.log
輸出:
[root@localhost test]# ll -rw-r--r-- 1 root root 0 10-28 16:01 log2012.log -rw-r--r-- 1 root root 0 10-28 16:01 log2013.log -rw-r--r-- 1 root root 0 10-28 14:48 log.log [root@localhost test]# touch -r log.log log2012.log [root@localhost test]# ll -rw-r--r-- 1 root root 0 10-28 14:48 log2012.log -rw-r--r-- 1 root root 0 10-28 16:01 log2013.log -rw-r--r-- 1 root root 0 10-28 14:48 log.log
實例三:設定文件的時間戳
命令:
touch -t 201211142234.50 log.log
輸出:
[root@localhost test]# ll -rw-r--r-- 1 root root 0 10-28 14:48 log2012.log -rw-r--r-- 1 root root 0 10-28 16:01 log2013.log -rw-r--r-- 1 root root 0 10-28 14:48 log.log [root@localhost test]# touch -t 201211142234.50 log.log [root@localhost test]# ll -rw-r--r-- 1 root root 0 10-28 14:48 log2012.log -rw-r--r-- 1 root root 0 10-28 16:01 log2013.log -rw-r--r-- 1 root root 0 2012-11-14 log.log
說明:
-t time 使用指定的時間值 time 作為指定文件相應時間戳記的新值.此處的 time規定為如下形式的十進制數:
[[CC]YY]MMDDhhmm[.SS]
這里,CC為年數中的前兩位,即”世紀數”;
YY為年數的后兩位,即某世紀中的年數.如果不給出CC的值,則touch 將把年數CCYY限定在1969–2068之內.
MM為月數,DD為天將把年數CCYY限定在1969–2068之內.
MM為月數,DD為天數,hh 為小時數(幾點),mm為分鐘數,SS為秒數.
此處秒的設定范圍是0–61,這樣可以處理閏秒.
這些數字組成的時間是環境變量TZ指定的時區中的一個時 間.
由于系統的限制,早于1970年1月1日的時間是錯誤的。
vi與vim的區別
vi編輯器是所有Unix及Linux系統下標準的編輯器,他就相當于windows系統中的記事本一樣,它的強大不遜色于任何最新的文本編輯器。
它是我們使用Linux系統不能缺少的工具。
由于對Unix及Linux系統的任何版本,vi編輯器是完全相同的,學會它后,您將在Linux的世界里暢行無阻。
vim 具有程序編輯的能力,可以以字體顏色辨別語法的正確性,方便程序設計;因為程序簡單,編輯速度相當快速。
vim可以當作vi的升級版本,他可以用多種顏色的方式來顯示一些特殊的信息。
vim會依據文件擴展名或者是文件內的開頭信息, 判斷該文件的內容而自動的執行該程序的語法判斷式,再以顏色來顯示程序代碼與一般信息。
vim里面加入了很多額外的功能,例如支持正則表達式的搜索、多文件編輯、塊復制等等。 這對于我們在Linux上進行一些配置文件的修改工作時是很棒的功能。
vi/vim 的使用
基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)。
這三種模式的作用分別是:
命令模式:
用戶剛剛啟動 vi/vim,便進入了命令模式。
此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字符。
比如我們此時按下i,并不會輸入一個字符,i被當作了一個命令。
以下是常用的幾個命令:
- i 切換到輸入模式,以輸入字符。
- x 刪除當前光標所在處的字符。
- : 切換到底線命令模式,以在最底一行輸入命令。
若想要編輯文本:啟動Vim,進入了命令模式,按下i,切換到輸入模式。
命令模式只有一些最基本的命令,因此仍要依靠底線命令模式輸入更多命令。
輸入模式
在命令模式下按下i就進入了輸入模式。
在輸入模式中,可以使用以下按鍵:
- 字符按鍵以及Shift組合,輸入字符
- ENTER,回車鍵,換行
- BACK SPACE,退格鍵,刪除光標前一個字符
- DEL,刪除鍵,刪除光標后一個字符
- 方向鍵,在文本中移動光標
- HOME/END,移動光標到行首/行尾
- Page Up/Page Down,上/下翻頁
- Insert,切換光標為輸入/替換模式,光標將變成豎線/下劃線
- ESC,退出輸入模式,切換到命令模式
底線命令模式
在命令模式下按下:(英文冒號)就進入了底線命令模式。
底線命令模式可以輸入單個或多個字符的命令,可用的命令非常多。
在底線命令模式中,基本的命令有(已經省略了冒號):
- q 退出程序
- w 保存文件
按ESC鍵可隨時退出底線命令模式。
簡單的說,我們可以將這三個模式想成底下的圖標來表示:
vi/vim 使用實例
使用 vi/vim 進入一般模式
如果你想要使用 vi 來建立一個名為 runoob.txt 的文件時,你可以這樣做:
$ vim runoob.txt
直接輸入 vi 文件名 就能夠進入 vi 的一般模式了。請注意,記得 vi 后面一定要加文件名,不管該文件存在與否!
按下 i 進入輸入模式(也稱為編輯模式),開始編輯文字
在一般模式之中,只要按下 i, o, a 等字符就可以進入輸入模式了!
在編輯模式當中,你可以發現在左下角狀態欄中會出現 –INSERT- 的字樣,那就是可以輸入任意字符的提示。
這個時候,鍵盤上除了 Esc 這個按鍵之外,其他的按鍵都可以視作為一般的輸入按鈕了,所以你可以進行任何的編輯。
按下 ESC 按鈕回到一般模式
好了,假設我已經按照上面的樣式給他編輯完畢了,那么應該要如何退出呢?是的!沒錯!就是給他按下 Esc 這個按鈕即可!馬上你就會發現畫面左下角的 – INSERT – 不見了!
在一般模式中按下 :wq 儲存后離開 vi
OK,我們要存檔了,存盤并離開的指令很簡單,輸入 :wq 即可保存離開!
OK! 這樣我們就成功創建了一個 runoob.txt 的文件。