linux100個(gè)必備知識(shí) 怎樣在Linux下編程?需要什么技術(shù)?
怎樣在Linux下編程?需要什么技術(shù)?由于某些特殊的歷史原因,國(guó)內(nèi)開發(fā)者還是以Windows系統(tǒng)為主,這跟國(guó)外在Unix哲學(xué)下成長(zhǎng)起來的開發(fā)者群體不一樣。不過這兩年Linux在國(guó)內(nèi)開發(fā)者群體中的歡迎程
怎樣在Linux下編程?需要什么技術(shù)?
由于某些特殊的歷史原因,國(guó)內(nèi)開發(fā)者還是以Windows系統(tǒng)為主,這跟國(guó)外在Unix哲學(xué)下成長(zhǎng)起來的開發(fā)者群體不一樣。
不過這兩年Linux在國(guó)內(nèi)開發(fā)者群體中的歡迎程度越愛越高,要知道連Windows10都有了Ubuntu/Debian/fedora等Linux發(fā)行版作為Windows10的Linux子系統(tǒng),那么想要在Linux下編程,需要掌握哪些知識(shí)呢?
為什么要在Linux下開發(fā)?二十年前你在Linux上學(xué)習(xí)的編程知識(shí),基本上現(xiàn)在還能用,不過五年前你在windows上學(xué)習(xí)的編程知識(shí),也許大部分現(xiàn)在已經(jīng)用不了了。
絕大多數(shù)服務(wù)器環(huán)境都是運(yùn)行Linux操作系統(tǒng),大部分開發(fā)者寫的程序,最終都是要在Linux服務(wù)器上運(yùn)行的;絕大多數(shù)的開源軟件會(huì)優(yōu)先適配Linu臺(tái);很大比例的第三方庫只會(huì)登陸Linu臺(tái)。Linux開源、免費(fèi)、高效,Linux能夠給你最大的可能性,Linux給了你一大堆最為原始的工具,你可以用這些工具組合成專屬于你自己的高效工具庫。
Linux下各種開源環(huán)境應(yīng)有盡有,各種shell拿來就可以用,跟Unix保持了很好的血緣關(guān)系,Lisp/Python/Java/C/C /PHP/Ruby等各種各樣的環(huán)境拿來就可以用。
visual studio是銀河系最好的繼承開發(fā)環(huán)境,但是Windows卻沒有因此成為最強(qiáng)的開發(fā)者生態(tài)。
Linux編程需要掌握哪些知識(shí)想要在Linux下熟練編程,你必須要學(xué)很多專業(yè)技能。
熟悉Linux命令
Linux的精華是命令行,你必須熟練使用命令行進(jìn)行日常的工作、學(xué)習(xí),Linux上有各種各樣的shell命令,bash、sh等命令應(yīng)有盡有。
你還得熟悉在Linux上通過命令行安裝軟件、搭建開發(fā)環(huán)境、完成文件管理,對(duì)于代碼調(diào)試、編譯等等。
熟練使用vim/emacs
在Linux編程世界里,不會(huì)使用emacs和vim是可怕的。
emacs號(hào)稱是“神之編輯器”,vim則被稱為“編輯器之神”,這兩款文本編輯器都是Linux下開發(fā)者的重要編程工具,豐富的插件讓這兩款編輯器非常強(qiáng)大。
看一些Linux的書籍
《鳥哥Linux私房菜》、《深入理解Linux內(nèi)核》、《Unix環(huán)境高級(jí)編程》、《Unix網(wǎng)絡(luò)編程》、《Linux程序設(shè)計(jì)》、《深入理解Linux內(nèi)核》等,這些都是Linux/Unix下的經(jīng)典書籍。
你最常用的一個(gè)linux命令是什么?為什么?
1、顯示目錄和文件的命令
Ls:用于查看所有文件夾的命令。
Dir:用于顯示指定文件夾和目錄的命令 Tree: 以樹狀圖列出目錄內(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:用分頁的形式顯示指定文件的內(nèi)容
Less:用分頁的形式顯示指定文件的內(nèi)容,區(qū)別是more和less翻頁使用的操作鍵不同。
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ù)庫中指定的內(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命令打開一個(gè)文件
末行模式命令:
:n,m w path/fil:q! 對(duì)文件做過修改后,強(qiáng)制退出
:q 沒有對(duì)文件做過修改退出
Wq或x 保存退出
dd 刪除光標(biāo)所在行
: s:s/t: 逐行顯示且列出詳細(xì)屬性
-a: 列出所有文件包括以.開頭的隱藏文件
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)文件存在,則詢問是否覆蓋
-r: 拷貝目錄
cp file1 file2 file3.... dir 表示將file1,file2...拷貝到dir
cp -r dir1 dir2 dir3... dirn 將dir1, dir2,dir3...拷貝到dirn
fil: 交互模式,如果目標(biāo)文件存在,則詢問是否覆蓋
-r: 移動(dòng)目錄,跟改目錄名
rm 刪除文件
-i: 交互模式,詢問是否刪除
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第一位-表示文件類型為普通文件,后三位表示所有者權(quán)限,后三位表示組權(quán)限,后三位表示其他用戶權(quán)限。如果一項(xiàng)權(quán)利未被分配,則用-。-rwxr-rwx表示該組沒有寫入和執(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ì)被刪除。