管道符、shell变量、配置文件

简介:

管道符和作业控制

把一个文件的输出作为后面的输入

cat 1.txt |wc -l ;

[root@localhost ~]# cat 2.txt |wc -l

2

 

cat 1.txt |grep 'aaa'

[root@localhost ~]# cat 2.txt |grep '1' //过滤出含有字符串‘1’的行

11

 

 ctrl z 暂停一个任务

[root@localhost ~]# vi 1.txt

[1]+  已停止               vi 1.txt

 

 jobs查看后台停止的任务

[root@localhost ~]# jobs

[1]+  已停止               vi 1.txt

 

bg[id]把任务调到后台并运行

[root@localhost ~]# vmstat 1

执行ctrl+z

[root@localhost ~]# jobs

[root@localhost ~]# bg 1 //命令在屏幕显示,仍然可以执行其他命令

[root@localhost ~]# fg 1 //命令在屏幕显示,执行其他命令不显示

Ctrl+c中断当前进程

 

[root@localhost ~]# jobs

[root@localhost ~]# sleep 1000

^Z

[1]+  已停止               sleep 1000

[root@localhost ~]# bg 1

[1]+ sleep 1000 &

[root@localhost ~]# jobs

[1]+  运行中               sleep 1000 &

[root@localhost ~]# sleep 200

^Z

[2]+  已停止               sleep 200

[root@localhost ~]# jobs

[1]-  运行中               sleep 1000 &

[2]+  已停止               sleep 200

[root@localhost ~]# bg 2

[2]+ sleep 200 &

[root@localhost ~]# jobs

[1]-  运行中               sleep 1000 &

[2]+  运行中               sleep 200 &

 

 fg[id]把任务调到前台

[root@localhost ~]# fg 1

vi 1.txt

 

 命令后面加&直接丢到后台

[root@localhost ~]# sleep 30 &  //一次性丢到后台运行

[3] 2497

[root@localhost ~]# jobs

[2]-  运行中               sleep 200 &

[3]+  运行中               sleep 30 &

 

shell变量

PATHHOMEPWDLOGNAME

 env命令

[root@localhost ~]# env  //获取变量(系统变量通常都是大写的英文字母)

XDG_SESSION_ID=1

HOSTNAME=localhost.localdomain

TERM=xterm

SHELL=/bin/bash

HISTSIZE=6000

 

 

 set命令多了很多变量,并且包括用户自定义的变量

[root@localhost ~]# set  //系统变量和用户自定义的变量

 

 自定义变量a=1

[root@localhost ~]# a=111  

[root@localhost ~]# echo $a

111

[root@localhost ~]# set |grep '111'  //自定义变量出现在set

_=111

a=111

 

 变量名规则:字母、数字下划线,首位不能为数字

 

 变量值有特殊符号时需要用单引号括起来

[root@localhost ~]# a='a b c'

[root@localhost ~]# echo $a

a b c

 

[root@localhost ~]# c="a$bc" //加双引号$会被系统当作指定变量的

[root@localhost ~]# echo $c

a

[root@localhost ~]# c='a$bc'

[root@localhost ~]# echo $c

a$bc

 

 变量的累加

[root@localhost ~]# a=1

[root@localhost ~]# b=2

[root@localhost ~]# echo $a$b

12

[root@localhost ~]# a='$abc2' //单引号里的$会被系统认为只是个符号

[root@localhost ~]# echo $a$b

$abc22

 

[root@localhost ~]# d=b$b"b

[root@localhost ~]# echo $d

b2b

 

 全局变量export b=2

[root@localhost ~]# w

 22:44:03 up  1:10,  2 users,  load average: 0.00, 0.01, 0.05

USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT

root     pts/0     21:33    3.00s  0.26s  0.00s w

root     pts/1     21:38    1:04m  0.08s  0.04s -bash

[root@localhost ~]# echo $SSH_TTY  //查看自己在哪个tty终端下面

/dev/pts/0

 

[root@localhost ~]# lsx=linux  //非全局变量

[root@localhost ~]# echo $lsx

Linux

 

[root@localhost ~]# bash  //shell

[root@localhost ~]# echo $lsx //结果为空

[root@localhost ~]# yum install -y psmisc  //安装pstree命令

 

[root@localhost ~]# export lsx=linux //定义全局变量(向下面的子shell有效),在其他终端是不生效的

[root@localhost ~]# bash //shell

[root@localhost ~]# echo $lsx

linux

 

 unset变量

[root@localhost ~]# a=1

[root@localhost ~]# echo $a

1

[root@localhost ~]# unset a //取消变量

[root@localhost ~]# echo $a //结果为空

 

环境变量配置文件

/etc/profile(系统层) 用户环境变量,交互,登录才执行

预设了几个重要的变量。PATHUSERLOGNAMEMAILHOSTNAMEHISTSIZEumask.

 

 /etc/bashrc (系统层)用户不用登录,执行shell就生效

预设umaskPS1

[root@localhost ~]# echo $PS1

[\u@\h \W]\$   

//\u指用户、\h指主机名、\W当前目录、\$指字符#(普通用户显示)$

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

[root@localhost ~]#cd /etc/sysconfig/

[root@localhost /etc/sysconfig]#

 

[root@localhost /etc/sysconfig]#PS1='{\u@\h \w}\$'

{root@localhost /etc/sysconfig}#

 

 ~/.bashrc(用户层)

该文件包含了专属于自己的shellbash信息,当登录和每次打开新的shell,该文件会被读取。如:可以将用户自定义的别名和变量写到这里

 

 ~/.bash_profile

该文件定义了用户的个人化路径与环境变量的文件名称。每个用户都可使用该文件输入属于自己的shell信息,当用户登录时,该文件只执行一次

 

 ~/.bash_history

该文件用于记录历史命令

 

 ~/.bash_logout

当退出shell时,会执行该文件。可以将一些清理的工作放到这里

 

 PS1='[\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]]\$ '

 PS2..




本文转自 虾米的春天 51CTO博客,原文链接:http://blog.51cto.com/lsxme/1980881,如需转载请自行联系原作者

相关文章
|
15天前
|
Shell Python
python 和shell 变量互相传递
python 和shell 变量互相传递
24 0
|
1月前
|
Shell Linux
|
3月前
|
Shell Linux
Linux下的Shell基础——变量、运算符、条件判断(二)
Linux下的Shell基础——变量、运算符、条件判断(二)
49 0
|
4月前
|
Unix Shell Linux
shell变量的作用域
shell变量的作用域。
22 0
|
2月前
|
搜索推荐 Shell Linux
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
42 2
|
2天前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)
|
29天前
|
Shell
shell学习(三)【shell变量、数组,文件命令、特殊变量】
shell学习(三)【shell变量、数组,文件命令、特殊变量】
14 0
|
29天前
|
Shell
shell 命令(一)概述【别名、 bash重定向 、定义变量】
shell 命令(一)概述【别名、 bash重定向 、定义变量】
22 0
|
1月前
|
Shell
【shell】shell命令行放在变量中执行以及变量的常用方法
【shell】shell命令行放在变量中执行以及变量的常用方法
|
2月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 内建命令】⭐Linux 声明变量的属性和类型 declare命令 使用指南
【Shell 命令集合 系统设置 内建命令】⭐Linux 声明变量的属性和类型 declare命令 使用指南
32 0