linux操作系統快速入門

大家好,我是天空之城,今天給大家帶來,linux操作系統快速入門。

Linux 內核以及發行版
Linux內核(kernel)
操作系統內核是指大多數操作系統的核心部分。它由操作系統中用於管理存儲器、文件、外設和系統資源的那些部分組成。操作系統內核通常運行進程,並提供進程間的通信。
Linux 內核版本又分爲 穩定版 和 開發版,兩種版本是相互關聯,相互循環

穩定版:具有工業級強度,可以廣泛地應用和部署。

開發版:由於要試驗各種解決方案,所以變化很快

內核源碼網址:

Linux發行版
Linux 發行版:我們常說的Linux操作系統,也是由Linux內核與各種常用軟件的集合產品. 類似Windows包含了桌面環境.全球大約有數百款的Linux系統版本,每個系統版本都有自己的特性和目標人羣.

Ubuntu(烏班圖)
Ubuntu是一個以桌面應用爲主的開源GNU/Linux操作系統,主要依賴Canonical有限公司的支持,同時也有很多來自Linux社區的熱心人士提供協助。
作爲Linux發行版之一.Canonical 的Ubuntu 勝過其他所有的 Linux 服務器發行版 ,它簡單易用同時又相當穩定,而且具有龐大的社區力量,用戶可以方便地從社區獲得幫助.Ubuntu在服務器領域是妥妥的贏家.

Ubuntu的目錄結構

Ubuntu的目錄結構

Ubuntu的主要目錄
/:根目錄,一般根目錄下只存放目錄,在 linux 下有且只有一個根目錄,所有的東西都是從這裏開始

/bin、/usr/bin:可執行二進制文件的目錄,如常用的命令 ls、tar、mv、cat 等

/boot:放置 linux 系統啓動時用到的一些文件,如 linux 的內核文件:/boot/vmlinuz,系統引導管理器:/boot/grub

/dev:存放linux系統下的設備文件,訪問該目錄下某個文件,相當於訪問某個設備,常用的是掛載光驅mount /dev/cdrom /mnt

/etc:系統配置文件存放的目錄,不建議在此目錄下存放可執行文件,重要的配置文件有

/etc/inittab

/etc/fstab

/etc/init.d

/etc/X11

/etc/sysconfig

/etc/xinetd.d

/home:系統默認的用戶家目錄,新增用戶賬號時,用戶的家目錄都存放在此目錄下
表示當前用戶的家目錄

~edu 表示用戶 edu 的家目錄

/lib、/usr/lib、/usr/local/lib:系統使用的函數庫的目錄,程序在執行過程中,需要調用一些額外的參數時需要函數庫的協助

/lost+fount:系統異常產生錯誤時,會將一些遺失的片段放置於此目錄下

/mnt: /media:光盤默認掛載點,通常光盤掛載於 /mnt/cdrom 下,也不一定,可以選擇任意位置進行掛載

/opt:給主機額外安裝軟件所擺放的目錄

/proc:此目錄的數據都在內存中,如系統核心,外部設備,網絡狀態,由於數據都存放於內存中,所以不佔用磁盤空間,比較重要的文件有:/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等

/root:系統管理員root的家目錄

/sbin、/usr/sbin、/usr/local/sbin:放置系統管理員使用的可執行命令,如 fdisk、shutdown、mount 等。與 /bin 不同的是,這幾個目錄是給系統管理員 root 使用的命令,一般用戶只能"查看"而不能設置和使用

/tmp:一般用戶或正在執行的程序臨時存放文件的目錄,任何人都可以訪問,重要數據不可放置在此目錄下

/srv:服務啓動之後需要訪問的數據目錄,如 www 服務需要訪問的網頁數據存放在 /srv/www 內

/usr:應用程序存放目錄

/usr/bin:存放應用程序

/usr/share:存放共享數據

/usr/lib:存放不能直接運行的,卻是許多程序運行所必需的一些函數庫文件

/usr/local:存放軟件升級包

/usr/share/doc:系統說明文件存放目錄

/usr/share/man:程序說明文件存放目錄

