管道符、作業控制、shell變數、全域變數、環境變數的設定檔,shell全域變數
管道符
管道符“|”:將前一個命令的輸出作為後一個命令的輸入。?
查看一個檔案有多少行:?
除了用vim開啟檔案 “set nu” 顯示行號外,還能用管道符,不用開啟檔案就能統計。
[root@shuai-01 ~]# cat 1.txt |wc -l1
查看目前的目錄下有多少檔案:
[root@shuai-01 ~]# find ./ -type f |wc -l20
作業控制
運行一個進程時,這時來了一個很重要的事,立即將手頭的事暫停,出去幹另外的事。重要的事幹完了再回來做這個事。?
暫停:ctrl + z?
恢複命令:fg?
終止命令:Ctrl + c?
後台運行命令:bg?
查看任務命令:jobs?
用vim編輯1.txt檔案
[root@shuai-01 ~]# vim 1.txt
中途有事,想暫停幹點別的。(Ctrl + z)
[root@shuai-01 ~]# vim 1.txt[1]+ 已停止 vim 1.txt
幹完後想要恢複編輯1.txt (fg )
中途又來了點事(編輯2.txt),要將1.txt放後台
[root@shuai-01 ~]# bg 1[1]+ vim 1.txt &
“&”:表示後台運行?
查看jobs:
[root@shuai-01 ~]# jobs[1]+ 已停止 vim 1.txt[2]- 已停止 vim 2.txt
shell變數
變數由變數名和變數值組成。?
變數名=變數值?
變數分系統預設變數和使用者自訂變數?
一般的系統預設變數名都是大寫,如:HISTSIZE,SHELL,PATH
查看變數的值用echo命令:echo $變數名
[root@shuai-01 ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin[root@shuai-01 ~]# echo $SHELL/bin/bash
env命令能顯示系統環境變數
[root@shuai-01 ~]# envXDG_SESSION_ID=1HOSTNAME=shuai-01SELINUX_ROLE_REQUESTED=TERM=xtermSHELL=/bin/bashHISTSIZE=1000SSH_CLIENT=192.168.176.1 56774 22SELINUX_USE_CURRENT_RANGE=SSH_TTY=/dev/pts/0USER=root
set命令就將系統預設變數和使用者自訂全部顯示
使用者自訂變數規則:?
1. 變數格式為:變數名=變數值 (等號兩邊不能有空格)?
2. 變數名由字母,底線,和數字組成,並且不能以數字開頭?
3. 變數內容有特殊字元時(空格),要加上單引號”?
定義一個變數:
[root@shuai-01 ~]# a=123[root@shuai-01 ~]# echo $a123
變數值有空格:
[root@shuai-01 ~]# b='shuai ao'[root@shuai-01 ~]# echo $bshuai ao
變數中有其他變數內容:
[root@shuai-01 ~]# c="$a""$b"[root@shuai-01 ~]# echo $c123shuai ao
以上設定的變數只在當前shell下才有用?
關於全域變數?
全域變數就是在這個shell下定義的變數在這個shell的子shell下也能用。?
查看系統進程樹結構(pstree命令)
[root@shuai-01 ~]# pstree |grep bash |-sshd-+-sshd-+-bash | | `-bash-+-grep | `-sshd---bash
兩個分開的sshd表示兩個終端登入的,第一個sshd兩分開的bash表示複製登入。?
在一個shell下運行bash,會進入另一個shell
[root@shuai-01 ~]# pstree |grep bash |-sshd-+-sshd-+-bash | | `-bash---bash-+-grep | `-sshd---bash
新進的shell就是上一個shell的子shell。?
在當前shell下定義一個全域變數(export)
[root@shuai-01 ~]# export b=123[root@shuai-01 ~]# echo $b123[root@shuai-01 ~]# bash[root@shuai-01 ~]# echo $b123[root@shuai-01 ~]# pstree |grep bash |-sshd-+-sshd-+-bash | | `-bash---bash---bash-+-grep | `-sshd---bash
當前shell下定義的全域變數在當前shell和子shell中能生效。(在上一級shell和其他終端是不生效的)?
刪除變數(unset)
[root@shuai-01 ~]# unset b
環境變數的設定檔
環境變數分系統內容變數和個人環境變數?
系統內容變數設定檔:?
/etc/profile :PATH ,HISTSIZE,USER,umask?
/etc/bashrc:PS1 , umask?
ps1:顯示命令列開頭的一串[root@shuai-01 ~]#
[root@shuai-01 ~]# echo $PS1[\u@\h \W]\$
個人環境變數的設定檔?
./.bash_profile:登入時執行?
./.bashrc:自訂alias和自訂變數可以寫入該檔案中?
./.bash_history:記錄曆史命令?
./.bash_logout:退出shell執行