管道符、shell变量、配置文件
管道符和作业控制| 把一个文件的输出作为后面的输入
cat 1.txt |wc -l ;
# cat 2.txt |wc -l
2
cat 1.txt |grep 'aaa'
# cat 2.txt |grep '1' //过滤出含有字符串‘1’的行
11
ctrl z 暂停一个任务
# vi 1.txt
+已停止 vi 1.txt
jobs查看后台停止的任务
# jobs
+已停止 vi 1.txt
bg把任务调到后台并运行
# vmstat 1
执行ctrl+z
# jobs
# bg 1 //命令在屏幕显示,仍然可以执行其他命令
# fg 1 //命令在屏幕显示,执行其他命令不显示
Ctrl+c中断当前进程
# jobs
# sleep 1000
^Z
+已停止 sleep 1000
# bg 1
+ sleep 1000 &
# jobs
+运行中 sleep 1000 &
# sleep 200
^Z
+已停止 sleep 200
# jobs
-运行中 sleep 1000 &
+已停止 sleep 200
# bg 2
+ sleep 200 &
# jobs
-运行中 sleep 1000 &
+运行中 sleep 200 &
fg把任务调到前台
# fg 1
vi 1.txt
命令后面加&直接丢到后台
# sleep 30 &//一次性丢到后台运行
2497
# jobs
-运行中 sleep 200 &
+运行中 sleep 30 &
shell变量
PATH,HOME,PWD,LOGNAME
env命令
# env//获取变量(系统变量通常都是大写的英文字母)
XDG_SESSION_ID=1
HOSTNAME=localhost.localdomain
TERM=xterm
SHELL=/bin/bash
HISTSIZE=6000
set命令多了很多变量,并且包括用户自定义的变量
# set//系统变量和用户自定义的变量
自定义变量a=1
# a=111
# echo $a
111
# set |grep '111'//自定义变量出现在set里
_=111
a=111
变量名规则:字母、数字下划线,首位不能为数字
变量值有特殊符号时需要用单引号括起来
# a='a b c'
# echo $a
a b c
# c="a$bc" //加双引号$会被系统当作指定变量的
# echo $c
a
# c='a$bc'
# echo $c
a$bc
变量的累加
# a=1
# b=2
# echo $a$b
12
# a='$abc2' //单引号里的$会被系统认为只是个符号
# echo $a$b
$abc22
# d=b”$b"b
# echo $d
b2b
全局变量export b=2
# w
22:44:03 up1:10,2 users,load average: 0.00, 0.01, 0.05
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 21:33 3.00s0.26s0.00s w
root pts/1 21:38 1:04m0.08s0.04s -bash
# echo $SSH_TTY//查看自己在哪个tty终端下面
/dev/pts/0
# lsx=linux//非全局变量
# echo $lsx
Linux
# bash//子shell
# echo $lsx //结果为空
# yum install -y psmisc//安装pstree命令
# export lsx=linux //定义全局变量(向下面的子shell有效),在其他终端是不生效的
# bash //子shell
# echo $lsx
linux
unset变量名
# a=1
# echo $a
1
# unset a //取消变量
# echo $a //结果为空
环境变量配置文件
/etc/profile(系统层) 用户环境变量,交互,登录才执行
预设了几个重要的变量。PATH、USER、LOGNAME、MAIL、HOSTNAME、HISTSIZE、umask.
/etc/bashrc (系统层)用户不用登录,执行shell就生效
预设umask、PS1
# echo $PS1
[\u@\h \W]\$
//\u指用户、\h指主机名、\W当前目录、\$指字符#(普通用户显示)$
# PS1='[\u@\h \w]\$'
#cd /etc/sysconfig/
#
#PS1='{\u@\h \w}\$'
{root@localhost /etc/sysconfig}#
~/.bashrc(用户层)
该文件包含了专属于自己的shell的bash信息,当登录和每次打开新的shell时,该文件会被读取。如:可以将用户自定义的别名和变量写到这里
~/.bash_profile
该文件定义了用户的个人化路径与环境变量的文件名称。每个用户都可使用该文件输入属于自己的shell信息,当用户登录时,该文件只执行一次
~/.bash_history
该文件用于记录历史命令
~/.bash_logout
当退出shell时,会执行该文件。可以将一些清理的工作放到这里
PS1='[\[\033\u@\h\[\033:\[\033\w\[\033]\$ '
PS2..
页:
[1]