/var:放置系統執行過程中經常變化的文件

/var/log:隨時更改的日誌文件

/var/spool/mail:郵件存放的目錄

/var/run:程序或服務啓動後,其 PID 存放在該目錄下

Ubuntu的常見快捷鍵
可以在System Setting -> Keyboard -> Shortcuts中查看各種快捷鍵.

終端: Ctrl+Alt+T

終端新建標籤頁: Ctrl+Shift+T

終端複製粘貼: Ctrl+Shift+C, Ctrl+Shift+V

顯示常用快捷鍵: 按住Super(Win)不動

截活動窗口圖: Alt+Print

區域截圖: Shift+Print

源切換: Super(Win)+Space

安裝: sudo apt-get install

卸載: sudo apt-get remove

移除沒用的包: sudo apt-get autoremove

Ubuntu的常見設置
首先語言設置
通過右上角的 設置按鈕 找到System Settings…

然後選中Language Support 項

注意Ubuntu的語言選項有多種語言.將第一語言設置爲中文(因爲如果中文顯示不了的,會使用英文顯示)

拖動成爲第一語言

設置完成後.選擇Apply System-wide(應用到整個系統)這時,輸入管理員密碼以確認.最後點擊 Close 按鈕關閉對話框,重啓電腦。

注意:重啓成功後,會讓你選擇文件夾名稱顯示.如果是爲了學習.我建議大家保持原來的文件夾名稱,這樣便於後期在學習中熟悉Linux目錄結構. 選擇Keep Old Names

選擇目錄顯示

Launcher(菜單欄)設置
在系統設置中,找不到菜單欄的位置設置.所以只能通過終端命令進行設置

菜單欄靠左(注意參數首字母大寫)

$ gsettings set com.canonical.Unity.Launcher launcher-position Left
菜單欄靠下

$ gsettings set com.canonical.Unity.Launcher launcher-position Bottom
Ubuntu常用軟件
設置軟件源: 默認的軟件源是官方的, 速度慢的令人髮指, 所以需要先設置一個速度較快的軟件源, System Settings -> Software & Updates -> Ubuntu Software -> Download from選擇Others, 然後自動選擇一個網速比較快的服務器(多半是某個大學的)即可:

apt(Advanced Packaging Tool) 安裝/卸載軟件 (Ctrl+Alt+T 調出終端)

安裝軟件

$ sudo apt install 軟件包
卸載軟件

$ sudo apt remove 軟件名
更新已安裝的包

$ sudo apt upgrade 或者 sudo apt-get upgrade
升級

sudo apt-get update.
那麼由於有些Ubuntu中沒有自帶vim 而是 vi 這個古老的編輯器.所以我們需要安裝vim

sudo apt-get install vim
在安裝過程中有可能出現下列錯誤
vim : 依賴: vim-common (= 2:7.4.826-1ubuntu1) 但是 2:7.4.1689-3ubuntu1.1 正要被安裝
E: 無法修正錯誤,因爲您要求某些軟件包保持現狀,就是它們破壞了軟件包間的依賴關係。

解決方案:

sudo apt-get remove vim-common
sudo apt-get install vim


終端命令格式
在我們開始學習一些常見的終端命令之前,我們先對Linux終端命令的格式有個瞭解。

command [-options] [parameter]
command [-options] [parameter]
命令名稱 選項 傳遞給命令的參數
[ ] 代表內容可選填

那麼這些命令的選項和參數在哪裏找到呢?接下來我們介紹兩個非常有用的命令。

help&&man
–help
command --help
顯示command 命令的幫助信息

man
man command
查詢command 命令的使用手冊

man 是manual的縮寫,是Linux提供的手冊。

手冊中的操作按鍵
操作按鍵 功能
空格鍵 顯示下一頁
回車鍵 顯示下一行
b back,顯示上一頁
f forward,向前和空格效果一樣
q quit,退出
最常用的Linux命令
有了上面的基本常識之後,我們終於可以開始嘗試Linux的命令了!接下來給大家介紹幾個簡單的命令。

