一、Linux終端介紹 Shell提示符 Bash Shell基本語法
tty 查看當前登入的信息
1.1 不同終端之間的通信
[root@hui36 ~]# tty
/dev/pts/1
[root@hui36 ~]# echo "hellow" > /dev/pts/1
1.2 對所有終端廣播,10分鍾后關機
方法一:
[root@hui36 ~]# shutdown +10 #所有終端都會受到消息 shutdown -c #取消關機
方法二:
[root@hui36 ~]# wall "I will shutdown in 10 minutes-LH" Broadcast message from root@hui36.com (pts/1) (Fri Nov 2 23:14:59 2018): I will shutdown in 10 minutes-LH
1.3 shell
Shell俗稱殼,它提供了用戶與內核進行交互操作的一種接口,它接收用戶輸入的命令並把它送入內核去執行
Shell實際上是一個命令解釋器,它通過解釋用戶輸入的命令並把它傳輸給系統內核去執行。
Shell有自己的編程語言用於對命令的編輯,它允許用戶編寫由shell命令組成的程序。Shell編程語言具有普通編程語言的很多特點,比如它也有循環結構和分支控制結構等,用這種編程語言編寫的Shell程序與其他應用程序具有同樣的效果。
查看系統的shell,一般都是使用bash(其他的介紹:)
[lh@hui36 /root]$ more /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh //c風格增強版 /bin/csh //c風格
查看當前使用的shell
[root@xuegod63 ~]# head -1 /etc/passwd root:x:0:0:root:/root:/bin/bash
二、基本操作命令
2.1 ls
ls -l 列出文件的詳細信息,如創建者,創建時間,文件的讀寫權限列表等等,長列表 ls -a 列出所有的文件,包含隱藏文件(.開頭的文件和.與..) ls -d 查看目錄,不查看里面的內容
ls -S sort=size
第一個字符文件類型中:
d:目錄文件
l:鏈接文件
b:塊設備文件
c:字符設備文件
p:管道文件
-: 表示普通文件
顏 色 |
代表內容 |
舉 例 |
藍色 |
目錄 |
/etc |
黑色 |
文件 |
/etc/passwd |
淺藍色 |
鏈接 |
/etc/grub2.cfg |
紅色 |
壓縮包 |
boot.tar.gz |
綠色 |
可執行文件 |
/etc/init.d/network |
黑底黃字 |
設備文件 |
/dev/sda |
2.2 alias 別名
alias 可以看到我們的所有別名
type -a 命令 可以看到命令的所有,別名是優先的
type ll 可以看到 ll 是 ls -l --colore=auto的別名
2.2.1 臨時別名
1.定義別名-系統重啟就會失效
[root@hui36 ~]# alias vimens33="vim /etc/sysconfig/network-scripts/ifcfg-ens33"
2.使用別名
vimens33
3.刪除別名
unalias vimens33
2.2.2 永久別名
1.每個用戶自己設置別名:
編輯每個用戶的家目錄下的 ~/.bashrc 文件最最后插入
alias vimenss33="vim /etc/sysconfig/network-scripts/ifcfg-ens33"
要想立即生效需 source ~/.bashrc 導入一下,不然只有重新登入生效
2.所有用戶生效
/etc/profile 這個全局shell配置,在末尾加上,其他同上。
2.3 cd
作用:切換目錄(change directory)
語法:cd 目錄
說明:直接輸入cd表示回到當前用戶的宿主(家)目錄
cd 切換到宿主的家目錄 cd . 切換到宿主當前目錄 cd .. 切換到上一級目錄 cd - 切換到上一次工作目錄
2.4 history
命令:history 4個快速查找Linux歷史命令的技巧: 方法1: 光標上下鍵 方法2: ctrl+r -》輸入某條命令的關鍵字-》找出來對應的命令,按右光標鍵 方法3: !數字 //執行歷史命令中第N條命令 方法4:!字符串 //搜索歷史命令中最近一個以xxxx字符開頭的命令,例如!vim
2.5 linux下快捷鍵
都是用Ctrl+下面的單詞, ^表示Ctrl ^C 終止前台運行的程序 , 如:ping g.cn 后,想停止按下Ctrl+C ^D 退出 等價exit ^L 清屏與clear功能一樣 ^R 搜索歷史命令,可以利用好關鍵詞 !$ 引用上一個命令的最后一個參數 [root@xuegod63 network-scripts]# cat /etc/hosts [root@xuegod63 network-scripts]# vim !$ #相當於執行: vim /etc/hosts
三、系統時間管理
在Linux中有硬件時鍾與系統時鍾等兩種時鍾。硬件時鍾是指主機板上的時鍾設備,也就是通常可在BIOS畫面設定的時鍾;系統時鍾則是指kernel中 的時鍾;
所有Linux相關指令與函數都是讀取系統時鍾的設定
當Linux啟動時,系統時鍾會去讀取硬件時鍾的設定,之后系統時鍾即獨立運作
3.1 兩種時間
硬件時間:hwclock
系統時間:date
時區:
- UTC (Universal Time Coordinated):世界標准時間
- GMT (Greenwich Mean Time):格林尼治時間
- CST (China standard Time):中國標准時間
3.2 格式化輸出時間
- %Y 年份
- %m month (01..12)
- %d 按月計的日期(例如:01)
- %M minute (00..59)
- %H 小時(00-23)
- %S 秒(00-60)
date '+%F' 2018-03-20 date "+%Y-%m-%d %H:%m:%S" 2018-03-20 21:03:53
中間的符號可自定制
3.3 修改時間
date --help
-s, --set=STRING 把時間設為字符串所描述的時間
例: [root@xuegod63 ~]# date -s "2018-11-2 22:30" 2018年 11月 02日 星期五 22:30:00 CST
3.4 指定間隔時間做腳本
-d, --date=STRING
顯示由 STRING 指定的時間, 而不是當前時間
date -d "+1 days" +"%F" 一天后 date -d "+1 mouths" +"%F" 一月后
3.5 time測試命令運行時間
time 作用:一般用來測量一個命令的運行時間
使用方法:time 在后面直接跟上命令和參數
[root@xuegod63 ~]# time ls -l /etc/
real 0m0.056s
user 0m0.016s
sys 0m0.040s
說明:
real:實際使用時間 = 下面兩者之和
user:用戶狀態使用的時間 = bash到內核的路上
sys:內核狀態使用的時間 = 執行時間
四、幫助命令使用
man 命令
命令 -h 或 --help
五、關機與7個啟動級別
5.1 關機命令
init :切換啟動級別
reboot :重啟
poweroff:關機
shutdown:調用init 0,1等級別來關機,可定時與發送通知
[root@xuegod63 ~]# shutdown -h +10 #10分鍾之后關機 [root@xuegod63 ~]# shutdown -h 23:30 #指定具體的時間點進行關機 [root@xuegod63 ~]# shutdown -h now #立即關機 [root@xuegod63 ~]#shutdown -r 22:22 #22:22 以后重啟
5.2 運行級別
5.2.1 運行級別
默認有7個級別
- 0 系統停機模式,系統默認運行級別不能設置為0,否則不能正常啟動,機器關的
- 1 單用戶模式,root權限,用於系統維護,禁止遠程登陸,就像Windows下的安全模式登錄
- 2 多用戶模式,沒有NFS和網絡支持
- 3 完整的多用戶文本模式,有NFS和網絡,登陸后進入控制台命令行模式
- 4 系統未使用,保留一般不用,在一些特殊情況下可以用它來做一些事情。例如在筆記本電腦的電池用盡時,可以切換到這個模式來做一些設置
- 5 圖形化模式,登陸后進入圖形GUI模式,X Window系
- 6 重啟模式,默認運行級別不能設為6,否則不能正常啟動。運行init 6機器就會重啟
[root@localhost ~]# init 0 #關機 [root@localhost ~]# init 3 #進入3級別字符界面 [root@localhost ~]# init 5 #進入5級別圖形界面 [root@localhost ~]# init 6 #重啟
5.2.2 修改默認的啟動級別
centos7之前 直接修改 /etc/inittab中的文件 id:3:initdefault , 將3改為5 ,重新啟動系統
centos7 查看/etc/inittab已經不支持,為了統一命令,都是使用systemctl set-default multi-user.target(或runleaveN)
獲取當前的啟動級別
systemctl set-default
設置默認第三啟動級別
[root@xuegod63 ~]# systemctl set-default multi-user.target
設置默認第五啟動級別 [root@xuegod63 ~]# systemctl set-default graphical.target
runleave 查看當前的運行級別 3 5 表示從3到5的切換