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