Shell程式設計-基礎

一枚程式設計師發表於2018-05-11
1.shell是什麼?
就是命令直譯器,是使用者訪問系統的介面。
shell還是一門程式語言,shell是一種解釋執行的程式語言。
shell是從前往後執行的。
一個作業系統中可以存在多個shell
[root@VM_0_16_centos ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh


2.shell的種類
1)sh
 bash(Linux)

2)csh



3.檢視使用的shell
echo $SHELL

[root@VM_0_16_centos ~]# echo $SHELL
/bin/bash




4.shell環境定義
1)臨時環境變數:即當前登入的環境有效,重新登入則失效
[root@VM_0_16_centos ~]# pstree
systemd─┬─YDLive───{YDLive}
        ├─YDService───6*[{YDService}]
        ├─acpid
        ├─2*[agetty]
        ├─atd
        ├─auditd───{auditd}
        ├─barad_agent─┬─barad_agent
        │             └─barad_agent───3*[{barad_agent}]
        ├─crond
        ├─dbus-daemon
        ├─dockerd-current─┬─docker-containe───6*[{docker-containe}]
        │                 └─9*[{dockerd-current}]
        ├─lsmd
        ├─lvmetad
        ├─ntpd
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sgagent───{sgagent}
        ├─sshd─┬─sshd───bash───pstree
        │      └─sshd───sshd
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        └─tuned───4*[{tuned}]
[root@VM_0_16_centos ~]# pstree
systemd─┬─YDLive───{YDLive}
        ├─YDService───6*[{YDService}]
        ├─acpid
        ├─2*[agetty]
        ├─atd
        ├─auditd───{auditd}
        ├─barad_agent─┬─barad_agent
        │             └─barad_agent───3*[{barad_agent}]
        ├─crond
        ├─dbus-daemon
        ├─dockerd-current─┬─docker-containe───6*[{docker-containe}]
        │                 └─9*[{dockerd-current}]
        ├─lsmd
        ├─lvmetad
        ├─ntpd
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sgagent───{sgagent}
        ├─sshd─┬─sshd───bash───pstree
        │      └─sshd───sshd
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        └─tuned───4*[{tuned}]
[root@VM_0_16_centos ~]# bash
[root@VM_0_16_centos ~]# pstree
systemd─┬─YDLive───{YDLive}
        ├─YDService───6*[{YDService}]
        ├─acpid
        ├─2*[agetty]
        ├─atd
        ├─auditd───{auditd}
        ├─barad_agent─┬─barad_agent
        │             └─barad_agent───2*[{barad_agent}]
        ├─crond
        ├─dbus-daemon
        ├─dockerd-current─┬─docker-containe───6*[{docker-containe}]
        │                 └─9*[{dockerd-current}]
        ├─lsmd
        ├─lvmetad
        ├─ntpd
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sgagent───{sgagent}
        ├─sshd───sshd───bash───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        └─tuned───4*[{tuned}]
[root@VM_0_16_centos ~]# bash
[root@VM_0_16_centos ~]# pstree
systemd─┬─YDLive───{YDLive}
        ├─YDService───6*[{YDService}]
        ├─acpid
        ├─2*[agetty]
        ├─atd
        ├─auditd───{auditd}
        ├─barad_agent─┬─barad_agent
        │             └─barad_agent───3*[{barad_agent}]
        ├─crond
        ├─dbus-daemon
        ├─dockerd-current─┬─docker-containe───6*[{docker-containe}]
        │                 └─9*[{dockerd-current}]
        ├─lsmd
        ├─lvmetad
        ├─ntpd
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sgagent───{sgagent}
        ├─sshd─┬─sshd───bash───bash───bash───pstree
        │      └─2*[sshd───sshd]
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        └─tuned───4*[{tuned}]


只在當前環境有效
[root@VM_0_16_centos ~]# aa=123
[root@VM_0_16_centos ~]# echo $aa
123
[root@VM_0_16_centos ~]#






將環境變數永久生效

超級使用者的環境變數
/etc/profile  針對系統所有使用者生效,次檔案應用於所有使用者

普通使用者的環境變數
$home_name/.bash_profile



系統定義好的環境變數
如$HOME,$PWD等

[root@VM_0_16_centos ~]# echo $HOME
/root
[root@VM_0_16_centos ~]# echo $PWD
/root
[root@VM_0_16_centos ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/lib/jvm/java/bin:/root/bin


















相關文章