命令 功能
ls list,列表顯示當前目錄下的內容
pwd print wrok directory ,查看當前所在路徑
cd+空格+路徑名稱 change directory,跳轉到指定路徑
touch+空格+文件名稱 創建這個文件
mkdir+空格+文件夾名稱 make directory, 創建這個文件夾
rm+空格+文件名 remove,刪除指定的文件
clear 清屏
終端常用快捷鍵速查表
快捷鍵 功能
Tab 自動補全
ctrl + shift + + 放大字體
ctrl + - 縮小字體
Ctrl + Alt + t 打開終端窗口
Ctrl + a 光標移動到開始位置
Ctrl + e 光標移動到最末尾
Ctrl + k 刪除此處至末尾的所有內容
Ctrl + u 刪除此處至開始的所有內容
Ctrl + d 刪除當前字符
Ctrl + h 刪除當前字符前一個字符
Ctrl + w 刪除此處到左邊的單詞
Ctrl + y 粘貼由Ctrl+u, Ctrl+d, Ctrl+w刪除的單詞
Ctrl + l 相當於clear,即清屏
Ctrl + r 查找歷史命令
Ctrl + b 向回移動光標
Ctrl + f 向前移動光標
Ctrl + t 將光標位置的字符和前一個字符進行位置交換
Ctrl + & 恢復 ctrl+h 或者 ctrl+d 或者 ctrl+w 刪除的內容
Ctrl + S 暫停屏幕輸出
Ctrl + Q 繼續屏幕輸出
Ctrl + ← 光標移動到上一個單詞的詞首
Ctrl + → 光標移動到下一個單詞的詞尾
Ctrl + p 向上顯示緩存命令
Ctrl + n 向下顯示緩存命令
Ctrl + d 關閉終端
Ctrl + c 終止進程/命令
Shift + 上或下 終端上下滾動
Shift + PgUp/PgDn 終端上下翻頁滾動
Ctrl + Shift + n 新終端
alt + F2 輸入gnome-terminal打開終端
Shift + Ctrl + T 打開新的標籤頁
Shift + Ctrl + W 關閉標籤頁
Shift + Ctrl + C 複製
Shift + Ctrl + V 粘貼
Alt + 數字 切換至對應的標籤頁
Shift + Ctrl + N 打開新的終端窗口
Shift + Ctrl + Q 管壁終端窗口
Shift + Ctrl + PgUp/PgDn 左移右移標籤頁
Ctrl + PgUp/PgDn 切換標籤頁
F1 打開幫助指南
F10 激活菜單欄
F11 全屏切換
Alt + F 打開 “文件” 菜單(file)
Alt + E 打開 “編輯” 菜單(edit)
Alt + V 打開 “查看” 菜單(view)
Alt + S 打開 “搜索” 菜單(search)
Alt + T 打開 “終端” 菜單(terminal)
Alt + H 打開 “幫助” 菜單(help)


接下來對於幾個上一章所講解的常用命令的選項和參數進行一個簡單的擴展。其實後期大家在學習和工作中用到其他的命令,我們完全可以自己在互聯網上查詢資料。那麼前期,我帶着大家入門。

ls命令
ls是英文單詞list的縮寫,他的功能是列出當前目錄下的文件列表,是非常常見的Linux命令之一。

Linux下目錄特點
以 . 開頭的文件是隱藏文件,使用ls查看時,需要加上 -a(all)參數才能顯示。

.代表當前目錄 …代表上一級目錄(可以理解爲隱藏的兩個文件路徑)。我們常用cd…跳到上一級目錄。

ls常用選項
選項 功能
[-a] all,顯示所有內容,包含隱藏文件
[-l](字母L小寫) 顯示文件詳細信息
[-h] human-readable,需要配合-l(字母L小寫)選項,所謂的人性化顯示
ls配合通配符
通配符 功能

  • 代表任意多個任意字符,可以沒有字符
    ? 代表就是一個任意字符,至少一個字符
    [ ] 代表一個字符,取值範圍在[ ]中
    [1234 ] 匹配1,2,3,4中的任意一個
    [a-g] 匹配從a到g範圍內的任意一個
    cd命令
    cd是英文單詞 change directory 的縮寫,其功能就是跳轉目錄。
    它與之前的幾個命令不同的是,cd是BASH內置命令,沒有幫助文檔與相關手冊。
    所以在使用$which cd的時候是看不到它的二進制路徑的。因爲系統中不存在 cd 命令的二進制文件。

