2019独角兽企业重金招聘Python工程师标准>>>

管道符 |

  • 管道符的作用是将前面一个命令的输出作为后面一个命令的输入
[root@linux-128 ~]# cat /etc/passwd |wc -l
27
[root@linux-128 ~]# cat /etc/passwd |grep "root"
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

作业控制

  1. 当一个进程运行时,ctrl+z 可以暂停这个任务
[root@linux-128 ~]# sleep 100
^Z
[1]+  已停止               sleep 100
  1. 当暂停后,可以输入fg(foreground简写)命令来恢复这个进程,让它在前端继续运行。
[root@linux-128 ~]# fg
sleep 100
  1. 我们也可以使用命令bg(background简写)将暂停的进程直接丢到后台运行。
[root@linux-128 ~]# bg
[1]+ sleep 100 &
  1. 我们可以使用命令jobs来查看有那些进程是被暂停了。
[root@linux-128 ~]# jobs
[1]-  已停止               sleep 100
[2]+  已停止               sleep 200
  1. 我们可以直接将一条命令丢在后台运行。
[root@linux-128 ~]# sleep 300 &
[3] 2180
[root@linux-128 ~]# jobs
[1]-  已停止               sleep 100
[2]+  已停止               sleep 200
[3]   运行中               sleep 300 &

变量

  • 变量就是使用一个比较简单的字符串来代替某些具有特殊意义的设定以及数据。
  • 环境变量PATH,它是shell预设的一个变量,通常shell预设的变量都是大写的。
[root@linux-128 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@linux-128 ~]# echo $HOME
/root
[root@linux-128 ~]# echo $HISTSIZE
5000

命令env

  • 使用env命令可以列出系统预设的全部系统变量
[root@linux-128 ~]# env
XDG_SESSION_ID=1
HOSTNAME=linux-128
TERM=xterm
SHELL=/bin/bash
HISTSIZE=5000
SSH_CLIENT=192.168.88.1 54716 22
SSH_TTY=/dev/pts/0
USER=root
MAIL=/var/spool/mail/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=zh_CN.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
SSH_CONNECTION=192.168.88.1 54716 192.168.88.128 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/0
_=/usr/bin/env
  • HOSTNAME:表示主机的名称;
  • SHELL:表示当前用户的shell类型;
  • HISTSIZE:表示历史记录数;
  • MAIL:表示当前用户的邮件存放目录;
  • PATH:改变量决定了shell将到那些目录中寻找命令或者程序;
  • PWD:表示当前目录;
  • LANG:这是与语言相关的环境变量,多语言环境可以修改此环境变量;
  • HOME:表示当前用户的家目录;
  • LOGNAME:表示当前用户的登录名;

命令set

  • 命令set不仅可以显示系统预设的环境变量,还可以显示用户自定义的变量。

自定义变量规则:

  • 设定变量的格式为a=b,其中a为变量名,b为变量的内容,等号两边不能有空格;
  • 变量名只能由字母,数字以及下划线组成,而且不能以数字开头。
  • 当变量值带有特殊字符(如空格)时,需要加上单引号。

[root@linux-128 ~]# name=wu zhou
-bash: zhou: 未找到命令[root@linux-128 ~]# name='wu zhou'
[root@linux-128 ~]# echo $name
wu zhou
  1. 变量内容本身就带有单引号,这个时候需要加上双引号
[root@linux-128 ~]# name="wu'zhou"
[root@linux-128 ~]# echo $name
wu'zhou
  1. 如果变量内容中需要用到其他命令,运行结果则可以使用反引号;
[root@linux-128 ~]# name=`pwd`
[root@linux-128 ~]# echo $name
/root
  1. 变量内容可以累加其他变量的内容,单需要加上双引号
[root@linux-128 ~]# a=1
[root@linux-128 ~]# b=2
[root@linux-128 ~]# c=3
[root@linux-128 ~]# d="$a$b$c"
[root@linux-128 ~]# echo $d
123
  1. 查看当前在那个终端下:
[root@linux-128 ~]# echo $SSH_TTY
/dev/pts/0
  1. 如果再当前shell中运行bash命令,则会进入一个新的shell中,这个shell是原来shell的子shell,我们可以用pstree来查看: 需要先安装一个包:
