2018-03-08阿銘Linux學習
阿新 • • 發佈:2018-03-08
Linux學習8.6 管道符和作業控制
cat 1.txt |wc -l;cat 1.txt |grep ‘aaa‘
ctrl+z 暫停一個任務
jobs 查看後臺的任務
bg[id] 把任務調到後臺
fg[id] 把任務調到前臺
命令後面加 & 直接丟到後臺
8.7 shell變量 上
PATH,HOME,PWD,LOGNAME env 命令 set 命令多了很多變量,並且包括用戶自定義的變量 自定義變量a=1 變量命名規則:字母,數字,下劃線,首位不能為數字 變量值有特殊符號時,需要用單引號括起來 變量的累加 全局變量export b=2 unset變量 [root@aming-01 ~]# env XDG_SESSION_ID=1 HOSTNAME=aming-01 SELINUX_ROLE_REQUESTED= TERM=xterm-256color SHELL=/bin/bash HISTSIZE=2000 SSH_CLIENT=192.168.104.1 55630 22 SELINUX_USE_CURRENT_RANGE= OLDPWD=/tmp/d6z SSH_TTY=/dev/pts/0 USER=root LS_COLORS=rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.webm=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45: MAIL=/var/spool/mail/root PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin PWD=/root LANG=zh_CN.UTF-8 SELINUX_LEVEL_REQUESTED= HISTCONTROL=ignoredups SHLVL=1 HOME=/root LOGNAME=root SSH_CONNECTION=192.168.104.1 55630 192.168.104.160 22 LESSOPEN=||/usr/bin/lesspipe.sh %s XDG_RUNTIME_DIR=/run/user/0 _=/usr/bin/env [root@aming-01 ~]# a1=2 [root@aming-01 ~]# echo $a1 2 [root@aming-01 ~]# a_2=3 [root@aming-01 ~]# echo $a_2 3 [root@aming-01 ~]# _a3=4 [root@aming-01 ~]# echo $_a3 4 [root@aming-01 ~]# 5a=6 -bash: 5a=6: 未找到命令 [root@aming-01 ~]# a=‘a$bc‘ [root@aming-01 ~]# echo $a a$bc [root@aming-01 ~]# b="a$bc" [root@aming-01 ~]# echo $b a [root@aming-01 ~]# b=2 [root@aming-01 ~]# c=a"$b"c [root@aming-01 ~]# echo $c a2c
8.8 shell變量 下
[root@aming-01 ~]# w 23:57:06 up 1:53, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 192.168.104.1 22:04 2.00s 0.23s 0.00s w [root@aming-01 ~]# echo $SSH_TTY /dev/pts/0 非全局變量,僅在當前登陸的TTY有效 export b=1 全局變量,僅在當前 shell 裏有效 shell變量是局部的,而環境變量是全局的。環境變量是通過Shell命令來設置的,設置好的環境變量又可以被所有當前用戶所運行的程序所使用。對於bash這個Shell程序來說,可以通過變量名來訪問相應的環境變量,通過export來設置環境變量。 vi .bash_profile #修改用戶環境變量文件 需要註意的是,最好不要把當前路徑”./”放到PATH裏,這樣可能會受到意想不到的攻擊。 設置變量的三種方法 1. 在/etc/profile文件中添加變量【對所有用戶生效(永久的)】 用VI在文件/etc/profile文件中增加變量,該變量將會對Linux下所有用戶有效,並且是“永久的”。 例如:編輯/etc/profile文件,添加CLASSPATH變量 # vi /etc/profile export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib 註:修改文件後要想馬上生效還要運行# source /etc/profile不然只能在下次重進此用戶時生效 2.在用戶目錄下的.bash_profile文件中增加變量【對單一用戶生效(永久的)】 用VI在用戶目錄下的.bash_profile文件中增加變量,改變量僅會對當前用戶有效,並且是“永久的”。 例如:編輯guok用戶目錄(/home/guok)下的.bash_profile $ vi /home/guok/.bash.profile 添加如下內容: export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib 註:修改文件後要想馬上生效還要運行$ source /home/guok/.bash_profile不然只能在下次重進此用戶時生效 3.直接運行export命令定義變量【只對當前shell(BASH)有效(臨時的)】 在shell的命令行下直接使用[export變量名=變量值]定義變量,該變量只在當前的shell(BASH)或其子shell(BASH)下是有效的,shell關閉了,變量也就失效了,再打開新shell時就沒有這個變量,需要使用的話還需要重新定義。
8.9 環境變量配置文件
/etc/profile #用戶環境變量,交互,登陸才執行
/etc/bashrc #用戶不用登陸,執行 shell 就生效
~/.bashrc
~/.bash_profile
~/.bash_history
~/.bash_logout #用戶退出時,需要做的動作,如刪除命令歷史記錄
/etc/profile /etc/bashrc 不要輕易修改這兩個環境變量配置文件,建議修改用戶環境變量 ~/.bashrc ~/.bash_profile
2018-03-08阿銘Linux學習