注意:Linux下 目錄名稱 以及 文件名稱 大小寫是有區別的!

命令 功能
cd 切換到當前用戶的家目錄(home/用戶名)
cd ~ 和 cd 效果一樣
cd … 跳轉到上一級目錄
cd - 在最近兩個目錄來回切換,有點像圖形界面的 Alt + Tab切換窗口的感覺
cd後面的路徑可以是兩種 相對路徑 和 絕對路徑

相對路徑是指相對當前目錄的路徑

絕對路徑是指全路徑。可以從 /(根目錄)開始,或者是~(家目錄)開始。

mkdir命令
創建一個新的目錄

選項 功能
[-p] 可以遞歸創建目錄
新建的目錄名稱不能重名

rm命令
刪除文件或目錄

選項 功能
[-f] 強制刪除,忽略不存在的文件,無需提示
[-r] 遞歸刪除目錄下的內容,刪除文件夾就用這個選項
cp命令
拷貝文件或者目錄,類似DOS中的copy

$cp 源文件 目標文件
選項 功能
[-i] interactive互動,說白了就是覆蓋文件時有提示
[-r] 如果cp跟上的時目錄,那麼將會遞歸拷貝目錄下的所有子目錄和文件
mv命令
mv是move的縮寫 用來 移動文件/目錄

小技巧:如果需要重命名,也可以使用mv命令覆蓋當前文件/目錄 達到效果

選項 功能
[-i] interactive,覆蓋文件時有提示
tree命令
tree命令可以將目錄結構顯示出來(樹狀顯示)

選項 功能
[-d] directory,只顯示目錄
有的同學系統中默認沒有此命令。所以會提示:

提示

你看寫得多清楚,在Ubuntu下使用apt安裝。

$ sudo apt-get install tree
查看文件內容相關命令
命令 功能
cat 文件名 concatenate,查看文件內容、創建文件、文件合併、追加文件內容等
more 文件名 more,分屏顯示文件內容(內容多一般用more)
grep 搜索內容 文件名 grep,搜索文件內容
cat
查看文件內容、創建文件、文件合併、追加文件內容等

命令會一次性顯示所有內容,所以適合查看內容較少的文件

選項 功能
[-b] 顯示每一行的行號
[-n] 只顯示有內容的行號,空行不算一行
more
此命令可以分屏顯示文件內容,每次只顯示一頁內容。所以適合查看內容多的文件。
使用more的操作按鍵

