很久沒有更新文章了,平時更新文章也沒有固定的時間,所以這個公衆號顯得很隨意,用公衆號寫文章也有一年多的時間了,自己回過頭來看之前的文章,自己有很大的感觸,也有很多的總結,今天想分享一些自己學習Linux的一些經歷。
學習是一件很枯燥的事情,開始入門的時候是最難的,我當時開始學Linux C/C++的時候其實連如何把Linux系統裏邊的文件共享到window也不會,當時對Linux的命令也不熟悉,當時ftp、samba、/mnt/hgfs/....共享也不會,現在回過頭來這些都是很基礎的東西,只要去google/百度一下就很多人告訴你了。
另外一個就是可以通過看書能夠瞭解到,對於剛剛入門的我個人覺得《鳥哥私房菜》這本書很不錯,對熟悉Linux命令和一些基礎的知識完全可以帶你入門。
學習Linux最好熟悉命令和shell腳本,因爲很多人開始的時候都是在window系統玩,習慣圖形界面和鼠標,一時半會熟悉不了Linux系統,如果熟悉命令,操作起來就會覺得window很low,這本書完全夠入門。
當你瞭解了一些很基礎的知識之後,個人覺得就應該對系統的原理要深入瞭解了,進程環境、進程控制、進程之間的關係、信號、I/O。線程、線程控制、多進程、多線程、進程之間通信、網絡編程、高併發這些知識也是面試經常被問到,所以個人覺得有必要掌握一下。
消息是如何傳遞的?
管道/FIFO、Posix消息隊列、System V消息隊列。
如何進行同步?
互斥鎖、條件變量、讀寫鎖、記錄上鎖、Posix信號量、System V信號量。
如何進行共享內存區?
Posix共享內存區、System V共享內存區。
建議看的書籍
熟悉完這幾本書的內容,然後如何運用到工作當中,基本上可以算是一個入門,應付面試官提問的問題也綽綽有餘,市面上的書本特別多,但是個人覺得裏邊寫的內容都基本是上面提到的那些。
如果想進大廠,對操作系統和計算機網絡的相關知識是必問的,這些基礎技術也繞不開,如果想走得更遠,建議大家從最基礎的學起,掌握原理,然後運用到實際當中,只有通過項目和解決bug,踩過一些坑,然後把坑填了,才能夠從入門到掌握。
當掌握上面提到的內容了,個人覺得就應該對內核進行剖析,從最基礎的命令-->應用-->系統內核。
通過看書和看視頻,把相關的內容都用程序例子敲出來,運行出來,對每一位學習Linux C/C++都會有深刻的認識,把原理掌握才能夠走得更遠。
推薦閱讀:
"萬水千山都是情,在看行不行"