bash的基本特性
1、命令歷史
history 查看以前所使用的命令
HISTFILE(環境變量) 指定命令歷史的存儲文件
[root@localhost tmp]# echo $HISTFILE --會讀取存放歷史命令的文件 /root/.bash_history
實例:修改環境變量 HISTFILE
[root@localhost tmp]# export HISTFILE=/root/aa [root@localhost tmp]# echo $HISTFILE /root/aa
HISTSIZE 指定bash進程能顯示的條目數 (最多存儲多少條命令)
HISTFILESIZE 存儲文件最多能存儲的條目數
實例:設置存儲文件最多能存儲的條目數爲1500,設置bash進程能顯示的條目數爲1200,如下
[root@localhost tmp]# export HISTSIZE=1200 [root@localhost tmp]# export HISTFILESIZE=1500 [root@localhost tmp]# echo $HISTSIZE 1200 [root@localhost tmp]# echo $HISTFILESIZE 1500
HISTCONTROL 設定歷史命令的記錄模式
[root@localhost tmp]# echo $HISTCONTROL ignoredups (忽略重複的歷史命令)
注:ignoredups 忽略重複的歷史命令
ignorespace 忽略空白字符開頭的歷史命令
ignoreboth 忽略前面兩者
history [選項]
-d 刪除指定的條目下的命令歷史
-c 清楚整個命令歷史7等等入
# (代表倒數多少行命令歷史)
-a 將內存中緩存的命令歷史追加到命令的歷史文件
!+# 便捷使用 執行第#行的命令
!! 雙歎號 是執行上一條命令
!clear(一定要是唯一的字符串,匹配最近一次歷史命令)
!$ 上條命令的最後一段
注:bash的一個特性,只要不是exit退出,所有的命令緩存都會存儲在內存當中,而並不是直接寫入硬盤的文件中,使用-a既可將內存中緩存的命令歷史追加到命令的歷史文件。
2、命令補全
PATH環境變量,記錄應用程序所存放的目錄
兩次tab鍵 補全命令是在PATH下面逐級尋找,如果找不到就會出現 command not found
3、路徑補全
cd /etc/syscon 兩次tab補全(就是bash的特性,不是環境變量設置)
4、命令執行狀態結果
echo $?
0 代表成功(正確) 狀態碼
1-255 代表各種不成功(錯誤)的狀態碼
5、命令自身的輸出結果
[root@localhost tmp]# ttt -bash: ttt: command not found [root@localhost tmp]# echo $? 127
6、bash的基礎特性---文件名的通配
作用:應對對文件名記憶的不夠全面
文件名通配 元字符
* 匹配任意長度的任意字符(理解爲所有字符)
實例:有如下目錄,使用不同的通配方式得出不同的結果。
1、pad
2、pd
3、paad
4、pa
結果 (括號爲能匹配到的目錄編號)
*pa* (1,3,4)
*pa (4)
p*a (4)
pa* (1,3,4)
? 匹配任意單個字符
p?d (1)
p? (2,4)
[ ] 匹配指定集合內的任意單個字符
[0-9] 表示任意單個數值
[a-z] 表示任意單個小寫字母
[A-Z] 表示任意單個大寫字母
[0-9a-zA-Z] 集合中的任意單個字符 (範圍可自定義)
[^] 匹配集合外的任意單個字符
[^0-9] 除去0-9以外的任意單個字符
[^a-z] 除去a-z以外的任意字符
[^A-Z] 除去A-Z以外的任意字符
6個小練習(答案在本文博客的最後,請先思考):
練習1:顯示/var目錄下所有l(是字母L)開頭,以一個小寫字母結尾,且中間出現一位數字的文件或目錄;
練習2:顯示/etc/目錄下,以任意一位數字開頭,且以非數字結尾的文件或目錄;
練習3: 顯示/etc/目錄下,以非字母開頭,後面跟了一個字母及其它任意長度任意字符的文件或目錄;
練習4:複製/etc/下,所有以m開頭,以非數字結尾的文件或目錄至/tmp/jiuren目錄中;
練習5:複製/etc目錄下,所有以.d結尾的文件或目錄至/tmp/jiuren2目錄中;
練習6:複製/etc目錄下,所有以.conf結尾,以m,n,r,p開頭的文件或目錄至/tmp/jiuren3目錄中;
linux 系統管理相關的常用命令(補充)
①關機命令
halt
init 0
shutdown -h
②重啓相關命令
init 6
reboot
shutdown -r
③日期相關的命令
date [選項]
+%F 顯示完整日期 full date; same as %Y-%m-%d
2015-04-02
+%D 短格式的日期 date; same as %m/%d/%y
04/02/15
+%Y 只顯示長格式的年 如2015
+%y 只顯示短格式的年 如15
+%T 顯示時間 時/分/秒
+%H 只顯示小時
+%M 只顯示分鐘
+%S 只顯示秒
+%s 時間戳
注:時間戳:從unix元年(1970年1月0點0時0分0秒)到現在經歷了多少秒
+%m 月份
+%d 天
[root@localhost etc]# date +%s
1427961551
cal 日曆軟件(顯示日曆命令)
-1 查看一個月內的日曆
-3 查看三個月內的日曆
-h 關閉高亮顯示
-j 查看羅馬日曆
-m 已星期一開頭,顯示日曆
-s 已星期日開頭,顯示日曆
-y 查看12個月的日曆
答案1:(6個小練習的答案)
[root@localhost tmp]# ls -d /var/l*[0-9]*[a-z] ls: cannot access /var/l*[0-9]*[a-z]: No such file or directory [root@localhost tmp]# mkdir -vp /var/like001like mkdir: created directory `/var/like001like' [root@localhost tmp]# ls -d /var/l*[0-9]*[a-z] /var/like001like
答案2:
[root@localhost ~]# ls -d /etc/[0-9]*[^0-9] ls: cannot access /etc/[0-9]*[^0-9]: No such file or directory [root@localhost ~]# mkdir -v /etc/123qwerty456asdfg mkdir: created directory `/etc/123qwerty456asdfg' [root@localhost ~]# ls -d /etc/[0-9]*[^0-9] /etc/123qwerty456asdfg
答案3:注:1-3小題中默認沒有題中所需目錄或文件,自己創建測試既可。
[root@localhost tmp]# ls -d /etc/[^a-zA-Z][a-zA-Z]* ls: cannot access /etc/[^a-zA-Z][a-zA-Z]*: No such file or directory [root@localhost tmp]# mkdir -v /etc/8aconf5345wrwer mkdir: created directory `/etc/8aconf5345wrwer' [root@localhost tmp]# ls -d /etc/[^a-zA-Z][a-zA-Z]* /etc/8aconf5345wrwer
答案4:
[root@localhost tmp]# mkdir -v /tmp/jiuren mkdir: created directory `/tmp/jiuren' [root@localhost tmp]# cp -r /etc/m*[^0-9] /tmp/jiuren/ [root@localhost tmp]# ls /tmp/jiuren/ magic mail.rc man.config mcelog mke2fs.conf motd my.cnf mailcap makedev.d maven mime.types modprobe.d mtab
答案5:
[root@localhost tmp]# mkdir -v /tmp/jiuren2 mkdir: created directory `/tmp/jiuren2' [root@localhost tmp]# cp -r /etc/*.d /tmp/jiuren2/ [root@localhost tmp]# ls /tmp/jiuren2/ bash_completion.d ld.so.conf.d profile.d request-key.d cgconfig.d logrotate.d rc0.d rsyslog.d chkconfig.d lsb-release.d rc1.d rwtab.d cron.d makedev.d rc2.d setuptool.d depmod.d modprobe.d rc3.d statetab.d dracut.conf.d oddjobd.conf.d rc4.d sudoers.d event.d pam.d rc5.d xinetd.d init.d popt.d rc6.d yum.repos.d latrace.d prelink.conf.d rc.d
答案6:
[root@localhost tmp]# mkdir -v /tmp/jiuren3 mkdir: created directory `/tmp/jiuren3' [root@localhost tmp]# cp -r /etc/[m,n,r,p]*.conf /tmp/jiuren3/ [root@localhost tmp]# ls /tmp/jiuren3/ mke2fs.conf numad.conf request-key.conf nfsmount.conf pm-utils-hd-apm-restore.conf resolv.conf nsswitch.conf prelink.conf rsyslog.conf ntp.conf readahead.conf