码迷,mamicode.com
首页 > 系统相关 > 详细

Linux系统 shell基础(二)

时间:2018-01-12 11:33:23      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:ges   下划线   输入   cat   计算机语言   strong   环境变量   uil   前台   

一、管道符

管道符:管道符号用于把前一个命令的结果传递给另一条命令
示例:
1、统计一个文件的行数
命令:cat /etc/passwd | wc -l
技术分享图片
2、统计当前文件夹下文件个数
命令: ls | wc -l
技术分享图片
3、统计某个目录下所有文件总数
命令: find -type f | wc -l
技术分享图片
管道符在实际应用中经常用到。

二、作业控制

作业控制有点类似windows下的后台,windows下可以按ctrl+Tab在不同程序间切换,liunx下也可以实现类似的功能,把正在执行的命令“挂起”到后台。
一个终端只有一个前台,有时候

作业控制涉及的命令
ctrl+z:把命令暂定,在后台停止,可用fg恢复
ctrl+c:终止命令执行
fg:前台
bg:把程序放到后台
COMMAND &:把命令直接放到后台执行
jobs:查看后台任务
screen:

操作示例
1、把正在执行的vim命令暂定
技术分享图片

2、恢复暂停的命令
技术分享图片
命令的执行恢复了。

3、有的命令支持在后台继续运行,那么我们可以把命令放到后台运行。
们把vmstat命令放到后台运行
技术分享图片
可以看到他仍在不停的运行,但是我们仍可以输入其他命令对系统进行操作。这和ctrl+z不一样,ctrl+z程序就不动了。

4、job命令查看后台的程序
技术分享图片
有点儿乱,但是可以看出来有三个程序在跑,这时我们可以用fg n(序号)的方式把命令调到前台来然后把他关闭
比如,我把2号命令调到前台来然后关闭。
技术分享图片
画圈的地方就是我敲的命令“fg 2”只是因为程序是在跑的,显得有点乱。再用job查看时程序2就没了。

5、关闭后台的程序
命令
查看进程pid:ps -aux
结束进程:kill pid
技术分享图片
解释一下,kill -9 +pid是强制结束的意思,我们强制把后台的两个命令关掉了,再用job就看不到之前后台的那两个命令了。
技术分享图片

三、shell变量

变量是一个编程中常见的概念,变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。这里我们理解变量就是系统已经预置的一些特定数值或含义的代号,我们在写shell时可以引用他们。

1、系统内置的变量
PATH=命令的路径,builtin命令
HOME 用户的家目录root的home就是root,
PWD 表示当前目录在哪里
LOGNAME 你的登陆用户名
HISTSIZE 命令历史记录数
SHELL 当前用户的shell类型
HOSTNAME 主机名字
2、查看系统预设变量
上面这些系统预置变量的值可以用下面两条明明命令查看
env命令,显示系统的预设环境变量
技术分享图片
set命令,显示系统预设的全部变量
技术分享图片
(这只是一部分,后面还有很长)
3、用户自定变量,XX=XX自定义变量
变量名规则:避免用大写,系统很多预设变量是大写字符串,你用大写字符串很有可能就把系统预设变量给改变了,
附上一篇15条变量&方法命名的最佳实践(转载至legendmohe.net/2014/04/15/)
自定义变量时名称中可以有数字字母和下划线,但是数字不能是第一位,比如你写“1A=11”就会报错
技术分享图片

自定义变量示例:
1、输入:test=888
技术分享图片
然后我们看下变量的值就是888了。
技术分享图片

2、变量值有特殊符号时需要用单引号括起来。比如/ . ..这些有特殊含义的东西,双引号也行,但是建议用单引号,双引号有时会出问题。示例
技术分享图片

3、变量值累加,注意不是求和的意思,而是把变量的值一词显示出来
技术分享图片
技术分享图片
技术分享图片
注意上例中如果你用单引号引用,那么$会脱意,显示结果会变成 $a $b $c
技术分享图片

4、全局变量,涉及到子shell,全局变量能传递到所有shell,不能在另外的终端下使用.
补充一下终端的知识,每一次我们通过
w命令可以看到有哪些终端登录到了系统中
pstree可以查看

5、unset可以取消变量
技术分享图片

四、环境变量配置文件

几个重要的环境变量
/etc/profile 用户
/etc/bashrc 用户不用登陆,执行shell就生效
~./bashrc
~/,bash_profile
~/.bash_history
~/.bash_logout 推出时会执行
PS1=定义前缀

Linux系统 shell基础(二)

标签:ges   下划线   输入   cat   计算机语言   strong   环境变量   uil   前台   

原文地址:http://blog.51cto.com/11934539/2060095

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!