天天看點

shell變量,環境變量配置檔案,管道符

env檢視變量    set 也是檢視變量的内容 比env強大些

[root@binbinlinux ~]# echo $HOSTNAME  檢視變量的名字

binbinlinux

[root@binbinlinux ~]# a=1;b=2

[root@binbinlinux ~]# echo $a $b    可以把兩個變量的值輸出出來

1 2

變量名字不可以 以數字開頭    變量的名字不能用系統指令的名字

[root@binbinlinux ~]# c='ls /tmp/'      舉例這個有空格特殊字元 用 '' 引起來

[root@binbinlinux ~]# echo $c

ls /tmp/

[root@binbinlinux ~]# cyvim=`which vim` 想讓他自動獲得 這條指令的結果要加反引号

[root@binbinlinux ~]# echo $cyvim

/usr/bin/vim

[root@binbinlinux ~]# a=1

[root@binbinlinux ~]# c="$a"12   用雙引号區分開來  不然會預設a是一個變量名字  

112

[root@binbinlinux ~]# echo $a

1

[root@binbinlinux ~]# bash   子shell  

[root@binbinlinux ~]# exit    退出子shell

exit

[root@binbinlinux ~]# export a=1    全局的聲明

[root@binbinlinux ~]# bash      進入子shell

[root@binbinlinux ~]# vim /etc/profile   把自定義變量加入到配置檔案當中

[root@binbinlinux ~]# unset  c   取消變量值   unset  

[root@binbinlinux ~]# vim /etc/profile

[root@binbinlinux ~]# vim /etc/profile.d/path.sh   已定義PATH

#!/bin/bash

export PATH=$PATH:/tmp/      全局聲明 PATH=$PATH:/tmp/

~

source  /etc/profile               即時生效

[root@binbinlinux ~]# echo $PATH      你會發現多了個 /tmp/

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/tmp/:/root/bin:/tmp/

[root@binbinlinux ~]# echo $PATH

[root@binbinlinux ~]# 修改 PATH

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/

[root@binbinlinux ~]# source /etc/profile   生效

[root@binbinlinux ~]# echo $PATH   檢視

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/:/tmp/

[root@binbinlinux ~]# echo $PS1

[\u@\h \W]\$

[root@binbinlinux ~]# ps1='[\u@\h \W]\$'   修改PS1

[root@binbinlinux ~]# PS1='[\u@\h \w]\$'

[root@binbinlinux ~]#cd /etc/init.d/

[root@binbinlinux /etc/init.d]#PS1='[\u@\h \t\w]\$'

[root@binbinlinux 18:21:02/etc/init.d]#PS1='[\u@\h- \t\w]\$'

[root@binbinlinux- 18:21:18/etc/init.d]#PS1='[\u@\h\W]\$'

[[email protected]]#cd

[root@binbinlinux~]#echo $PS1

[\u@\h\W]\$

vim  /etc/profile.d/umask.sh             修改umask 的配置檔案 改成 0023

umask  0023

然後 source  /etc/profile     聲明生效

針對使用者自己自定義配置檔案 環境變量

vim .bash_profile   定義

vim .bashrc  使用者的别名

[root@abinlinux ~]# ls *.txt    通配符 * 可以是多位   可以列出*下面的多位數*.txt

1.txt  c.txt  m.txt  z.txt

[root@abinlinux ~]# ls ?.txt      ? 以為  可以列出以為.txt

#号注釋  注釋不生效

\脫義符号

[root@abinlinux ~]# ls #1.txt   之執行了ls的指令   #号把後面注釋了

12               install.log             m.txt

[root@abinlinux ~]# ls \#1.txt       可以把後面的#号脫義掉

ls: 無法通路#1.txt: 沒有那個檔案或目錄

[root@abinlinux ~]# cat 1.txt |wc -l     把這條指令的結果丢給後面這天指令

460

[root@abinlinux ~]# echo $PATH             $是一個變量的字首

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/tmp/:/data/bin:/root/bin

!$ 去在次執行這條指令

[root@abinlinux ~]# ls 1.txt ;ls p.txt    把兩個指令寫成一行 用;号分開

1.txt

~   表示使用者的家目錄

[root@abinlinux ~]# ls ~    相當于ls /root/

[root@abinlinux ~]# sleep 10 &                &把一個指令丢到背景去

[1] 1701

[root@abinlinux ~]# jobs     正在運作中

[1]+  Running                 sleep 10 &

[root@abinlinux ~]# jobs

[1]+  Done                    sleep 10

[root@abinlinux ~]# >   重定向 >>追加重定向  2> 錯誤重定向  2>>錯誤追加重定向

[root@abinlinux ~]# wc -l <1.txt      < 反重定向

[root@abinlinux ~]# ls [1-9a-zA-Z].txt    中括号表示範圍  比如1-9 可以全部列出來

1.txt  2.txt  c.txt  m.txt  z.txt

本文轉自 amenging 51CTO部落格,原文連結:http://blog.51cto.com/11335852/1982678