雲端計算面試常見問題,怎麼理解shell?
Shell是系統的使用者介面,提供了使用者與核心進行互動操作的一種介面。它接收使用者輸入的命令並把它送入核心去執行。
實際上Shell是一個命令直譯器,它解釋由使用者輸入的命令並且把它們送到核心。不僅如此,Shell有自己的程式語言用
於對命令的編輯,它允許使用者編寫由shell命令組成的程式。Shell程式語言具有普通程式語言的很多特點,比如它也有
迴圈結構和分支控制結構等,用這種程式語言編寫的Shell程式與其他應用程式具有同樣的效果。
我們可以使用SHELL實現對Linux系統的大部分管理例如:
1. 檔案管理
2. 使用者管理
3. 許可權管理
4. 磁碟管理
5. 軟體管理
6. 網路管理
......
使用Shell的兩種方式:
輸入命令 效率低 適合少量的工作
Shell Script 效率高 適合完成複雜,重複性工作
內容提要:
bash shell提示符
shell 語法
bash 特性
Linux獲得幫助
一、bash shell提示符:
===================
[root@tianyun ~]# echo $PS1
[\u@\h \W]\$
[root@tianyun ~]# date
2019年 10月 24日 星期三 09:38:54 CST
[root@tianyun ~]# whoami
root
[root@tianyun ~]# useradd jack
[root@tianyun ~]# passwd jack
Changing password for user jack.
New UNIX password:
BAD PASSWORD: it is WAY too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
二、shell 語法
=====================
命令 選項 引數
[root@tianyun ~]# ls
[root@tianyun ~]# ls -a
[root@tianyun ~]# ls -a /home
命令:整條shell命令的主體
選項:會影響會微調命令的行為 //通常以 -, --
引數:命令作用的物件
三、bash基本特性
1. 自動補全<tab>
# ls /etc/sysconfig/network-scripts/
# ls /etc/sysconfig/network-scripts/ifcfg-eth0
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# systemctl restart crond.service
# date -s 12:30
2. 快捷鍵
^C 終止前臺執行的程式 //ping 10.18.40.100
^D 退出 等價exit
^L 清屏
^A 游標移到命令列的最前端 //編輯命令
^E 游標移到命令列的後端 //編輯命令
^U 刪除游標前所有字元 //編輯命令
^K 刪除游標後所有字元 //編輯命令
^R 搜尋歷史命令,利用關鍵詞
Alt+. 引用上一個命令的最後一個引數,等價於!$
ESC . 引用上一個命令的最後一個引數,等價於!$
# ls /etc/sysconfig/network-scripts/ifcfg-eth0
# cat ESC .
3. 歷史命令
# history
a. 游標上下鍵
b. ^R //搜尋歷史命令(輸入一段某條命令的關鍵字:必須是連續的)
c. !220 //執行歷史命令中第220條命令
!字串 //搜尋歷史命令中最近一個以xxxx字元開頭的命令,例如!ser
!$ //引用上一個命令的最後一個引數
示例1:
[root@instructor ~]# ls /root /home
[root@instructor ~]# cd !$
cd /home
示例2:
[root@instructor ~]# ls /root /home
[root@instructor ~]# touch !$/file1
touch /home/file1
示例3:
[root@instructor ~]# systemctl restart crond
[root@instructor ~]# ls
[root@instructor ~]# date
[root@instructor ~]# !sy
一週之後講
4. 命令別名
[root@tianyun ~]# alias tianyun='cat /etc/sysconfig/network-scripts/ifcfg-eth0' //建立別名(臨時的,僅在當前Shell生效)
[root@tianyun ~]# unalias tianyun //取消tianyun這個別名
[root@tianyun ~]# alias //檢視系統當前的別名
ll='ls -l --color=tty'
[root@tianyun ~]# ll
[root@tianyun ~]# /bin/ls
[root@tianyun ~]# /bin/ls --color
[root@tianyun ~]# type -a ls //檢視命令型別
ls is aliased to `ls --color=auto'
ls is /usr/bin/ls
ls is /bin/ls
[root@tianyun ~]# /bin/ls
[root@tianyun ~]# /usr/bin/ls
[root@tianyun ~]# ls //別名優先
[root@tianyun ~]# \ls //跳過別名
[root@tianyun ~]# cp -rf /etc /tmp //第一次
[root@tianyun ~]# cp -rf /etc /tmp //第二次
[root@tianyun ~]# \cp -rf /etc /tmp
[root@tianyun ~]# type -a cp
cp is aliased to ‘cp -i’
cp is /usr/bin/cp
cp is /bin/cp
永久別名:
/etc/bashrc shell配置檔案之一
[root@tianyun ~]# gedit /etc/bashrc //新增如下行
alias tianyun='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
四、Linux獲得幫助
1. 命令 --help
# ls --help
用法:ls [選項]... [檔案]...
ls 常見選項
-a all,檢視目錄下的所有檔案,包括隱藏檔案
-l 長列表顯示
-h human 以人性化方式顯示出來
-d 只列出目錄名,不列出其他內容
-t 按修改時間排序
-S 按檔案的Size排序
-r 逆序排列reverse
-i 顯示檔案的inode號(索引號)
# date --help
Usage: date [OPTION]... [+FORMAT]
or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
# date
# date +%H
# date +%F
# date 0214080019
# date 0214080019.30
# date -s 12:00
[root@tianyun ~]# touch `date +%F`_file.txt
[root@tianyun ~]# ls
2017-07-24_file.txt
兩種時間:
硬體時間,即主機板BIOS時間
系統時間,即Linux系統時間
2. man 手冊名 (針對命令幫助,針對配置檔案幫助,針對函式幫助)
[root@tianyun ~]# man man
MANUAL SECTIONS
The standard sections of the manual include:
1 User Commands
2 System Calls
3 C Library Functions
4 Devices and Special Files
5 File Formats and Conventions
6 Games et. Al.
7 Miscellanea
8 System Administration tools and Deamons
命令幫助: 章節1,章節8
函式幫助: 章節2,章節3
檔案格式: 章節5
一般情況是不需要使用章節號,例如:
# man ls
# man useradd
# man setfacl (/EXAMPLES)
技巧1:按章節查詢
/usr/bin/passwd 修改使用者口令命令
/etc/passwd 包含使用者資訊的配置檔案
# man -f passwd 列出所有章節中的passwd手冊
# man 1 passwd passwd命令的幫助
# man 5 passwd 使用者配置檔案的幫助
技巧2:在所有章節中查詢
# man -a passwd
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69916964/viewspace-2650029/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- OpenStack及雲端計算(面試)常見問題面試
- 雲端計算面試題及答案,常見的Shell指令碼面試題面試題指令碼
- 雲端計算工程師面試題集錦,常見雲端計算面試題及答案工程師面試題
- 雲端計算面試常見問題:Linux目錄結構面試Linux
- 好程式設計師雲端計算教程分享Linux雲端計算面試常見問題一程式設計師Linux面試
- 好程式設計師雲端計算教程分享Linux雲端計算面試常見問題二程式設計師Linux面試
- 好程式設計師雲端計算教程分享Linux雲端計算面試常見問題三程式設計師Linux面試
- 雲端計算面試題及答案,AWS雲端計算面試題面試題
- 雲端計算面試題及答案,雲端計算崗位精品面試題面試題
- 雲端計算工程師面試題集錦,雲端計算面試題及答案工程師面試題
- Linux雲端計算面試題第二彈,樂視雲端計算面試題Linux面試題
- 雲端計算面試題及答案,雲端計算工程師面試題集錦面試題工程師
- 常見的雲端計算安全問題以及如何解決
- 雲端計算面試題筆試錦集,雲端計算實用面試題答案二面試題筆試
- 雲端計算面試題筆試錦集,雲端計算實用面試題答案一面試題筆試
- 【面試】面試常見問題整理面試
- 雲端計算大資料面試題,雲端計算大資料面試題集錦大資料面試題
- 常見面試SQL問題面試SQL
- Spring 常見面試問題Spring面試
- Python面試常見問題Python面試
- Redis面試常見問題Redis面試
- 好程式設計師Linux雲端計算教程分享Shell指令碼面試題程式設計師Linux指令碼面試題
- Java程式設計師面試常見問題Java程式設計師面試
- 求職面試常見問題:Python常見面試題全解析附答案求職Python面試題
- 常見的Java面試問題Java面試
- 5年程式設計師面試,常見面試問題解析程式設計師面試
- 雲端計算面試題及答案,雲端計算主要就業崗位面試題就業
- 軟體測試面試常見問題面試
- 2019年.net常見面試問題面試
- Flask專案常見面試問題Flask面試
- 好程式設計師分享:Java面試題常見問題程式設計師Java面試題
- 程式設計師面試常問計算機網路問題程式設計師面試計算機網路
- 什麼叫做雲端計算?學習雲端計算先要理解
- 高薪崗位雲端計算面試題,雲端計算運維工程師必備高薪面試題運維工程師
- python常見面試題講解(二)計算字元個數Python面試題字元
- 前端面試之webpack面試常見問題前端面試Web
- 雲端計算面試題:檔案定位路徑面試題
- 好程式設計師雲端計算培訓分享Linux Shell常見命令總結大全程式設計師Linux