[root@linux-128 ~]# yum install -y psmiscsystemd─┬─NetworkManager───2*[{NetworkManager}]├─agetty├─auditd───{auditd}├─chronyd├─crond├─dbus-daemon├─firewalld───{firewalld}├─irqbalance├─lvmetad├─master─┬─pickup│        └─qmgr├─polkitd───5*[{polkitd}]├─rsyslogd───2*[{rsyslogd}]├─sshd───sshd───bash─┬─bash───pstree│                    └─2*[sleep]├─systemd-journal├─systemd-logind├─systemd-udevd├─tuned───4*[{tuned}]└─vmtoolsd───{vmtoolsd}
  1. 设置全局变量
export a=11
  • 注意:export声明变量a后,只会让该shell的子shell或者孙shell生效,但是不会让它的父shell和其他终端的shell生效。
  1. 撤销变量 unset 变量名

系统环境变量和个人环境变量

  • /etc/profile 用户环境变量,交互,登录才执行
  • /etc/bashrc 用户不用登录,执行shell就生效
  • ~/.bashrc
  • ~/.bash_profile
  • ~/.bash_history
  • ~/.bash_logout
  • PS1='[\033[01;32m]\u@\h[\033[00m]:[\033[01;36m]\w[\033[00m]$ '

环境变量分为系统层次变和用户层次

  • /etc/profile 设置系统环境变量,不管针对哪个用户这些环境变量都会生效,但是设置这个配置文件

不太好,编辑的时候会有一段提示: 这不是一个好主意来改变这个文件,除非你知道你 正在做的事情。如果你想更改某些环境变量,最好在/etc/profile.d /下去自定义,创建格式为XXX.sh, 在未来的更新将防止合并的必要性。

[root@wuzhou ~]# ls /etc/profile.d
colorls.csh glib2.csh lang.csh less.csh path.sh vim.sh
colorls.sh glib2.sh lang.sh less.sh vim.csh which2.sh[root@wuzhou ~]# vim /etc/profile.d/path.sh
#!/bin/path
export PATH=$PATH:/tmp/:/data/bin/
  • 编辑完后要source /etc/profile,加载的时候会调用profile.d下面的所有文件。

  • /etc/bashrc 设置PS1和umask; 它和/etc/profile一样,在/etc/bashrc设置不好,要在/etc/profile.d下去定义,创建格式为.sh的文件

  • 进去编辑配置,完成后source /etc/profile 加载一下。

[root@wuzhou ~]# vim /etc/profile.d/umask.sh
#bsah/bin
PS1="[\u@\h-\t \W]\$ "
[root@wuzhou ~]# source /etc/profile
[root@wuzhou-21:41:13 ~]$ ls
  • \u 用户名 \h主机名 \t 时间 \W 当前目录 \w 目录的完整路径 $ 就是#,如果普通用户就是$

  • .bash_profile 定义用户自己的环境变量,每个用户都可以使用该文件输入专用于自己使用的

  • shell信息,当用户登陆时,该文件仅仅执行一次

  • .bashrc :文件包含专属用户自己的shell的bash信息,登陆时以及每次打开新的shell时,该文件都被读取。可以将用户之定义的alias或者自定义变量写到这个文件中

  • .bash_history 记录命令历史用的

  • .bash_logout 退出shell时,会执行该文件,可以把一些清理的工作放到这个文件中。

转载于:https://my.oschina.net/u/3706916/blog/1574726

