管道符,作业控制,shell变量,全局变量,环境变量的配置文件

来源:互联网 发布:数控线切割编程软件 编辑:程序博客网 时间:2024/05/17 22:03

管道符

管道符“|”:将前一个命令的输出作为后一个命令的输入。
查看一个文件有多少行:
除了用vim打开文件 “set nu” 显示行号外,还能用管道符,不用打开文件就能统计。

[root@shuai-01 ~]# cat 1.txt |wc -l1

查看当前目录下有多少文件:

[root@shuai-01 ~]# find ./ -type f |wc -l20

作业控制

运行一个进程时,这时来了一个很重要的事,立即将手头的事暂停,出去干另外的事。重要的事干完了再回来做这个事。
暂停:ctrl + z
恢复命令:fg
终止命令:Ctrl + c
后台运行命令:bg
查看任务命令:jobs
用vim编辑1.txt文件

[root@shuai-01 ~]# vim 1.txt

中途有事,想暂停干点别的。(Ctrl + z)

[root@shuai-01 ~]# vim 1.txt[1]+  已停止               vim 1.txt

干完后想要恢复编辑1.txt (fg )

中途又来了点事(编辑2.txt),要将1.txt放后台

[root@shuai-01 ~]# bg 1[1]+ vim 1.txt &

“&”:表示后台运行
查看jobs:

[root@shuai-01 ~]# jobs[1]+  已停止               vim 1.txt[2]-  已停止               vim 2.txt

shell变量

变量由变量名和变量值组成。
变量名=变量值
变量分系统预设变量和用户自定义变量
一般的系统预设变量名都是大写,如:HISTSIZE,SHELL,PATH

查看变量的值用echo命令:echo $变量名

[root@shuai-01 ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin[root@shuai-01 ~]# echo $SHELL/bin/bash

env命令能显示系统环境变量

[root@shuai-01 ~]# envXDG_SESSION_ID=1HOSTNAME=shuai-01SELINUX_ROLE_REQUESTED=TERM=xtermSHELL=/bin/bashHISTSIZE=1000SSH_CLIENT=192.168.176.1 56774 22SELINUX_USE_CURRENT_RANGE=SSH_TTY=/dev/pts/0USER=root

set命令就将系统预设变量和用户自定义全部显示

用户自定义变量规则:
1. 变量格式为:变量名=变量值 (等号两边不能有空格)
2. 变量名由字母,下划线,和数字组成,并且不能以数字开头
3. 变量内容有特殊字符时(空格),要加上单引号”
定义一个变量:

[root@shuai-01 ~]# a=123[root@shuai-01 ~]# echo $a123

变量值有空格:

[root@shuai-01 ~]# b='shuai ao'[root@shuai-01 ~]# echo $bshuai ao

变量中有其他变量内容:

[root@shuai-01 ~]# c="$a""$b"[root@shuai-01 ~]# echo $c123shuai ao

以上设置的变量只在当前shell下才有用
关于全局变量
全局变量就是在这个shell下定义的变量在这个shell的子shell下也能用。
查看系统进程树结构(pstree命令)

[root@shuai-01 ~]# pstree |grep bash        |-sshd-+-sshd-+-bash        |      |      `-bash-+-grep        |      `-sshd---bash

两个分开的sshd表示两个终端登录的,第一个sshd两分开的bash表示克隆登录。
在一个shell下运行bash,会进入另一个shell

[root@shuai-01 ~]# pstree |grep bash        |-sshd-+-sshd-+-bash        |      |      `-bash---bash-+-grep        |      `-sshd---bash

新进的shell就是上一个shell的子shell。
在当前shell下定义一个全局变量(export)

[root@shuai-01 ~]# export b=123[root@shuai-01 ~]# echo $b123[root@shuai-01 ~]# bash[root@shuai-01 ~]# echo $b123[root@shuai-01 ~]# pstree |grep bash        |-sshd-+-sshd-+-bash        |      |      `-bash---bash---bash-+-grep        |      `-sshd---bash

当前shell下定义的全局变量在当前shell和子shell中能生效。(在上一级shell和其他终端是不生效的)
删除变量(unset)

[root@shuai-01 ~]# unset b

环境变量的配置文件

环境变量分系统环境变量和个人环境变量
系统环境变量配置文件:
/etc/profile :PATH ,HISTSIZE,USER,umask
/etc/bashrc:PS1 , umask
ps1:显示命令行开头的一串[root@shuai-01 ~]#

[root@shuai-01 ~]# echo $PS1[\u@\h \W]\$

个人环境变量的配置文件
./.bash_profile:登录时执行
./.bashrc:自定义alias和自定义变量可以写入该文件中
./.bash_history:记录历史命令
./.bash_logout:退出shell执行

ps:有时候我们需要对线上用户操作记录进行历史记录待出现问题追究责任人,,但Linux系统自带的history命令用户有自行删除权限,那怎么设置可以让用户的操作记录实时记录,并保证普通用户无权删除呢?本文教你一招http://www.68idc.cn/help/server/linux/2014042190951.html

阅读全文
0 0