在學習此視頻以前,雖然作過簡單的嵌入式實驗,也用過基本的linux命令,可是歷來沒有這麼系統性的學習過,這一次將這個視頻學習事後,確實對linux的一些基礎知識有了更深的瞭解。在視頻課程中給出了一個Linux學習路徑,經過這個導圖能夠明確學習方向。html
Linux是一套無償使用和自由傳播的類Unix操做系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操做系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡爲核心的設計思想,是一個性能穩定的多用戶網絡操做系統。linux
--引用自《Linux百度百科》程序員
linux系統與windows系統在使用方面最明顯的區別在於主要工做在終端模式下,也就是經過一個稱之爲shell的軟件進行操做,它隱藏了系統底層的諸多細節,留給用戶的只需經過基本命令就可實現各類操做,正以下圖所示那樣。shell
固然了,在具備圖形界面的linux系統上,打開這個終端除了像windows那樣用鼠標點開它,也可使用快捷鍵Ctrl + Alt + t
打開,或者使用Ctrl + Alt + [F1]~[F6]
從圖形界面切換至終端界面,再利用Ctrl + Alt + [F7]
切換回圖形界面。靈活使用各類快捷鍵會讓你更加感覺到linux的不俗,各類快捷鍵加上完備的命令操做,使得linux系統具備極高的工做效率。下面主要羅列一些經常使用的快捷鍵,留待之後方便查找。數據庫
按鍵 | 做用 |
---|---|
Tab |
補全命令 |
Ctrl+c |
強行終止的當前程序 |
Ctrl+d |
鍵盤輸入結束或退出終端 |
Ctrl+s |
暫停當前程序,暫停後按下任意鍵恢復運行 |
Ctrl+z |
將當前程序放到後臺運行,恢復到前臺爲命令fg |
Ctrl+a |
將光標移至輸入行頭,至關於Home 鍵 |
Ctrl+e |
將光標移至輸入行末,至關於End 鍵 |
Ctrl+k |
刪除從光標所在位置到行末 |
Alt+Backspace |
向前刪除一個單詞 |
Shift+PgUp |
將終端顯示向上滾動 |
Shift+PgDn |
將終端顯示向下滾動 |
linux系統的文件系統與windows系統不一樣,在Linux當中有一個很是重要的概念:vim
Linux一切皆是文件windows
也就是說,在Linux當中一切設備均可當作文件來進行操做。Linux採用FHS(Filesystem Hierarchy Standard)樹形結構組織文件,FHS定義了系統中每一個區域的用途、所須要的最小構成的文件和目錄,同時還給出了例外處理與矛盾處理。在這個樹形結構中,會發現Linux系統將各類文件分類的層次分明,理解每一個目錄下存放的文件性質有助於後續的學習。以下:bash
命令的基本格式:
command [options] [arguments]
linux的命令有許多,主要分爲shell提供的內建命令(如:history
、cd
)和額外安裝的外部命令(如:ls
、vim
),區別在於內建命令隨系統加載並駐留在內核當中,而外部命令只在須要時將其調入內存,常放於/bin
、/usr/bin
、/sbin
、/usr/sbin
中。具體可利用命令type
查看:網絡
在如此多的命令當中,幫助命令無疑是最重要的,它能夠幫咱們快速學習某個命令的用法。經常使用幫助命令有:多線程
命令 | 做用 |
---|---|
help |
只能顯示 shell 內建命令的簡要幫助信息 |
command --help |
通常外部命令都有--help 參數,專門提供幫助 |
man |
比用 help 更多更詳細,沒有內建與外部命令的區分 |
info |
更完整的顯示出幫助信息 |
cheat |
GNU通用公共許可證下,爲Linux命令行用戶發行的交互式備忘單應用程序。它提供顯示Linux命令使用案例,包括該命令全部的選項和簡短但尚可理解的功能。須要額外安裝。 |
如下列出一些經常使用命令,具體用法參考幫助文檔,下載linux命令大全也很方便:
命令 | 做用 |
---|---|
help |
只能顯示 shell 內建命令的簡要幫助信息 |
command --help |
通常外部命令都有--help 參數,專門提供幫助 |
man |
比用 help 更多更詳細,沒有內建與外部命令的區分 |
info |
更完整的顯示出幫助信息 |
cheat |
GNU通用公共許可證下,爲Linux命令行用戶發行的交互式備忘單應用程序。它提供顯示Linux命令使用案例,包括該命令全部的選項和簡短但尚可理解的功能。須要額外安裝。 |
ls |
列出目錄內容 |
cd |
切換目錄 |
rm |
刪除文件或目錄 |
mkdir |
創建目錄 |
mv |
移動或改名現有的文件或目錄 |
cp |
複製文件或目錄 |
touch |
改變文件或目錄時間、建立空文件 |
cat |
正序顯示文件內容 |
pwd |
獲取當前路徑 |
grep |
全文檢索 |
find |
查找文件在系統中的位置 |
locate |
查找文件,速度很快 |
whereis |
直接在數據庫中查詢文件,但只能搜索二進制文件(-b)、man幫助文件(-m)、源代碼文件(-s) |
which |
在環境變量中搜索是否安裝某個軟件 |
rename |
批量重命名 |
declare |
聲明變量 |
export |
設置或顯示環境變量 |
file |
查看文件類型 |
adduser |
新增用戶帳號 |
usermod |
修改用戶帳號 |
deluser |
刪除用戶帳號 |
chmod |
更改文件權限 |
df |
顯示磁盤相關信息 |
du |
顯示目錄或文件大小 |
注:
其中locate
命令因爲它直接經過/var/lib/mlocate/mlocate.db
數據庫查找,而非檢索匹配,因此速度很快。windows下的Everything軟件也有相似功能,經過查找NTFS文件系統中的USN日誌達到神速查找的目的,於是該軟件不足之處只能查找NTFS格式的設備。
利用sudo adduser zhb
能夠添加一個名爲zhb的用戶:
切換至zhb用戶,使用 who am i
命令能夠查看當前用戶信息,使用groups
可查看當前用戶所屬用戶組狀況:
在使用命令行的過程中,咱們常常要使用sudo
命令來臨時獲取root權限,可是當咱們新建一個用戶時,會發現它所屬的用戶組是一個默認與其同名的用戶組,若是這時使用sudo
命令,會出現一下狀況:(就拿更新軟件源爲例)
很明顯,咱們能夠看到它沒有sudo權限,此時能夠先切換至另外一個有sudo
權限的用戶,執行sudo usermod -a -G sudo zhb
爲zhb用戶追加一個sudo用戶組,這樣再從新登陸zhb帳號,使用groups
命令:
此時就可使用sudo
命令了。使用cat /etc/group | sort
能夠看到全部的用戶組信息:
若是要刪除用戶,可以使用sudo deluser zhb --remove-home
命令。
在使用ls -l
查看目錄下文件時能夠看到各個文件的權限狀況,如:
經過這些信息能夠查看文件歸屬以及權限(d-目錄,r-可讀,w-可寫,x-可執行),可經過sudo chmod
命令更改文件權限。
如以sudo
創建一個文件abc:
可看到abc文件只對root用戶可寫,若是要使zhb用戶也能對abc文件進行讀寫操做,一種方法是將其改成對root用戶組可寫,可以使用命令sudo chmod g+w abc
:
而後先按以前方法將zhb用戶添加root用戶組,這樣就能夠對abc文件進行讀寫操做了:
第二種方法爲abc文件的其餘用戶添加寫權限,以下:
經過export
可查看環境變量,在以前使用過程當中,常用的是PATH
這個環境變量,可經過echo $PATH
查看這個變量:
這個變量之因此比較重要,是由於它保存了咱們在編譯程序過程中所用到的編譯工具的路徑,在執行編譯時,系統會經過這個環境變量查找編譯工具,因此說若是咱們要搭建編譯環境,那麼這個變量是不可或缺的。
可經過如下命令爲PATH
添加路徑:
或者直接修改~/.bashrc
或~/.bash_profile
或系統級別的/etc/profile
,就好像windows下的環境變量同樣。
以前也常用這些操做,下面簡單羅列一下,以備後續查閱:
因爲使用的Ubuntu系統默認自動掛載,因此爲了完成手動掛載測試,選擇redhat來試驗。在不插U盤時,使用fdisk -l
能夠查看外部設備狀況:
插上U盤後再執行,能夠看到設備中多了一個sdb1
設備,這就是U盤,若是要讀取其中的內容,就須要掛載,步驟以下:
寫到這裏,不得不佩服那些寫出這些命令的程序員,爲「枯燥」的學習帶來了樂趣。如下命令都須要經過apt-get
安裝。
banner
xeyes
cmatrix
aafire
cowsay
asciiview
Linux的內容很是多,學起來也比較使人頭疼,因此說必需要多實踐、多練習,只有這樣才能真正學好、用好。後續的課程我也會繼續努力學習,爭取可以熟練使用Linux系統。