管道符和作业控制、shell变量、环境变量配置文件相关推荐

  1. L24 shell基础知识(二)管道符-作业控制-shell变量-环境变量配置文件

    主要内容: 1管道符 2作业控制 3 shell变量 4 环境变量配置文件 1管道符和作业控制 管道符 "|", 就是把前面的命令运行的结果丢给后面的命令. 2作业控制 当运行一个 ...

  2. linux shell 变量减法_第四章 shell和环境变量

    第四章 shell和环境变量 4.1    shell简介 4.1.1 编译器 一台计算机从基本架构上讲,由最基本的硬件组成硬件结构(如:cpu.内存.主板.声卡.显卡等),我们知道,硬件组成完备,但 ...

  3. Shell基础-环境变量配置文件

    Shell基础-环境变量配置文件 Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生 ...

  4. linux shell 获取环境变量,bash shell中的环境变量

    环境变量--bash shell使用环境变量来存储系统相关数据,并允许将数据存储在内存中. 环境变量分为:全局环境变量 本地环境变量 目录全局环境变量 本地环境变量 设置全局环境变量 删除环境变量 P ...

  5. Shell:环境变量

    在大家初次接触到Linux系统中,相信环境变量会让你头疼不已.习惯了在Windows设置PATH的你,被Linux上各种文件可以设置环境变量头疼不已!对于可以在当前用户执行的命令,但是sudo就无法执 ...

  6. [转载]maya文件路径变量环境变量

    南无阿弥陀佛 原文地址:maya文件路径变量环境变量作者:抱紧我的小鱼干 MAYA_APP_DIR(Windows 和 Linux)  maya文档默认位置 此变量定义个人 Maya 应用程序目录.此 ...

  7. 管道符和作业控制 shell变量 环境变量配置文件

    管道符  | 用于将前一个指令的输出作为后一个指令的输入 [root@pantinglinux ]# cat 1.txt | wc -l 2 [root@pantinglinux ]# cat 1.t ...

  8. 管道符和作业控制 shell变量 环境变量配置文件

    8.6 管道符和作业控制 8.7/8.8 shell变量 8.9 环境变量配置文件 管道符和作业控制 管道符:表示把一个文件的输出内容传送到后面的命令 grep  用来过滤指定关键词的命令 " ...

  9. shell脚本基础知识-什么是shell、环境变量

    日常的linux系统管理工作中必不可少的就是shell脚本,对于测试工程师来说,掌握shell脚本的编写能力也是给自己加分的重要技能. 一.什么是shell shell是你(用户)和Linux(或者更 ...

  10. 简述SHELL全局环境变量与局变环境变量

    在Linux中,很多程序和脚本都通过环境变量来获取系统信息,存储临时数据,配置信息.环境变量是指用来存储有关shell会话和工作环境信息,允许你在内存中存储数据,以便程序或shell中运行的脚本能够轻 ...

最新文章

  1. 金融科技创业公司Revolut增加对BCH和XRP支持
  2. 神经病啊!——微信同层播放器接(踩)入(坑)总结
  3. mysql的dockerfile_Dockerfile构建MySQL
  4. socket与文件描述符
  5. DevOps案例研究:知人善任——Google敏捷核心文化
  6. 支付宝封杀比特币,可以说是毫不留情!
  7. SNOI2017 礼物
  8. 运维工程师必备技能:网络排错思路讲解
  9. DPDK框架原理简介 (0002转)
  10. SVM多分类器的实现
  11. html5兼容包,webpack4搭建现代Hybird-h5工程
  12. 员工评分系统现场发布小感
  13. MVC进阶学习--View和Controller之间的数据传递(一)
  14. 通过icon hash查IP地址
  15. APP性能测试——启动耗时测试
  16. bing搜索分析网站的方法
  17. Nginx反向代理后无法获取客户端真实IP地址
  18. 计算机房设备搬迁协议,设备搬迁协议.docx
  19. GameStop的下半场:散户疯狂复仇,大空头彻底投降,但“世纪逼空大战”远未结束...
  20. 三菱Q PLC案例程序,三菱Q系列程序。 QD75MH总线伺服本案例是液晶电视导光板加工

热门文章

  1. 【综述专栏】图神经网络综述
  2. Space X和NASA到底有什么关系?
  3. 通信测试:5G 时代的“卖水人”
  4. 计算机产业深度报告:云计算与人工智能开启新一轮技术变革周期
  5. 库克:苹果收取 30% 佣金很合理!
  6. 40+场面试,100%通过率,我想分享的 14 条经验
  7. 被马斯克送上天的《银河帝国》和互联网江湖 | 赠书
  8. 新登月计划!阿里云ET城市大脑成为国家AI开放创新平台
  9. 边缘计算+SDN:为物联网腾飞插上翅膀
  10. MySQL创建相同表和数据命令