linux100個(gè)必備知識(shí) 怎樣在Linux下編程?需要什么技術(shù)?
怎樣在Linux下編程?需要什么技術(shù)?由于某些特殊的歷史原因,國(guó)內(nèi)開(kāi)發(fā)者還是以Windows系統(tǒng)為主,這跟國(guó)外在Unix哲學(xué)下成長(zhǎng)起來(lái)的開(kāi)發(fā)者群體不一樣。不過(guò)這兩年Linux在國(guó)內(nèi)開(kāi)發(fā)者群體中的歡迎程
怎樣在Linux下編程?需要什么技術(shù)?
由于某些特殊的歷史原因,國(guó)內(nèi)開(kāi)發(fā)者還是以Windows系統(tǒng)為主,這跟國(guó)外在Unix哲學(xué)下成長(zhǎng)起來(lái)的開(kāi)發(fā)者群體不一樣。
不過(guò)這兩年Linux在國(guó)內(nèi)開(kāi)發(fā)者群體中的歡迎程度越愛(ài)越高,要知道連Windows10都有了Ubuntu/Debian/fedora等Linux發(fā)行版作為Windows10的Linux子系統(tǒng),那么想要在Linux下編程,需要掌握哪些知識(shí)呢?
為什么要在Linux下開(kāi)發(fā)?二十年前你在Linux上學(xué)習(xí)的編程知識(shí),基本上現(xiàn)在還能用,不過(guò)五年前你在windows上學(xué)習(xí)的編程知識(shí),也許大部分現(xiàn)在已經(jīng)用不了了。
絕大多數(shù)服務(wù)器環(huán)境都是運(yùn)行Linux操作系統(tǒng),大部分開(kāi)發(fā)者寫(xiě)的程序,最終都是要在Linux服務(wù)器上運(yùn)行的;絕大多數(shù)的開(kāi)源軟件會(huì)優(yōu)先適配Linu臺(tái);很大比例的第三方庫(kù)只會(huì)登陸Linu臺(tái)。Linux開(kāi)源、免費(fèi)、高效,Linux能夠給你最大的可能性,Linux給了你一大堆最為原始的工具,你可以用這些工具組合成專(zhuān)屬于你自己的高效工具庫(kù)。
Linux下各種開(kāi)源環(huán)境應(yīng)有盡有,各種shell拿來(lái)就可以用,跟Unix保持了很好的血緣關(guān)系,Lisp/Python/Java/C/C /PHP/Ruby等各種各樣的環(huán)境拿來(lái)就可以用。
visual studio是銀河系最好的繼承開(kāi)發(fā)環(huán)境,但是Windows卻沒(méi)有因此成為最強(qiáng)的開(kāi)發(fā)者生態(tài)。
Linux編程需要掌握哪些知識(shí)想要在Linux下熟練編程,你必須要學(xué)很多專(zhuān)業(yè)技能。
熟悉Linux命令
Linux的精華是命令行,你必須熟練使用命令行進(jìn)行日常的工作、學(xué)習(xí),Linux上有各種各樣的shell命令,bash、sh等命令應(yīng)有盡有。
你還得熟悉在Linux上通過(guò)命令行安裝軟件、搭建開(kāi)發(fā)環(huán)境、完成文件管理,對(duì)于代碼調(diào)試、編譯等等。
熟練使用vim/emacs
在Linux編程世界里,不會(huì)使用emacs和vim是可怕的。
emacs號(hào)稱(chēng)是“神之編輯器”,vim則被稱(chēng)為“編輯器之神”,這兩款文本編輯器都是Linux下開(kāi)發(fā)者的重要編程工具,豐富的插件讓這兩款編輯器非常強(qiáng)大。
看一些Linux的書(shū)籍
《鳥(niǎo)哥Linux私房菜》、《深入理解Linux內(nèi)核》、《Unix環(huán)境高級(jí)編程》、《Unix網(wǎng)絡(luò)編程》、《Linux程序設(shè)計(jì)》、《深入理解Linux內(nèi)核》等,這些都是Linux/Unix下的經(jīng)典書(shū)籍。
你最常用的一個(gè)linux命令是什么?為什么?
1、顯示目錄和文件的命令
Ls:用于查看所有文件夾的命令。
Dir:用于顯示指定文件夾和目錄的命令 Tree: 以樹(shù)狀圖列出目錄內(nèi)容
Du:顯示目錄或文件大小
2、修改目錄,文件權(quán)限和屬主及數(shù)組命令
Chmod:用于改變指定文件的權(quán)限命令。
Chown:用于改變文件擁有屬性的命令。
3、創(chuàng)建和刪除目錄的命令
Mkdir:用于創(chuàng)建目錄
Touch:創(chuàng)建一個(gè)新的文件
Vi:創(chuàng)建一個(gè)新的文件
Rm:刪除文件或目錄
Cp:復(fù)制命令
4、顯示文件內(nèi)容的命令
Cat:用于顯示指定文件的全部?jī)?nèi)容
More:用分頁(yè)的形式顯示指定文件的內(nèi)容
Less:用分頁(yè)的形式顯示指定文件的內(nèi)容,區(qū)別是more和less翻頁(yè)使用的操作鍵不同。
Head:用于顯示文件的前n行內(nèi)容。
Tail:用于顯示文件的后n行內(nèi)容。
Tail -f:用于自動(dòng)刷新的顯示文件后n行數(shù)據(jù)內(nèi)容。
5、查找命令
Find:查找指定的文件。
Which:用于查詢命令或別名的位置。
Locate:快速查找系統(tǒng)數(shù)據(jù)庫(kù)中指定的內(nèi)容。
Grep:查找文件里符合條件的字符串。
6、關(guān)機(jī)和重啟計(jì)算機(jī)的命令
Shutdown:-r 關(guān)機(jī)后立即重啟
Poweroff:用于關(guān)機(jī)和關(guān)閉電源
Reboot: 用于計(jì)算機(jī)重啟
7、壓縮和打包命令
Tar:用于多個(gè)文件或目錄進(jìn)行打包,但不壓縮,同時(shí)也用命令進(jìn)行解包
Gzip:用于文件進(jìn)行壓縮和解壓縮命令,文件擴(kuò)展名為.gz結(jié)尾。
Gunzip:用于對(duì)gzip壓縮文檔進(jìn)行解壓縮。
Bzip2:用于對(duì)文件或目錄進(jìn)行壓縮和解壓縮
Compress/un compr:壓縮解壓縮.zip文件
8、用戶操作命令
Su:切換用戶命令
Sudo:一系統(tǒng)管理員的身份執(zhí)行命令
Passwd:用于修改用戶的密碼
9、改變目錄和查看當(dāng)前目錄命令
Cd:進(jìn)入工作目錄
Cd..:會(huì)退到上一級(jí)命令
Pwd:顯示當(dāng)前用戶所在工作目錄位置
10、vi編輯器
首先用vi命令打開(kāi)一個(gè)文件
末行模式命令:
:n,m w path/fil:q! 對(duì)文件做過(guò)修改后,強(qiáng)制退出
:q 沒(méi)有對(duì)文件做過(guò)修改退出
Wq或x 保存退出
dd 刪除光標(biāo)所在行
: s:s/t: 逐行顯示且列出詳細(xì)屬性
-a: 列出所有文件包括以.開(kāi)頭的隱藏文件
cat 讀取文本內(nèi)容
-n: 顯示行號(hào)
-b: 顯示行號(hào)且忽略空行
cat -n 1.txt
wc 計(jì)數(shù)
-l: 行數(shù)
-w: 字?jǐn)?shù)
-c: 字符數(shù)
wc -l file1 file2 ......可以統(tǒng)計(jì)多個(gè)文件
cp 拷貝文件 目錄
-i: 交互模式,如果目標(biāo)文件存在,則詢問(wèn)是否覆蓋
-r: 拷貝目錄
cp file1 file2 file3.... dir 表示將file1,file2...拷貝到dir
cp -r dir1 dir2 dir3... dirn 將dir1, dir2,dir3...拷貝到dirn
fil: 交互模式,如果目標(biāo)文件存在,則詢問(wèn)是否覆蓋
-r: 移動(dòng)目錄,跟改目錄名
rm 刪除文件
-i: 交互模式,詢問(wèn)是否刪除
rm -r dir1 dir2 dir3...可刪除多個(gè)
mkdir 創(chuàng)建目錄
-p: parent,父目錄不存在,則創(chuàng)建父目錄
mkdir -p test/test
rmdir 刪除目錄
等同與rm -r
rmdir dir1 dir2 dir3 ....
rm -r dir1 dir2 dir3 ....
chmod 更改權(quán)限
chmod -R 777 DIR改變目錄下所有文件權(quán)限為777,必須是-R
權(quán)限 -rwxrwxrwx
421421421第一位-表示文件類(lèi)型為普通文件,后三位表示所有者權(quán)限,后三位表示組權(quán)限,后三位表示其他用戶權(quán)限。如果一項(xiàng)權(quán)利未被分配,則用-。-rwxr-rwx表示該組沒(méi)有寫(xiě)入和執(zhí)行文件的權(quán)限,但它表示是否允許在該目錄中找到文件kill-9以強(qiáng)制結(jié)束更多的顯示文本內(nèi)容,一次一屏。按空格鍵繼續(xù)查找/-name *。sh | Moretail顯示指定位置tail -f server.log中的以下內(nèi)容,用于查看在服務(wù)器tail -10上運(yùn)行時(shí)的日志,并查看最后10行。頭尾對(duì)應(yīng)壓縮-f壓縮文件-v顯示壓縮比compressed-VF。project.tar將生成項(xiàng)目。t. Ar。z和project.tar被刪除。uncompress -f解壓后的文件uncompress project.tar.Z會(huì)生成project.tar,project.tar.Z會(huì)被刪除。