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
| 百度是最快解決方式不拘泥形式 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/508727.html
標籤:Linux
