首页 > 系统服务 > 详细

Shell基础(中)

时间:2018-01-11 23:45:43      阅读:321      评论:0      收藏:0      [点我收藏+]
管道符、作业控制

技术分享图片
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: 定义用户退出的时候需要执行的操作

  1. 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基础(中)

原文:http://blog.51cto.com/13517254/2060021

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!