linux小命令

基本文件和目錄操作

日常的文件的操作有 文件的copy, move, rename, remove 等操作。
1)復(fù)制文件目錄(復(fù)制指定目錄下的全部文件到另一個(gè)目錄中)
$ cp -r dir1 dir2(復(fù)制源目錄為dir1, 目標(biāo)目錄為dir2, -r是遞歸把源目錄下的目錄遞歸的進(jìn)行移動(dòng), dir2不存在的話自動(dòng)創(chuàng)建)
$ cp -r dir1/* dir2(源目錄/* 中*代表源目錄下的文件和文件夾, dir2存在的情況下使用)
$ cp file1 file2

2)移動(dòng)文件目錄
$ mv dir1 Desktop/dir1

3)重命名文件目錄
$ mv file1 file2
$ mv dir1 dir2

4)刪除文件目錄
$ rm file
$ rm -r dir

5)創(chuàng)建文件目錄
$ mkdir dir
$ touch file
$ >file
$ vim file
編輯模式的操作
【i】 從目前光標(biāo)所在處插入
【a】 從當(dāng)前光標(biāo)所在的下一個(gè)字符處開始插入
【A】 從光標(biāo)所在行的最后一個(gè)字符處開始插入
【o】 英文小寫字母o,在目前光標(biāo)所在行的下一行處插入新的一行并開始插入
【O】 英文大寫字母O,在目前光標(biāo)所在行的上一行處插入新的一行并開始插入
替換模式
【r】 只會(huì)替換光標(biāo)所在的那一個(gè)字符一次
【R】 會(huì)一直替換光標(biāo)所在字符,直到按下[ESC]鍵為止
【[ESC]】 退出編輯模式回到一般模式
命令行模式
【:w】 保存文件
【:w!】 若文件為只讀,強(qiáng)制保存文件
【:q】 離開vi
【:q!】 不保存強(qiáng)制離開vi
【:wq】 保存后離開
【:wq!】 強(qiáng)制保存后離開

6)查看文件內(nèi)容
$ cat file # 適合比較短的文件
$ less file # 有快捷鍵,可以看比較長的文件
b 向后翻一頁
d 向后翻半頁
h 顯示幫助界面
Q 退出less 命令
u 向前滾動(dòng)半頁
y 向前滾動(dòng)一行
空格鍵 滾動(dòng)一行
回車鍵 滾動(dòng)一頁

7)查看文件類型 file
$ file file1
$ file dir1

8)查看文件大小
$ du -k file (-k以1024 bytes為單位)
$ du -m file (-m:多少字符)

9)文件打包(zip,tar,gzip,bzip2)
壓縮
$ zip -r x.zip x/(-r表示遞歸打包包含子目錄的全部內(nèi)容)
解壓縮
$ unzip x.zip

$tar -cvf dir1.tar. (在當(dāng)前目錄下壓縮為dir1.tar壓縮包)
$gzip dir1.tar (壓縮為dir1.tar.gz文件)

$ tar -zxvf xxx.tar.gz (解壓縮文件)
$ tar -zcvf xxx.tar.gz xxx/

$tar -cvf dir1.tar . (在當(dāng)前目錄下壓縮為dir1.tar壓縮包)
$bzip2 dir1.tar(壓縮為dir1.tar.bz2文件)
$ tar -jxvf xxx.tar.bz2
$ tar -jcvf xxx.tar.bz2 xxx/

重定向
$cat file1 >file (將file1中的內(nèi)容添加到file文件中)

$ cat file2 >file (file2中的內(nèi)容添加到file文件中,但是file文件中以前的內(nèi)容被覆蓋)

$ cat file2 >> file (以前文件里的內(nèi)容不會(huì)被覆蓋)

$ cat file1 file2 >>file (將兩個(gè)文件都輸出到file文件中)

$ ls shit 2>output.txt (2為標(biāo)準(zhǔn)錯(cuò)誤輸出的文件描述符)

管道線
更多的時(shí)候,我們希望把前一個(gè)程序的輸出作為后一個(gè)程序的輸入來使用。
$ command1 | command2 |command3

舉個(gè)例子

$ cat file.txt
d.txt
a.txt
c.html
b.txt
b.txt

查看file.txt文件的內(nèi)容,接著去除內(nèi)容里面重復(fù)的內(nèi)容(使用uniq命令),只保留txt文件 (使用grep),然后按文件名字字母順序排序,并輸出到output.txt文件。
$cat file.txt|uniq |grep txt |sort >output.txt

權(quán)限
用戶對文件通常會(huì)涉及"讀","寫", "執(zhí)行"三種權(quán)限,對ls同一文件的權(quán)限控制,是對于所有者,組,其他用戶。
$ ls -l a.txt
-rw-rw-r-- 1 peter peter 0 Aug 30 11:57 a.txt
-是文件類型的,表示普通文件。接下來的rw-是只所有者對文件是否具有讀,寫,執(zhí)行的權(quán)限,r表示有讀權(quán)限,w表示有寫權(quán)限,-表示沒有執(zhí)行權(quán)限。接下來的rw-表示組的讀寫執(zhí)行的權(quán)限,r--表示其他用戶的權(quán)限。

對目錄查看權(quán)限。
$ ls -ld mydir

修改文件的權(quán)限
chmod rw-rw-rw- a.txt (這個(gè)命令系統(tǒng)不認(rèn))
chmod 110110110 a.txt (這個(gè)命令系統(tǒng)也不認(rèn))
chmod 666 a.txt (成功給a.txt文件修改了權(quán)限)
所以文件的權(quán)限最后需要化為八進(jìn)制表示。

同時(shí)我們也可以通過英文字符作為參數(shù)給文件賦予權(quán)限。
$ vim peter.sh
$ ./peter.sh (執(zhí)行文件)
=>Permission denied.$ chmod +x peter.sh(賦予執(zhí)行的權(quán)限)$ ./peter.sh`
=>hello peter

$chmod -x pter.sh (去除執(zhí)行的權(quán)限)

其他形式的
$ chmod +w file
$ chmod -w file
$ chmod a+x file (a 所有用戶)
$ chmod u+x file (u 文件的所有者)

進(jìn)程
$man ps (報(bào)告系統(tǒng)當(dāng)前的進(jìn)程狀態(tài))

$ ps aux (查看系統(tǒng)當(dāng)前的所有進(jìn)程)
$ ps aux|less(內(nèi)容太多,用less來做分頁器,從開頭查看)
root 28185 0.0 0.0 102964 1580 ? Ss 18:08 0:00 /sbin/lvmetad -f
第一個(gè)字段為那個(gè)用戶執(zhí)行這個(gè)進(jìn)程 ,第二個(gè)PID就是我們要的進(jìn)程號(hào)了。

$ ps aux|grep vim (查找vim進(jìn)程)

$kill 2345 (殺死進(jìn)程,2345為進(jìn)程號(hào))

后臺(tái)執(zhí)行

$ firefox & (啟動(dòng)firefox, 直接后臺(tái)啟動(dòng))

$firefox (前臺(tái)啟動(dòng),當(dāng)前shell就會(huì)一直被占據(jù))

如果想要程序在后臺(tái)執(zhí)行,先Ctrl-z將它掛起,然后
$bg
想要程序重新回到前臺(tái),就是當(dāng)前的shell,
$ fg
可以用Ctrl-C 來關(guān)閉

kill進(jìn)程
如果一個(gè)進(jìn)程在shell的前臺(tái)執(zhí)行,可以直接用Ctrl-C來關(guān)閉
還可以用
$kill PID
$ killall program_name

如果程序殺不死,則可以用
$kill -9 PID強(qiáng)行殺死

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容