管道符,shell变量,环境变量配置文件

本文深入解析Linux中管道符的功能与使用场景,介绍shell与环境变量的配置方法,包括变量定义规则、变量值特殊符号处理及变量累加技巧。同时,对比bashrc与bash_profile的区别,探讨环境变量配置文件的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[toc]

管道符,shell变量,环境变量配置文件

8.6 管道符和作业控制

8.7/8.8 shell变量

8.9 环境变量配置文件

扩展 bashrc和bash_profile的区别 http://ask.apelearn.com/question/7719

简易审计系统: http://www.68idc.cn/help/server/linux/2014042190951.html

关于PROMPT_COMMAND环境变量的含义 http://www.linuxnote.org/prompt_command-environment-variables.html

一、 管道符、作业控制

  • 管道符|,将前一个指令的输出作为后一个指令的输入
[root@localhost ~]# ls
1.txt  anaconda-ks.cfg  httpd-2.4.29         initial-setup-ks.cfg
2.txt  a.txt            httpd-2.4.29.tar.gz  [root@localhost
[root@localhost ~]# ls |wc -l
8
[root@localhost ~]# find ./ -type f |wc -l
2831
  • 作业控制 进程运行时,Ctrl+Z组合,可以使它暂停,让后用fg命令恢复
[root@localhost ~]# vim 1.txt

[1]+  已停止               vim 1.txt
[root@localhost ~]# fg
vim 1.txt

1111
~                                                                                         
~                                                                                         
~                                                                                         
  • bg,使它到后台运行
  • jobs命令,查看被暂停或者后台运行的任务
[root@localhost ~]# vi aaa.txt

[2]+  已停止               vi aaa.txt
[root@localhost ~]# jobs
[1]-  已停止               vim 1.txt
[2]+  已停止               vi aaa.txt
[root@localhost ~]# fg
vi aaa.txt

[2]+  已停止               vi aaa.txt
[root@localhost ~]# bg
[2]+ vi aaa.txt &  //&后台运行符号

[2]+  已停止               vi aaa.txt
  • wmstat 1 显示系统进程
[root@localhost ~]# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 1430272    932 242072    0    0    10     1   21   30  0  0 100  0  0
 0  0      0 1430272    932 242072    0    0     0     0   46   57  0  0 10
  • Sleep
[root@localhost ~]# jobs
[1]   已停止               vim 1.txt
[2]   已停止               vi aaa.txt
[3]   已停止               vmstat 1
[4]-  已停止               vmstat 1
[5]+  已停止               vmstat 1
[root@localhost ~]# sleep 1000
^Z        
[6]+  已停止               sleep 1000
  • ps aux查看进程
[root@localhost ~]# ps aux |grep sleep
root       4450  0.0  0.0 107908   608 pts/1    T    22:08   0:00 sleep 1000
root       4531  0.0  0.0 107908   608 ?        S    22:17   0:00 sleep 60
root       4533  0.0  0.0 112676   976 pts/1    S+   22:18   0:00 grep --color=auto sleep

二 变量

  • env列出系统预设的全部系统变量
[root@localhost ~]# env
XDG_SESSION_ID=16
HOSTNAME=localhost.localdomain
TERM=xterm
SHELL=/bin/bash
HISTSIZE=5000
SSH_CLIENT=192.168.72.1 54649 22
SSH_TTY=/dev/pts/1
USER=root
  • set命令多了很多变量,并且包括用户自定义的变量

  • 自定义变量 a=111

[root@localhost ~]# a=111
[root@localhost ~]# echo $a
111
  • [ ] 变量名规则:字母、数字下划线,首位不能为数字
[root@localhost ~]# a1=2
[root@localhost ~]# echo $a1
2
[root@localhost ~]# a_1=3
[root@localhost ~]# echo $a_1
3
  • [ ] 变量值有特殊符号时需要用单引号括起来
[root@localhost ~]# a="ab$cd"
[root@localhost ~]# echo $a
ab  //双引号会将特殊符号脱义处理
  • [ ] 变量的累加,这里用双引号
[root@localhost ~]# a=1
[root@localhost ~]# b=2
[root@localhost ~]# echo $a$b
12
[root@localhost ~]# c=a"$b"c
[root@localhost ~]# echo $c
a2c
  • [ ] 全局变量export b=2

[root@localhost ~]# w
 23:07:18 up  3:54,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.72.1     23:07    5.00s  0.06s  0.06s -bash
root     pts/1    192.168.72.1     21:16    6.00s  0.53s  0.00s w
[root@localhost ~]# echo $SSH_TTY
/dev/pts/1
  • 本地变量xavier,只能作用在当前系统
[root@localhost ~]# xavier=linux
[root@localhost ~]# echo $xavier
linux
[root@localhost ~]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager───2*[{NetworkManager}]
        ├─abrt-dbus───2*[{abrt-dbus}]
        ├─2*[abrt-watch-log]
  • bash是一个shell mark
  • [ ] unset变量
[root@localhost ~]# unset xavi
[root@localhost ~]# echo $xavi

三 环境变量配置文件

  • [ ] /etc/profile 用户环境变量,交互,登录才执行
  • [ ] /etc/bashrc 用户不用登录,执行shell就生效
  • [ ] ~/.bashrc

mark

  • [ ] ~/.bash_profile mark

  • [ ] ~/.bash_history

  • [ ] ~/.bash_logout

  • [ ] PS1='[\033[01;32m]\u@\h[\033[00m]:[\033[01;36m]\w[\033[00m]$ ' //使其变色

mark

mark

mark

[root@localhost ~]# vim /etc/bashrc
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# echo $PS1
[\u@\h \W]\$

PS1(是数字1而不是字母l),每个版本bash的PS1变量内的特殊符号可能有些小的差异,你可以先man bash 一下。下面是FC4环境下默认的特殊符号所代表的意义:

\d :代表日期,格式为weekday month date,例如:"Mon Aug 1"

\H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux

\h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略

\t :显示时间为24小时格式,如:HH:MM:SS

\T :显示时间为12小时格式

\A :显示时间为24小时格式:HH:MM

\u :当前用户的账号名称

\v :BASH的版本信息

\w :完整的工作目录名称。家目录会以 ~代替

\W :利用basename取得工作目录名称,所以只会列出最后一个目录

# :下达的第几个命令

$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$

默认的PS1内容为: '[\u@\h \W]$ ' ,所以默认的提示符就是: [root@localhost ~]# 。

但设置PS1的时候需要稍微处理一下

PS1="[\u@\h \W]\$ " 这样显示的结果才是正确的。

转载于:https://my.oschina.net/u/3898702/blog/2245579

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值