Shell基礎(中)
阿新 • • 發佈:2018-01-12
unset wall ctrl+z nac rac 配置 har 取消 release 管道符、作業控制
1.管道符 | :把一個命令輸出給後面命令執行
[root@weix-01 ~]# ls
111 1.txt 2_hard.txt 2.txt.bak.bak 4.txt apr-1.4.5
123 1.txt~ 2_soft.txt 3.txt anaconda-ks.cfg.1 apr-1.4.5.tar.gz
[root@weix-01 ~]# ls | wc -l
12
2.ctrl+z:暫停執行該命令:
[root@weix-01 ~]# vim 1.txt [1]+ 已停止 vim 1.txt
3.使用命令fg將暫停的命令繼續執行:將命令放到前臺
[root@weix-01 ~]# fg
vim 1.txt
4.jobs命令:將停止的命令列出來
[root@weix-01 ~]# jobs
[1]- 已停止 vim aa.txt
[2]+ 已停止 vim 1.txt
5.bg:將命令調到後臺,繼續運行
6.sleep 時間: 暫停多久
7.命令後面加&,直接將命令放到後臺執行。
Shell變量
1.env:查看系統變量
[root@weix-01 ~]# env XDG_SESSION_ID=1 HOSTNAME=weix-01 SELINUX_ROLE_REQUESTED= TERM=xterm SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=192.168.127.1 53879 22 SELINUX_USE_CURRENT_RANGE= SSH_TTY=/dev/pts/0 USER=root
2.set命令可以查看系統變量以及用戶自定義變量:
[root@weix-01 ~]# set BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:histappend:hostcomplete:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=() BASH_CMDS=() BASH_LINENO=() BASH_SOURCE=() BASH_VERSINFO=([0]="4" [1]="2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu") BASH_VERSION=‘4.2.46(2)-release‘ COLUMNS=80 DIRSTACK=() EUID=0 GROUPS=()
3.變量命名規則:字母數字下劃線,首位不能是數字
[root@weix-01 ~]# a1=2
[root@weix-01 ~]# echo $a1
2
[root@weix-01 ~]# a_1=3
[root@weix-01 ~]# echo $a_1
3
[root@weix-01 ~]# _a1=4
[root@weix-01 ~]# echo $_a1
4
[root@weix-01 ~]# 1aa=5
-bash: 1aa=5: 未找到命令
4.變量值有特殊符號時,需要用單引號擴起來
[root@weix-01 ~]# a=a b c
-bash: b: 未找到命令
[root@weix-01 ~]# a=‘a b c‘
雙引號可能無法正確顯示:
[root@weix-01 ~]# a="a$bc"
[root@weix-01 ~]# echo $a
a
[root@weix-01 ~]# a=‘a$bc‘
[root@weix-01 ~]# echo $a
a$bc
5.變量疊加:多個變量疊加的時候可以用雙引號引起來
[root@weix-01 ~]# a=1
[root@weix-01 ~]# b=2
[root@weix-01 ~]# echo $a$b
12
[root@weix-01 ~]# a=‘a$bc‘
[root@weix-01 ~]# echo $a$b
a$bc2
[root@weix-01 ~]# c="a$bc"
[root@weix-01 ~]# c="a$b"c
[root@weix-01 ~]# echo $c
a2c
6.在一個終端上直接定義變量為本地變量,在其他終端上無法生效
7.定義全局變量:export,針對一個sshd下面的shell向下兼容的全局,無法向上
[root@weix-01 ~]# export weix=linux
[root@weix-01 ~]# echo $weix
linux
[root@weix-01 ~]# bash
[root@weix-01 ~]# echo $weix
linux
8.pstree:可以查看在哪一個bash下
[root@weix-01 ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
├─VGAuthService
├─agetty
├─auditd───{auditd}
├─chronyd
├─crond
├─dbus-daemon───{dbus-daemon}
├─firewalld───{firewalld}
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─polkitd───5*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd───sshd───bash───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───{vmtoolsd}
9.取消賦值:unset
[root@weix-01 ~]# echo $weix
linux
[root@weix-01 ~]# unset weix
[root@weix-01 ~]# echo $weix
環境變量配置文件
1.profile:用戶登錄就自動加載
2.bashrc:執行shell腳本就自動加載,不用登錄
3.bash-logout: 定義用戶退出的時候需要執行的操作
- PS1:改變顯示
[root@weix-01 ~]# PS1=‘[\u@\h \w]\$‘ [root@weix-01 ~]#ls 111 1.txt~ 2.txt.bak.bak aa.txt apr-1.4.5.tar.gz 123 2_hard.txt 3.txt anaconda-ks.cfg.1 1.txt 2_soft.txt 4.txt apr-1.4.5 [root@weix-01 ~]#cd /etc/ Display all 186 possibilities? (y or n) [root@weix-01 ~]#cd /etc/ [root@weix-01 /etc]#cd /root/123 [root@weix-01 ~/123]#PS1=‘[\u@\h \W]\$‘ #大寫W,顯示相對路徑 [root@weix-01 123]#cd #小寫w顯示絕對路徑
Shell基礎(中)