標籤:des style io ar os 使用 for sp 檔案
#目錄與檔案操作 pwd ls cd mkdir cp mv rm file
/*{{{*/
一.pwd 顯示當前工作目錄所在絕對路徑(以/為起點表示的路徑)
eg:pwd
#選項-P顯示連結檔案路徑
二.ls 顯示目錄下檔案及目錄
可以帶參數,指定目錄或檔案
可不帶參數,顯示目前的目錄
eg:查看主目錄下workdir目錄的內容(~代表使用者主目錄)
ls ~/workdir
ls
#A.選項 -a 顯示所有檔案,包括隱藏檔案(以.開頭的檔案)
eg:(帶參數:指定目錄或檔案)查看主目錄下workdir目錄下所有檔案
ls -a /home/tim/workdir
eg:(不帶參數)查看目前的目錄下所有檔案及目錄
ls -a
#B.選項 -l 顯示檔案或目錄的屬性資訊,(僅解釋檔案大小,其它細節在檔案系統部分解釋)
eg:顯示目前的目錄下檔案及目錄的屬性資訊
ls -l
eg:顯示指定目錄或檔案的屬性資訊,注意可以帶多個參數!
ls -l /home/tim examples.desktop
#C.選項 -h 以K,M,G為單位顯示檔案大小,與-l一起用。
注意:bash下通過alias命名了l,la,ll。效果請自行測試
注意:幾個特別的目錄 . .. / ~ -
三.cd 切換工作目錄 關於檔案系統的路徑。絕對與相對
eg:不帶選項和參數,返回目前使用者的主目錄.
cd斷行符號
eg:切換到根目錄下的home目錄下
cd /home
eg:切換到上層目錄
cd ..
eg:切換到前一個目錄
cd -
eg:切換到上層目錄的上層目錄,從主目錄切換到根目錄.
cd ~
cd ../..
四.mkdir 建立空目錄
eg:目前的目錄下建立目錄dir
mkdir dir
eg:在/home/tim/workdir目錄下建立目錄dir
mkdir /home/tim/workdir/dir
#選項-p遞迴建立多層目錄
eg:在~下建立dir1/dir2/dir3
mkdir ~/dir1/dir2/dir3 -p
五.cp 拷貝源檔案或目錄到目標檔案或目錄,可實現備份
eg:將共用目錄下的檔案拷貝到主目錄下
cp /mnt/hgfs/share/jeffy-vim-v2.0.zip ~
eg:將主目錄下的jeff-vim-v2.0.zip 備份為jeffy-vim-v2.0_bak.zip
cp jeff-vim-v2.0.zip jeffy-vim-v2.0_bak.zip
#選項-a拷貝整個目錄內容
eg:將目錄jeffy-vim-v2.0拷貝到Desktop目錄下
cp jeffy-vim-v2.0 ~/Desktop -a
六.mv 移動源檔案或目錄到目標檔案或目錄,可實現重新命名
eg:將主目錄下的test.txt檔案移動到共用目錄下
vi test.txt
mv test.txt /mnt/hgfs/share
eg:將主目錄下的Videos目錄重新命名為MyVideos
mv Videos MyVideo
七.rm 刪除一個或多個檔案或目錄,物理刪除,不可恢複。-rf
eg:刪除在主目錄下jeffy-vim-v2.0_bak.zip
rm jeffy-vim-v2.0_bak.zip
#選項-rf強制移除檔案或目錄
eg:刪除主目錄下的dir目錄
rm -rf dir
八.file 查看檔案類型
eg:查看主目錄下test.c檔案類型
file test.c
eg:查看主目錄下shared檔案類型
file shared
/*}}}*/
練習:
/*{{{*/
如果/mnt/hgfs/目錄下沒有可用目錄,將共用目錄換為~/Videos
cp
2.將使用者主目錄下的passwd檔案備份為passwd-bak
cp
3.在使用者主目錄下建立目錄test_dir
mkdir
4.將passwd-bak移動到test_dir目錄下
mv
5.將test_dir目錄下的passwd-bak檔案改名為passwd
6.將test_dir目錄拷貝到你的共用目錄下
7.將共用目錄下的test_dir目錄改名為dir
8.刪除以上產生的檔案
/*}}}*/
#編輯與查看檔案內容 touch vi/vim cat more/less head/tail sort uniq diff
/*{{{*/
九.touch 可用於建立新檔案
eg:在主目錄下建立檔案test_touch
touch test_touch
十.vi / vim 建立或編輯
使用小技巧:
vi file +行號 開啟檔案時游標直接定位到指定行
vi file1 file2 -d 比較兩個檔案的差異
十一.cat 在標準輸出(顯示器)顯示檔案內容
eg:顯示主目錄下的檔案test.c
cat test.c
#選項-n 顯示檔案內容時顯示行號
eg:顯示主目錄下的檔案test.c同時顯示行號
cat -n test.c
十二.more/less 分屏顯示檔案
cat 顯示檔案時一次性全在螢幕上顯示出來了,查看前面內容不太方便,
more/less命令能解決這個問題
使用異同點
eg:分屏顯示檔案內容
more /etc/passwd
less /etc/passwd
相同操作方法
d鍵下翻頁,b鍵上翻頁
斷行符號下翻行,空格下翻頁
不同操作:less支援上下鍵,pagedown和pageup鍵上下翻行翻頁
顯示區別,more顯示當前顯示內容百分比。
退出按q鍵。
十三.head/tail 顯示檔案開頭/結尾
如果只想查看檔案開頭或最後幾行內容,可使用head/tail命令,預設顯示10行
eg:查看/etc/passwd檔案開頭10內容
head /etc/passwd
eg:查看/etc/passwd檔案結尾處10內容
tail /etc/passwd
#選項-num指定顯示內容的行數
eg:查看/etc/passwd檔案開頭20行內容
head -20 /etc/passwd
tail 用法類似
head與tail常與管道結合使用
十四.sort 按行排序從小到大顯示檔案內容,注意排序結果不會影響原檔案
顯示結果與語系相關,為了以ASCII碼值為結果使用LANG=C統一
可以通過echo $LANG查看
eg:排序查看檔案內容
vi test.c
每行寫入字元,數字,符號
sort test.c
#選項-r從大到小的順序排序顯示
eg:逆序排序查看檔案內容
sort -r test.c
#選項-n對數字排序時以數值結果排序,而不是ASCII碼值排序
eg:按數字數值排序
vi test
每行寫入數字
sort test
sort -n test
顯示區別
#選項-o指定排序結果輸出到檔案
eg:將test.c 排序結果寫回test.c
sort test.c -o test.c
十五.uniq顯示檔案內容,去掉相鄰重複的行
eg:顯示時重複相鄰行只顯示一行。
uniq test
十六、diff按行比較兩個檔案的不同,將兩具檔案中不同內容顯示出來
常用於程式新舊版本對比
eg:顯示sort1.c與sort2.c不同處
diff sort1.c sort2.c
顯示結果不直觀,建議用vim sort1.c sort2.c -d代替,直觀對比
顯示結果中a表示追加,d表示刪除,c表示更改,
<表示屬於第一個檔案,>表示屬於第二個檔案.
/*}}}*/
#尋找與搜尋 find grep
/*{{{*/
十七、find在目前的目錄下遞迴尋找檔案顯示路徑,即包括子目錄
用法:find -name filename
或find -name ‘filename‘
或find -name "filename"
eg:在目前的目錄(主目錄)下尋找test.c檔案
find -name test.c
用法:find 路徑 -name filename
eg:在workdir目錄下尋找test.c檔案
find ~/workdir -name test.c
十八、grep在檔案中尋找字串
eg:在/etc/passwd 檔案中尋找"tim"
grep "tim" /etc/passwd
#選項-n顯示字串所在行號
eg:在/etc/passwd檔案中尋找"tim",並顯示所在行號
grep "tim" /etc/passwd
eg:在目前的目錄下所有檔案中搜尋"main"(不包括子目錄)
grep "main" *
eg:在目前的目錄下所有檔案中搜尋"main"(包括子目錄)
grep "main" * -nR
#搜尋字串的匹配方式 ^ $
eg:尋找所有含有tim的字串
將/etc/passwd 拷貝到主錄目下
cp /etc/passwd ~
grep "tim" passwd
eg:尋找以tim開頭的字串
grep "^tim" passwd
eg:搜尋以tim結尾的字串
grep "tim$" passwd
eg:搜尋出只含"tim"的字串
grep "^tim$" passwd
/*}}}*/
#打包目錄與壓縮檔,(結合ppt 3 66頁) zip unzip gzip gunzip bzip2 bunzip2 tar
/*{{{*/
十九、zip對多個檔案進行壓縮,產生.zip尾碼名壓縮檔,unzip進行解壓縮
!用法:zip 壓縮包名.zip 檔案1 檔案2 ……
eg:將test.c test1.c test2.c 壓縮到test.zip檔案中
zip test.zip test.c test1.c test2.c
eg:將test.zip解壓到目前的目錄下
unzip test.zip
二十、gzip對一個檔案進行普通壓縮,不能對目錄壓縮
eg:將test.c壓縮成test.c.gz
gzip test.c
二十一、gunzip對gz格式壓縮檔解壓
eg:將test.c.gz解壓
gunzip test.c.gz
二十二、bzip2對一個檔案進行高比例壓縮,不能對目錄壓縮
eg:將test.c檔案壓縮為test.c.bz2
bzip2 test.c
二十三、bunzip2 對bz2格式壓縮檔進行解壓
eg:將test.c.bz2解壓
bunzip2 test.c.bz2
二十四、tar將多個檔案或目錄打包
#常用選項
-c 建立
-x 釋放
-z 處理gzip壓縮的tar包
-j 處理bzip2壓縮的tar包
-v 顯示詳細資料
-f 指定打包或解包的檔案,需放在選項最後
!用法
打包
eg:將jeffy-vim-v2.0打包產生jeffy-vim-v2.0.tar
tar -cvf jeffy-vim-v2.0.tar jeffy-vim-v2.0
解包
eg:將jeffy-vim-v2.0.tar解包
tar -xvf jeffy-vim-v2.0.tar
先打包,再使用gzip bzip2命令壓縮
tar -cvf jeffy-vim-v2.0.tar jeffy-vim-v2.0
gzip jeffy-vim-v2.0.tar <= 產生jeffy-vim-v2.0.tar.gz
或bzip2 jeffy-vim-v2.0.tar <= 產生jeffy-vim-v2.0.tar.bz2
直接打包並壓縮
以gzip壓縮 -czvf,尾碼.tar.gz 或.tgz
tar -czvf jeffy-vim-v2.0.tar.gz jeffy-vim-v2.0
tar -czvf jeffy-vim-v2.0.tgz jeffy-vim-v2.0
以bzip2壓縮 -cjvf ,尾碼.tar.bz2 或.tbz2
tar -cjvf jeffy-vim-v2.0.tar.bz2 jeffy-vim-v2.0
tar -cjvf jeffy-vim-v2.0.tbz2 jeffy-vim-v2.0
解壓縮並解包 -xvf,對gzip與bzip2處理的檔案均有效
tar -xvf jeffy-vim-v2.0.tar.bz2
tar -xvf jeffy-vim-v2.0.tbz2
tar -xvf jeffy-vim-v2.0.tgz
/*}}}*/
#其它命令 clear date echo which whereis man
/*{{{*/
二十五、clear 清屏
快速鍵 ctrl + l
二十六、date 查看日期及時間
eg:date
二十七、echo顯示一行文本,常用於顯示環境變數值
eg:顯示字串hello world!
echo "hello world!"
echo hello world!
注意區別,加""原樣輸出,否則算多個字串輸出
eg:顯示環境變是LANG的值,注意查看環境變數需要加$
echo $LANG
二十八、which 尋找命令所在路徑
eg:尋找ls 所在路徑
which ls
二十九、whereis 尋找命令所在路徑,源,man手冊檔案所在位置
whereis ls
三十、man 查協助手冊
eg:查ASCII碼錶
man ascii
eg:查whereis 命令協助頁
man whereis
eg:查函數strcmp
/*}}}*/
#系統維護命令 sudo su passwd shutdown
/*{{{*/
三十一、sudo以超級使用者身份執行一條命令
eg:查看系統下存放帳號密碼檔案內容,需超級使用者權限
$cat /etc/shadow
$cat: /etc/shadow:Permission denied
$sudo cat /etc/shadow
$[sudo]password for tim: <=輸入tim使用者的密碼,注意密碼不會回顯!
三十二、su臨時切換使用者
eg:切換到root使用者
su
Passwd: <=輸入root使用者密碼!
exit可退出切換的使用者
eg:切換到root使用者,並切換到root主目錄/root
su -
Passwd: <=輸入root使用者密碼
注意如果第一次切換root使用者可能會提示密碼錯誤
三十三、修改密碼passwd
eg:修改tim使用者密碼
sudo passwd tim <=加sudo 是可以設定短密碼
eg:修改root密碼
sudo passwd root
三十四、shutdown關機命令
eg:5分鐘後關機
sudo shutdown +5
eg:立即關機
sudo shutdown -h now
eg:立即重啟
sudo shutdown -r now
sudo reboot
/*}}}*/
#使用者管理 adduser deluser
/*{{{*/
三十五、adduser添加使用者,會要求輸入新使用者密碼,全名,
並在/home目錄下建立新使用者主目錄
eg:sudo adduser max <=輸入目前使用者密碼
三十六、deluser刪除使用者
eg:刪除使用者max
sudo deluser max
#選項--remove-home,刪除使用者同時刪除該使用者主目錄
eg:sudo deluser --remove-home max
/*}}}*/
剩下命令
du df mount umount ln "ls -l" chmod chown chgrp ps kill
Linux的基本命令