一、 字符界面下如何和 Linu 交流
如何讓計算機幫你幹活
在字符界面下,基本只能通過鍵盤和 Linux 系統交流。
所以我們要想讓 Linux 幫我們幹活,就需要掌握和它溝通交流的方式,這個方式就是 Shell ,具體的來說是 Bash 。後面我們會詳細介紹 Bash Shell,接下來先了解一些最簡單的。
下達命令
下達命令需要遵循一定的規則
[shark@loalhost ~]$ command [-options] parameter1 parameter2 ...
指令 選項 參數(1) 參數(2)
詳細說明如下:
一行命令中第一個輸入的部分絕對是
命令(command)
或可執行文件(通常是一個腳本文件)
command
爲命令的名稱,例如變換工作目錄的指令爲cd
等等;中刮號
[]
中是關於這個命令的選項,這個不是必須的。而當使用選項時,通常選項前會帶-
符號爲選項值的前綴,例如-h
;有時候會使用選項的完整全名,則選項前帶有--
符號,例如--help
;parameter1
parameter2
... 爲依附在選項後面的參數,或者是command
的參數;命令, 選項, 參數 等這幾個中間需要以空格來區分,不論空幾個空格 shell 都視爲一個空格。所以空格是很重要的特殊字符!;
按下回車
[Enter]
按鍵後,該指令就立即執行。[Enter]
按鍵代表着一行指令的開始運行。指令太長的時候,可以使用反斜線 (
\
) 來進行續行輸出,使指令連續到下一行。注意!反斜線後就立刻接特殊字符,才能跳脫!命令、選項、參數 這些字符都是區分大小寫的,比如
cd
和CD
是不同的。也可以在一行中輸入多個命令,每個命令用英文的分號
;
隔開。比如
cd /tmp; ls
值的注意的是, 當使用多個選項的情況,可以把選項值連在一起寫,也可分開寫。比如,下面用 ls
這個命令舉例說明,ls
命令是查看路徑下都有哪些文件和目錄。
下面的兩種寫法,得到的效果是一樣的。
ls -l -h
或
ls -lh
二、關於語系
Linux 系統是能夠支持多國語言的。
假如系統中設置的當前語言和連接到這臺電腦的終端軟件中的語言設置的不一致就會產生亂碼的現象。就是不能正常顯示內容。
此時,我們就需要調整設置成一致的。
1\. 顯示目前所支持的語系
[dmtsai@study ~]$ locale
LANG=zh_TW.utf8 # 語言語系的輸出
LC_CTYPE="zh_TW.utf8" # 下面爲許多信息的輸出使用的特別語系
LC_NUMERIC=zh_TW.UTF-8
LC_TIME=zh_TW.UTF-8 # 時間方面的語系數據
LC_COLLATE="zh_TW.utf8"
....中間省略....
LC_ALL= # 全部的數據同步更新的設置值
# 上面的意思是說,目前的語系(LANG)爲zh_TW.UTF-8,亦即臺灣繁體中文的萬國碼
[dmtsai@study ~]$ date
鈭? 5??29 14:24:36 CST 2015 # 純命令行下,無法顯示中文字,所以前面是亂碼
2\. 修改語系成爲英文語系
[dmtsai@study ~]$ LANG=en_US.utf8
[dmtsai@study ~]$ export LC_ALL=en_US.utf8
# LANG 只與輸出訊息有關,若需要更改其他不同的信息,要同步更新 LC_ALL 才行!
[dmtsai@study ~]$ date
Fri May 29 14:26:45 CST 2015 # 順利顯示出正確的英文日期時間啊!
[dmtsai@study ~]$ locale
LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
....中間省略....
LC_ALL=en_US.utf8
# 再次確認一下,結果出現,確實是en_US.utf8這個英文語系!
注意
LANG=enUS.utf8
是連續輸入的,等號兩邊並沒有空白字符
三、Bash
四、基礎命令
ls 查看文件和目錄屬性信息
屬性信息:
- 文檔類型
- 文檔權限
- 文檔容量大小
- 目錄的節點數
- 文檔的用戶和組信息
- 文檔名稱
參數:
-l 列出長數據串,包含文件的屬性
-h 顯示容量大小
-d 只是列出目錄本身,而不是目錄內的文件數據
-t 按時間排序
-r 倒序排序輸出
-a 全部文件,包含隱藏的文件
-i 列出inode的位置,而非文件屬性
-R 與子目錄內容一起列出來
-S 按文件容量大小排序,大於 4096 字節纔有效
--full-time 完整的呈現文件的修改時間 (modification time)
示例:
- 列出所有文件,包括隱藏的
ls -a
. b.txt .bash_history
.. .bash_logout .bash_profile
.bashrc
Linux 系統中以
.
爲開頭的文件或者目錄爲隱藏的文檔。
- 以列表的形式展示路徑中的文件和目錄信息
ls -l /tmp
- 只查看目錄本身的信息
ls -d /tmp
- 查看路徑中的文件,並以日期時間進行排序,以過去到現在的順序排序
ls -lrt /tmp
- 按照容量從小到大排序列
ls -lrS /tmp
- 文件分行顯示
ls -1
1
是數字1
我是誰?
id
id
輸出
uid=0(root) gid=0(root) groups=0(root)
我在哪兒?
pwd
(print working directory) 顯示當前所在目錄的路徑參數:
-P 顯示出實際路徑,而非使用的軟連接(link)路徑
pwd
輸出
/root
我要去哪兒?
cd
(change directory) 你想去哪裏
cd ~ 到自己的家目錄
cd ~shark 到 shark 用戶的家目錄
cd - 到上次離開的工作目錄
時間相對論
date
打印出當前 Linux 系統的時間
date
輸出
Fri Jul 19 07:15:48 UTC 2019
上面的輸出的信息是:
週五 七月 19 日 7 點 15 分 48 秒 UTC 時區 2019 年
輸出更多的格式:
假如想輸出 2019-07-19
, 只需要在命令後面加上具體的格式符號就可以。
date +"%Y-%m-%d"
輸出
2019-07-19
格式 | 含義 |
---|---|
%y | 去掉世紀的年份(00 - 99) |
%Y | 完整的年份 |
%m | 月份(01 - 12) |
%d | 一個月中的第幾天(01 - 31) |
%H | 一天中的第幾個小時(24小時制,00 - 23) |
%M | 分鐘數(00 - 59) |
%S | 秒(00 - 59) |
%F | 輸出 yyyy-mm-dd 的格式 |
%T | 輸出 hh:mm:ss 的格式 |
%c | 本地相應的日期和時間表示 |
%I | 大寫的 i 第幾個小時(24小時制) |
%j | 一年中的第幾天(001 - 366) |
%U | 一年中的星期數。(00 - 53星期天是一個星期的開始。)第一個星期天之前的所有天數都放在第0周。 |
%w | 一個星期中的第幾天(0 - 6,0是星期天) |
%W | 和%U基本相同,不同的是%W以星期一爲一個星期的開始。 |
%x | 本地相應日期 |
%X | 本地相應時間 |
%Z | 時區的名字(如果不存在爲空字符) |
%% | ‘%’字符 |
萬年曆
➜ ~ cal
July 2019
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
➜ ~ cal 01 2019
January 2019
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
➜ ~ cal 2019
2019
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 1 2 1 2
6 7 8 9 10 11 12 3 4 5 6 7 8 9 3 4 5 6 7 8 9
13 14 15 16 17 18 19 10 11 12 13 14 15 16 10 11 12 13 14 15 16
20 21 22 23 24 25 26 17 18 19 20 21 22 23 17 18 19 20 21 22 23
27 28 29 30 31 24 25 26 27 28 24 25 26 27 28 29 30
31
.. 略 ...
獲取幫助
命令的 --help 選項
date --help
man page
man date
注意: man page 是命令的幫助文檔,這個文檔是在安裝軟件的時候一起安裝到系統當中的,並且這個是不是必須安裝的。
以下了解即可
man page 的內容也分成好幾個部分來加以介紹該指令呢!就是上頭man date那個表格內, 以NAME作爲開始介紹,最後還有個SEE ALSO來作爲結束。基本上,man page大致分成下面這幾個部分:
代號 | 內容說明 |
---|---|
NAME | 簡短的指令、數據名稱說明 |
SYNOPSIS | 簡短的指令下達語法(syntax)簡介 |
DESCRIPTION | 較爲完整的說明,這部分最好仔細看看! |
OPTIONS | 針對 SYNOPSIS 部分中,有列舉的所有可用的選項說明 |
COMMANDS | 當這個程序(軟件)在執行的時候,可以在此程序(軟件)中下達的指令 |
FILES | 這個程序或數據所使用或參考或鏈接到的某些文件 |
SEE ALSO | 可以參考的,跟這個指令或數據有相關的其他說明! |
EXAMPLE | 一些可以參考的範例 |
有時候除了這些外,還可能會看到Authors與Copyright等,不過也有很多時候僅有NAME與DESCRIPTION等部分。
軟件的說明文檔
一般軟件的開發者都會在軟件的安裝包中包含軟件的說明文檔,這種說明文件一般會有比較詳細的說明。
說明文檔的目錄是在:
/usr/shark/doc/
三種幫助方式使用規則
在終端機模式中,如果你知道某個指令,但卻忘記了相關選項與參數,請先善用 --help 的功能來查詢相關信息;
當有任何你不知道的指令或文件格式這種玩意兒,但是你想要了解他,請趕快使用
man
來查詢!而如果你想要架設一些其他的服務,或想要利用一整組軟件來達成某項功能時,請趕快到
/usr/share/doc
下面查一查有沒有該服務的說明文檔喔!
關機的正確方式
[root@study ~]# shutdown -h now
立刻關機,其中 now 相當於時間爲 0 的狀態
[root@study ~]# shutdown -h 20:25
系統在今天的 20:25 分會關機,若在21:25才下達此指令,則隔天才關機
[root@study ~]# shutdown -h +10
系統再過十分鐘後自動關機
[root@study ~]# shutdown -r now
系統立刻重新開機
[root@study ~]# shutdown -r +30 'The system will reboot'
再過三十分鐘系統會重新開機,並顯示後面的訊息給所有在線上的使用者
[root@study ~]# shutdown -k now 'This system will reboot'
僅發出警告信件的參數!系統並不會關機啦!嚇唬人!
執行同步硬盤數據後,重啓
[root@study ~]# sync; sync; sync; reboot
瞭解
新增的
[root@study ~]# systemctl [指令]
指令項目包括如下:
halt 進入系統停止的模式,屏幕可能會保留一些訊息,這與你的電源管理模式有關
poweroff 進入系統關機模式,直接關機沒有提供電力喔!
reboot 直接重新開機
suspend 進入休眠模式
[root@study ~]# systemctl reboot # 系統重新開機
[root@study ~]# systemctl poweroff # 系統關機