操作按鍵 功能
空格鍵 顯示下一頁
回車鍵 Enter 顯示下一行
b back,顯示上一頁
f forward,向前和空格效果一樣
q quit,退出
/ 搜索文字 搜索文本中的內容
grep
(global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。

選項 功能
[-n] line-number,顯示匹配行及行號
[-v] invert-match,選中不匹配的行
[-i] ignore-case,忽略大小寫
grep常用查找方式
在file_name中 搜索Hello_world這個單詞

grepHelloworldfilenamegrep Hello_world file_namegrep “Hello_world” file_name
在多個文件中查找

grep “Hello_world” file_1 file_2 file_3 …
常用兩種模式查找

參數 功能
^hello 行首,搜索以hello開頭的行
world$ 行尾,搜索以world結束的行
幾個常用符號
重定向符號
Linux中允許將命令執行結果 重定向到一個文件

將本應該顯示在終端上的內容 輸出/追加 到指定文件中

符號	功能
>	輸出重定向到一個文件或設備 覆蓋原來的文件
>>	輸出重定向到一個文件或設備 追加原來的文件
echo會在終端中顯示參數指定的文字,通常會和 重定向 聯合使用

管道符號 |
Linux 允許將 一個命令的輸出 可以 通過管道 做爲 另外一個命令的輸入

 command 1 |  command 2 |  command 3 … …

ls -lah ~| grep -n vi    找到有關vi的命令

關機重/啓命令
shutdown命令可以安全關閉 或者 重新啓動系統,直接使用 shotdown命令,默認表示1分鐘後關機.
命令格式:

$shutdown [選項] <參數>
選項 功能
[-r] 重新啓動
[-c] 取消之前的關機計劃
參數
[時間]:設置多久時間後執行shutdown指令;

[警告信息]:要傳送給所有登入用戶的信息。

示例
一分鐘以後關機

$shutdown
立刻關機

$shutdown now
在今天的21:30關機

$shutdown 21:30
10分鐘以後關機

$shutdown +10
10分鐘以後關機,同時發出警告信息

$shutdown +10 “System will shutdown after 10 minutes”
取消關機計劃

$shutdown -c
reboot命令也可以用來重新啓動正在運行的Linux操作系統。
和 shutdown -r now一樣

網絡配置命令
命令 功能
ifconfig configure a network interface,查看/配置計算機當前的網卡信息
ping 測試目標ip地址的連接是否正常
ifconfig命令
ifconfig命令被用於配置和顯示Linux中網卡信息。
查看網卡信息

$ifconfig
快速定位IP地址

$ifconfig | grep inet
一臺計算機中可能會有一個 物理網卡 和 多個虛擬網卡,在Linux中物理網卡名字一般是 ensXX

127.0.0.1這個地址是一個比較特殊的地址,稱之爲本地迴環地址,可以用來測試本機網卡是否正常工作。

ping命令
ping命令用來測試主機之間網絡的連通性。執行ping指令會使用ICMP傳輸協議,發出要求迴應的信息。一般用於檢測計算機之間的網絡通訊是否正常。

由於ping命令的工作原理,服務器人員給往往將ping用作動詞。經常說:“ping一下某某計算機”

示例:
“ping”目標主機

$ping IP地址
檢測本地網卡是否正常

$ping 127.0.0.1
結束ping的執行使用Ctrl+C。在Linux中終止一個終端程序絕大多數都可以使用Ctrl+C

SSH(Secure Shell)
簡單說,SSH是一種網絡協議,用於計算機之間的加密登錄。
最早的時候,互聯網通信都是明文通信,一旦被截獲,內容就暴露無疑。1995年,芬蘭學者Tatu Ylonen設計了SSH協議,將登錄信息全部加密,成爲互聯網安全的一個基本解決方案,迅速在全世界獲得推廣,目前已經成爲Linux系統的標準配置。

OpenSSH
SSH只是一種協議,存在多種實現OpenSSH就是其中一種,它是一款軟件,應用非常廣泛在Mac以及Ubuntu中都自帶OpenSSH。

SSH的登錄過程
(1)遠程主機收到用戶的登錄請求,把自己的公鑰發給用戶。

(2)用戶使用這個公鑰,將登錄密碼加密後,發送回來。

(3)遠程主機用自己的私鑰,解密登錄密碼,如果密碼正確,就同意用戶登錄。

SSH客戶端命令
ssh [-p port] user@remote

user 是遠程端上的用戶名,默認是當前用戶

remote是遠程端的地址,可以是IP/域名

port是遠程端的端口,默認是22

Ubuntu下開啓SSH
Ubuntu下SSH分

openssh-client(客戶端)

openssh-server (服務端)

檢測是否有開啓ssh服務
hank@ubuntu:~$ ps -e | grep ssh
4910 ? 00:00:00 sshd
其中sshd 爲server端的守護進程,如果沒有出現sshd,那麼很有可能你的系統中沒有安裝server端。或者ssh服務沒有啓動。

開啓ssh服務
hank@ubuntu:~$ sudo /etc/init.d/ssh start
[ ok ] Starting ssh (via systemctl): ssh.service.
安裝openssh-server
如果顯示上述命令找不到。那麼是因爲我們的Ubuntu系統默認沒有服務端,所以可以通過下面命令安裝。
$ sudo apt-get install openssh-server

可能出現錯誤
$ sudo apt-get install openssh-server
正在讀取軟件包列表… 完成
正在分析軟件包的依賴關係樹
正在讀取狀態信息… 完成
有一些軟件包無法被安裝。如果您用的是 unstable 發行版,這也許是
因爲系統無法達到您要求的狀態造成的。該版本中可能會有一些您需要的軟件
包尚未被創建或是它們已被從新到(Incoming)目錄移出。
下列信息可能會對解決問題有所幫助:

下列軟件包有未滿足的依賴關係:
openssh-server : 依賴: openssh-client (= 1:7.1p1-4)
依賴: openssh-sftp-server 但是它將不會被安裝
推薦: ssh-import-id 但是它將不會被安裝
E: 無法修正錯誤,因爲您要求某些軟件包保持現狀,就是它們破壞了軟件包間的依賴關係。
因爲openssh-server 需要依賴openssh-client,但是很明顯,我們系統自帶的版本和目前要安裝的server版本不同。所以我們重新安裝一下client版本。

hank@ubuntu:~$ sudo apt-get install openssh-client=1:7.1p1-4正在讀取軟件包列表… 完成
正在分析軟件包的依賴關係樹
正在讀取狀態信息… 完成
建議安裝:
ssh-askpass libpam-ssh keychain monkeysphere
下列軟件包將被【降級】:
openssh-client
升級了 0 個軟件包,新安裝了 0 個軟件包,降級了 1 個軟件包,要卸載 0 個軟件包,有 0 個軟件包未被升級。
需要下載 581 kB 的歸檔。
解壓縮後將會空出 36.9 kB 的空間。
您希望繼續執行嗎? [Y/n] y
獲取:1 http://mirror.neu.edu.cn/ubuntu xenial/main amd64 openssh-client amd64 1:7.1p1-4 [581 kB]
已下載 581 kB,耗時 33秒 (17.6 kB/s)
dpkg:警告:即將把 openssh-client 從 1:7.2p2-4 降級到 1:7.1p1-4
正在將 openssh-client (1:7.1p1-4) 解包到 (1:7.2p2-4) 上 …
正在處理用於 man-db (2.7.5-1) 的觸發器 …
正在設置 openssh-client (1:7.1p1-4) …
正在安裝新版本配置文件 /etc/ssh/ssh_config …
這樣可以看到降級成功。然後我們再次安裝openssh-server就OK了!

hank@ubuntu:~$ sudo apt-get install openssh-server
SCP(Secure copy)
scp scp是linux系統下基於ssh登陸進行安全的遠程文件拷貝命令。

命令格式

scp -P port 源文件路徑 目標文件路徑# 將本地目錄下的123.txt拷貝到遠程桌面目錄下$scp -P port 123.txt user@remote:Desktop/123.txt# 把遠程桌面目錄下的123.txt文件 複製到 本地當前目錄下scp -P port user@remote:Desktop/123.txt 123.txt# 加上 -r 選項可以傳送文件夾# 把當前目錄下的 demo 文件夾 複製到 遠程 家目錄下的 Desktopscp -r demo user@remote:Desktop# 把遠程 家目錄下的 Desktop 複製到 當前目錄下的 demo 文件夾scp -r user@remote:Desktop demo
選項 功能
-r 若給出的源文件是目錄文件,則 scp 將遞歸複製該目錄下的所有子目錄和文件,目標文件必須爲一個目錄名
-P 若遠程 SSH 服務器的端口不是 22,需要使用大寫字母 -P 選項指定端口
SSH常用配置
免密登陸
配置公鑰
執行 ssh-keygen 即可生成 SSH 鑰匙,一路回車即可

上傳公鑰到服務器
執行 ssh-copy-id -p port user@remote,可以讓遠程服務器記住我們的公鑰

配置別名
每次都輸入ssh -p port user@remote,非常不方便,而且還不好記憶

而 配置別名 可以讓我們進一步偷懶,譬如用:ssh mac 來替代上面這麼一長串,那麼就在 ~/.ssh/config 裏面追加以下內容:

Host mac
HostName ip地址
User H
Port 22
保存之後,即可用 ssh mac 實現遠程登錄了,scp 同樣可以使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章