Linux的哲學思想 優勢 一切都是一個文件。(包括硬體,文本,二進位,源代 碼) 系統中擁有小型,單一用途的程式。(一個程式只負責 做好自己的本職工作) 當遇到複雜任務,通過不同功能用途的程式組合起來 完成。 輕量級,一臺服務 dhcp ip 資料庫服務 網 頁 避免令人困惑的用戶界面就是沒有複雜 ...
Linux的哲學思想
優勢
- 一切都是一個文件。(包括硬體,文本,二進位,源代 碼)
- 系統中擁有小型,單一用途的程式。(一個程式只負責 做好自己的本職工作)
- 當遇到複雜任務,通過不同功能用途的程式組合起來 完成。 輕量級,一臺服務 dhcp ip 資料庫服務 網 頁
- 避免令人困惑的用戶界面就是沒有複雜的圖形界面。 ()我想怎麼使用程式,win程式
- 連配置文件都存儲在文本中,方便增刪改查。
- 不在乎尾碼名,有沒有都無所謂,不是通過尾碼名來 定義文件的類型。
基礎知識
root #表示用戶
localhost #主機名
~ #家目錄
# #管理員用戶
$ #普通用戶
root #root的家目錄
opt #opt目錄
關機命令:
1、halt #立刻關機
2、poweroff #立刻關機
3、shutdown -h now #立刻關機(root用戶 使用)
4、shutdown -h 10 #10分鐘後自動關機
重啟命令:
reboot
init 6
shutdown -r now
Linux命令
shell
shell的定義
用戶使用應用程式發佈指令比如 (使用瀏覽器訪問網頁)
shell去通知操作系統需要進行什麼樣的操作(相當於解釋層)
內核相當於操作系統去指揮硬體 硬體才能工作,否則無法交互
不同的shell環境
bash是linux裡面預設的shell程式位於/bin/bash csh ksh 語言不同比如中文英文都是交流的語言
[root@localhost ~] # echo $SHELL //顯示當前shell
/bin/bash
[root@localhost ~] # cat /etc/shells //顯示當前系統所有使用的shell
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
[root@localhost mnt]# sh 切換shell環境 sh-4.2# [root@localhost mnt]# pstree 查看使用過的shell環境 ├─sshd───sshd───bash───csh───bash───tcsh ───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
├─upowerd───2*[{upowerd}]
├─vmtoolsd───{vmtoolsd}
├─wpa_supplicant
└─xdg-permission-───2*[{xdg-permission-}]
shell與內、外部命令
(1) shell 分為內部命令和外部命令,一般先執行內部命令,hash 再執行外部命令
內部命令 | 外部命令 |
集成於Shell解釋器程式內部 的一些特殊指令,也稱為內 建(Built-in)指令 | Linux系統中能夠完成 特定功能的腳本文件 或二進位程式 |
屬於Shell的一部分 | 屬於Shell解釋器程式 之外的命令 |
沒有單獨對應的系統文件 | 每個外部命令對應了 系統中的一個文件 |
自動載入記憶體,可以直接使 用 | 必須知道其對應的文 件位置,由Shell載入 後才能執行 |
(2)help命令可以查看內部命令
[root@localhost ~]# help cd
cd: cd [-L|[-P [-e]]] [dir]
Change the shell working directory.
Change the current directory to DIR. The default DIR is the value of the
HOME shell variable.
The variable CDPATH defines the search path for the directory containing
DIR. Alternative directory names in CDPATH are separated by a colon (:).
A null directory name is the same as the current directory. If DIR begins
with a slash (/), then CDPATH is not used.
If the directory is not found, and the shell option 'cdable_vars'is set,
the word is assumed to be a variable name. If that variable has a value,
its value is used for DIR.
Options:
-L force symbolic links to be followed
-P use the physical directory structure without following symbolic
links
-e if the -P option is supplied, and the current working directory
cannot be determined successfully, exit with a non-zero status
The default is to follow symbolic links, as if '-L' were specified.
Exit Status:
Returns 0 if the directory is changed, and if $PWD is set successfully when
-P is used; non-zero otherwise.
(3)可以使用type 命令來區分內外部命令
[root@localhost /] # type cd // 內嵌代表內部命令
cd 是 shell 內嵌
[root@test1 /] # type -a ls
ls 是 'ls --color=auto' 的別名 //別 名代表外部命令
ls 是 /usr/bin/ls //外部命令會有程式路徑
[root@localhost /]# whereis ls //whereis 可以查找命令具體的位置所在
ls: /usr/bin/ls
/usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@localhost ~]# type -a
echo echo 是 shell 內嵌
echo 是 /usr/bin/echo
外部命令存放於 echo $PATH 一個一個找,找到為 止,找不到就報無命令
[root@localhost ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin :/usr/bin:/root/bin
外部命令使用過後會被記錄在記憶體(緩存,但是會占用 記憶體,臨時性的)加快讀取速度
[root@localhost ~]# type useradd useradd 是 /usr/sbin/useradd [root@localhost ~]# useradd wu [root@localhost ~]# type useradd
useradd 已被hash (/usr/sbin/useradd)
[root@localhost ~]# hash //或者使用hash
hash 緩存
(4)開啟或關閉內部命令
關閉:enable -n 內部命令
開啟:enable 內部命令
[root@localhost opt]# enable -n cd
[root@localhost opt]# cd /mnt/
[root@localhost opt]#
(5)hash 緩存空間
選項 | 說明 |
-d<指令> | 在哈希表中清除某個命令記錄 |
-r | 清除哈希表中的所有記錄 |
-L | 顯示哈希表中的命令 |
-p<指令> | 將具有完整路徑的命令加入到哈希表中 |
-t<指令> | 顯示哈希表中命令的完整路徑 |
# 命令行格式 |
- 在Linux 操作系統中,凡是在字元操作界面中輸入能夠完成特定操作和任務的字元串都可以稱為命令。
- 嚴格來說,命令通常只代表實現某一類功能的程式的名稱。
格式
命令字 空格 [選項] 空格 [參數]
解釋命令字 選項 參數各自的意思及具體使用方法
-
命令字
是整條命令中最關鍵的一部分,唯一確定。
-
選項
短格式選項:使用“-”符號引導,通常是一個字母;
長格式選項:使用“--”符號引導,通常是完整的單詞。
-
參數
命令字的處理對象,可以是文件名、目錄(路徑)名或用戶名等內容,個數可以是零到多個。
;可以隔開命令
,執行多個命令
編輯Linux命令行的輔助操作
-
快捷鍵 | 功能 |
Tab 鍵 | 自動補齊(兩次可以顯示所有選項) |
反斜杠“\” | 強制換行或轉義 |
Ctrl+a | 游標移到最前 |
Ctrl+e | 游標移到最後 |
Ctrl+U | 清空至行首不包括當前游標處的 字元 |
Ctrl+K | 清空至行尾包括當前游標處的字元 |
Ctrl+w | 從當前游標刪除到開頭 |
ALT+d | 從當前游標刪除末尾 |
Ctrl+l | 清屏 |
Ctrl+c | 取消本次命令編輯 |
Ctrl+s/Ctrl+q | 鎖屏/解鎖 |
向上下箭頭 | 回看執行過的命令 |
# 獲得命令幫助 | |
## help |
- [ ]表示可選項
- CAPS或<>表示可變化的數據
- ...表示一個列表可加多個
- x|y|z 表示或的意思
- -abc 是-a -b -c (有些命令選項有先後順序)
只能查看內部命令的使用方法
[root@localhost ~]# help echo
#內部命令查看幫助
echo: echo [-neE] [參數 ...]
將參數寫到標準輸出。
在標準輸出上顯示 ARG 參數後跟一個換行。
選項:
-n 不要追加換行
-e 啟用下列反斜杠轉義的解釋
-E 顯式地抑制對於反斜杠轉義的解釋
'echo' 對下列反斜杠字元進行轉義:
\a 警告(響鈴)
\b 退格
\c 抑制更多的輸出
\e 轉義字元
\f 格式提供
\n 換行
\r 回車
\t 橫向製表符
\v 縱向製表符
\\ 反斜杠
\0nnn 以 NNN (八進位)為 ASCII 碼的字 符。
NNN 可以是 0到3個八進位數字
\xHH 以 HH (十六進位)為值的八比特字 符。
HH可以是 一個或兩個十六進位數字
退出狀態:
返回成功除非有寫錯誤發生。
--help
查看外部命令幫助
[root@localhost ~]# ls --help
[root@localhost dev]# useradd --help
man
man分九個章節預設打開第一章節
[root@localhost ~]# whatis ls
ls (1) - 列目錄內容
1代表第一章手冊
ls (1p) - list directory contents
1p 代表開發程式使用
[root@localhost ~]# whatis passwd //可以查看命令的章節
passwd (5) - (未知的主題)
sslpasswd (1ssl) - compute password hashes
passwd (1) - update user's authentication tokens
[root@localhost ~]# man 5 passwd //查看第五章內容,第5章一般是配置文件格式詳細解釋
[root@localhost ~]# man 7 ascii
[root@localhost ~]# man 7 UTF-8
[root@localhost ~]# mandb //生成man資料庫,man命令無效時
正在刪除 /usr/share/man 里的舊資料庫條目...
mandb: 警告:/usr/share/man/man8/fsck.fat.8.manpage-fix.gz:忽略錯誤的文件名
正在處理 /usr/share/man 下的手冊頁...
正在刪除 /usr/share/man/hu 里的舊資料庫條目...
正在刪除 /usr/share/man/pl 里的舊資料庫條目...
[root@localhost ~]# man man
該清單是一組用冒號分隔的欲查找的手冊清單。此選項將覆蓋 MANSECT 環境變數。
有些指令或程式可能有一個以上的主題,它們位於不同的區段中。因此,要查看較後的區 段,你可以在此指定 man
查找區段的順序。具體區段劃分如下所示:
區段1:用戶指令
區段2:系統調用
區段3:程式庫調用
區段4:設備
區段5:文件格式 shadow passwd fstab
區段6:游戲
區段7:雜項
區段8:系統指令
區段9:內核內部指令
區段n:Tcl或Tk指令
info
[root@localhost dev]# info ls
百度是最快解決方式不拘泥形式 |