【學習筆記】Linux基礎(二):Linux的基本操作
二、Linux的基本操作
0、正確的開關機操作
- 開機和登陸:
- 安全起見,一般不使用最高權限的root賬戶登入系統,管理系統時再使用
- 登錄時為login程序提供賬戶名和密碼即可,密碼不會被顯示,登陸后顯示
[<user_name>@<host_name> <current_dir>]$,$是普通用戶的命令提示符(root用戶是#)
- 登出和關機/重啟
- 使用
exit命令注銷當前已登入的用戶(不是關機) - Linux采用異步的異步的磁盤/內存數據傳輸模式,同時又是多人多任務操作系統,需要正確關機(服務器只有在維護時關機),且常常加掛UPS
- 關機前:
su切換到root用戶(superuser)who查看哪些用戶在線netstat -a查看網絡聯機狀態ps aux檢查運行的程序sync將內存中的數據同步寫入硬盤(shutdown/reboot/halt命令也會代為執行)(root用戶保存所有用戶數據,非root用戶保存自己的數據)
- 關機命令:
shutdown [-options] [time] [warnings]- 實體終端tty1-tty7所有用戶都能執行,遠程終端只有root可以執行
- root超級用戶的shutdown命令在/sbin/shutdown處
- [warnings]是發給所有用戶的提示信息
- [time]為執行動作的延時時間,讓登陸的各用戶做好關機準備,默認不填為1min;格式:now或+minutes或HH:MM(具體時刻)
- 常用選項:
- -k 僅發送消息而不關機
- -h 停止服務后立刻關機
- -c 取消已經設定的關機定時
- -r 重啟
- 關機命令
poweroff,重啟命令reboot,停止系統命令halt(屏幕可能會保留系統停止的信息,與電源管理模式有關),這三個命令都會調用systemctl指令執行操作,相當于systemctl poweroff,systemctl reboot和systemctl halt(還有systemctl suspend,用于進入休眠模式),理論上只讓root執行 - SystemV下的切換運行等級的指令
init在systemd下依然兼容,init 0關機,init 6重啟
- 使用
1、Linux的命令格式
command [-options] parameter1 parameter2 ...
- 第一部分:指令/可執行文件(如腳本)
- 第二部分:可選的選項
- -省略的選項
- --完整的選項
- 選項可以寫在一起,也可以分開寫,比如-al和-a -l是一樣的
- 有時候選項前是+而不是-
- 其他部分:若干個可選的參數,是選項的參數或者是指令的參數
- Note:
- 空格區分各個部分,一個和多個空格等效
- Linux大小寫敏感
- 反斜杠(
\,escape)用來將回車轉義,換行而不執行,方便在多行里輸入長指令
2、幾個常用命令
date [+format]顯示日期和時間+format選項,格式format舉例:%Y/%m/%d或%H:%M
cal [month] [year]顯示日歷cal year用來顯示一整年的日歷cal month year用來顯示某個有效年月的日歷,無效會返回錯誤信息
bc啟動一個字符界面的簡易計算器- 輸入表達式-回車可以計算
scale=number,number為結果小數點位數quit-回車 退出
nano簡單的文本編輯器nano <path/filename>打開一個文件- 下方會顯示按鍵說明,^表示Ctrl鍵,M表示Alt鍵
- Ctrl-O 保存(WriteOut)
- Ctrl-R 從其他文件讀入資料(Read File)
- Ctrl-W 搜索字符串(Where Is)
- Ctrl-C 顯示當前光標行列位置(Cur Pos)
- Ctrl-- 輸入行號并跳轉到該行
- Alt-Y 語法校正功能開關
- Alt-M 開啟鼠標支持
- Ctrl-G或F1 顯示使用幫助
- Ctrl-X 關閉軟件
- Note:兩種命令行程序
- 直接運行,運行后向命令行輸出結果并退出
- 運行后能在命令行和用戶交互,直至接收到退出命令
3、幾個常用快捷鍵
- Tab鍵:命令或選項或參數中的文件名/路徑的自動補全功能
- 可以唯一確定被補全的對象時,按一次就會補全
- 不能確定被補全的對象,按一次沒反應,再按一次顯示所有的可能的對象
- Note:要補齊選項/參數,需要安裝bash_completion軟件,不過這可能導致有時文件名/路徑不能自動補齊
- Ctrl+C組合鍵:中斷目前程序
- Ctrl+D組合鍵:發送EOF,遠程連接時相當于
exit-回車 - Shift+Page UP/Page Down組合鍵:前后翻動字符界面的顯示內容
4、遇到問題怎么辦?
- 有錯誤信息,查看錯誤信息,里面說得很清楚!有時還會給出可能的糾錯建議信息
- 忘記命令/命令的參數:平時只需要記憶命令的用途和常用命令的用法即可
- 先輸入確定的部分,再使用Tab鍵的自動補全功能
- 使用命令的
--help說明選項查閱(里面有語法,可能有簡要使用舉例) man <command/file>查詢命令的詳細使用說明(manual)(先被查找到的那個手冊,在/etc/man_db.conf中設置搜索結果排序,一般為序號小的那個) - 空格鍵向下翻頁,Page Up/Page Down鍵上/下翻頁,Home/End鍵翻到首/尾部
- /word 向下搜索word(關鍵詞),?word 向上搜索關鍵詞,n鍵向下繼續搜索,N鍵向上繼續搜索
- q鍵退出
- 每個命令的manual被劃分到一個類別中,可以在其manual的開頭看到類別對應的序號(如1-shell下的命令/可執行文件,4-/dev下設備裝置文件的說明,5-配置文件等文件的格式,8-管理員的管理指令),通過
man man可以查選到類別對應表 - 各板塊的推薦查詢順序:NAME(命令的意思)-DESCRIPTION(細節說明)-OPTIONS(所有可用的選項)-SEE ALSO(可參考的相關其他資料)/FILES(與該程序有關的文件說明)
man的手冊文件通常在/usr/share/man里,通過修改/etc/man_db.conf(或man.conf或man.config或manpath.conf)可以修改手冊文件的查詢位置man -f <command>查詢和命令有關的所有手冊文件的編號和內容簡介, man <number> <command>查看命令的編號為 的手冊, man -f等效于whatisman -k <keyword>查詢內容簡介中含有關鍵詞的所有手冊文件的編號和內容簡介, man -k等效于apropos
info <command>分節點(node)查詢命令的使用詳細說明,一個節點就是一個信息段落,節點之間存在鏈接 - n(Next)鍵前往同一層的下一個節點,p(Previous)鍵前往同一層的上一個節點,u(Up)鍵前往上一層節點
- h(Help)鍵或輸入?調出按鍵幫助
- 文本中用一個
*來標識一個可以進入的node,光標間移動到*后回車可以進入這個node - Tab鍵可以在可進入的node間切換
- q鍵退出
- 符合info格式的命令說明文檔*.info在/usr/share/info中,info也可以查詢非info格式的文檔,顯示結果和man相同
- 部分已安裝軟件會在/usr/share/doc目錄中存放文本格式的說明文檔(How-To及其他信息),軟件套件會在/usr/share/doc目錄下建立自己的目錄
5、相關的其他知識
-
關于登入登出和開關機:
- 開機后登陸前顯示的內容在/etc/issue文件中指定
- 文本模式登陸后進入的程序稱為Shell,負責和使用者進行交互,比如bash Shell
- 主機名的顯示通常只有第一個.之前的內容
- Linux是個多用戶操作系統,用戶個人目錄在/home/<user_name>處,也可以用表示,是一個變量
- Linux下面的隱藏目錄和文件是以小數點.開頭的,以命名來確定是否被隱藏
- 命令執行結果亂碼一般是語系不是英文的緣故
locale或echo $LANG命令顯示當前選擇的語系LANG=en_US.utf8修改為輸出信息為顯示英文語系(僅對本次登陸有效)export LC_ALL=en_US.utf8同步更新語系的其他選項為英文語系(僅對本次登陸有效)- 修改/etc/locale.conf文件可以修改默認語系,重啟后仍然有效
-
關于X Window:
- Linux預置6個文字終端,還有一個是圖形終端,使用Ctrl+Alt+Fn切換,這些終端(tty)一開始并不存在,使用時才產生,先產生占據較小的tty號
startx命令用來在文本模式下啟動X Window(前提是沒有其他的X Window啟動且X Window System正確安裝),不需要管理員身份,默認使用圖形界面需要將graphical.target服務設為默認- 重啟系統不同于重啟X Window,重啟X Window可以先登出再重新登入或使用Gnome中設定好的重啟X Window的快捷鍵
-
關于控制臺(Console)和終端(Terminal):
- 歷史:
- 控制臺終端的概念起源于早期大型機,用于解決多用戶共用一臺計算機的問題
- Console:物理操作面板,控制主機的工作狀態,只有一個,上面有電源開關等,起到“總控臺”的作用,后期的控制臺也具有了鍵盤和顯示器
- Terminal:可以有多個,在主機完成啟動后每個用戶都可以通過Terminal連接到主機上進行工作;Terminal只有顯示和輸入輸出功能,即只有鍵盤和顯示器,不能進行計算
- tty:Teletypewriter即電傳打字機,是沒有屏幕的Terminal,輸出信息需要靠打印機或紙帶打孔機
- 在Unix中,Console和Terminal有明顯的區分,系統運行消息只會顯示在Console上
- 在Linux中:
- Console和Terminal的概念被模糊化,系統消息會被推送到所有終端上,控制臺是終端的真子集
- 物理終端:直接連接在主機上的顯示器、鍵盤鼠標的統稱;機房里常見多臺服務器主機共享一套KVM(Keyboard+Video+Mouse),通過切換器切換連接的服務器主機,以節省資源
- 虛擬終端:Ctrl+Alt+Fn所切換的tty1-tty6是虛擬終端,這些終端是軟件模擬的,而不是真實的硬件,但使用起來和物理終端沒有差異,對應的設備文件是/dev/tty[n],由于它們在服務器本地建立,也被稱為是“控制臺”
- 遠程終端:與本地終端相對的概念,空間上作區分;通過串口連接的終端是遠程終端(同時也是物理終端),通過軟件TCP/IP網絡工具使用Telnet協議或SSH協議進行遠程登入服務器的終端也是遠程終端
- 偽終端:有兩類,一是X Window下打開的終端模擬器,二是使用Telnet協議或SSH協議登陸的網絡遠程終端
- 歷史:
浙公網安備 33010602011771號