linux的shell基础介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux的shell基础介绍相关的知识,希望对你有一定的参考价值。

8.6 管道符和作业控制:


1、cat 1.txt |wc -l ; cat 1.txt |grep ‘aaa‘

2、ctrl z 暂停一个任务

3、jobs查看后台的任务

4、bg[id]把任务调到后台

5、fg[id]把任务调到前台

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


管道符的作用:把前面命令输出的结果交给后面的命令。

示例:

[[email protected] ~]# ls
111  1_heard.txt.bak  1.txt      234    3.txt  aming2      anaconda-ks.cfg  bb.txt
123  1_sorft.txt.bak  1.txt.bak  2.txt  456    aminglinux  a.txt            
[[email protected] ~]# ls |wc -l
16
[[email protected] ~]# find ./ -type f
./.bash_logout
./.bash_profile
./.bashrc
./.cshrc
./.tcshrc
./.bash_history
./.ssh/authorized_keys
./anaconda-ks.cfg
./2.txt
./3.txt
./1_heard.txt.bak
./1_sorft.txt.bak
./1.txt.bak
./安诺云智平台介绍(PPT模板).pptx
./.viminfo
./1.txt
./a.txt
./bb.txt
[[email protected] ~]# find ./ -type f |wc -l     //加管道符计算前面有多少行命令。
18


8.7/8.8 shell变量:


1、PATH,HOME,PWD,LOGNAME   //系统变量(可使用echo查看,如echo $PATH)

2、env命令                       //查看系统环境变量信息

3、 set命令多了很多变量,并且包括用户自定义的变量   //shell脚本

4、 自定义变量a=1 ,示例:

[[email protected] ~]# a=111
[[email protected] ~]# echo $a
111

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

[[email protected] ~]# a1=2
[[email protected] ~]# echo $a1
2
[[email protected] ~]# a_1=3
[[email protected] ~]# echo $a_1
3
[[email protected] ~]# _a1=4
[[email protected] ~]# echo $_a1
4
[[email protected] ~]# 1aa=2
-bash: 1aa=2: 未找到命令
[[email protected] ~]# 2aa=3
-bash: 2aa=3: 未找到命令

6、 变量值有特殊符号时需要用单引号括起来,示例:

[[email protected] ~]# a=‘a b c‘
[[email protected] ~]# echo $a
a b c
[[email protected] ~]# a="a$bc"
[[email protected] ~]# echo $a
a
[[email protected] ~]# a=‘a$bc‘
[[email protected] ~]# echo $a
a$bc

7、 变量的累加,示例:

[[email protected] ~]# a=1
[[email protected] ~]# b=2
[[email protected] ~]# echo $a$b
12
[[email protected] ~]# a=‘a$bc‘
[[email protected] ~]# echo $a$b
a$bc2
[[email protected] ~]# c="a$b"c       //当多个变量叠加的时候,用双影号把变量影起来。
[[email protected] ~]# echo $c
a2c

8、 全局变量export b=2

[[email protected] ~]# aming=linux          //在本地定义一个变量,仅在本终端上生效
[[email protected] ~]# echo $aming
linux
[[email protected] ~]# export aming=linux   //创建一个全局变量
[[email protected] ~]# bash                 //打开一个子shell  ,shell就是一个进程。
[[email protected] ~]# echo $aming
linux
[[email protected] ~]# pstree   //以树状图的方式展现进程之间的派生关系,显示效果比较直观

9、 unset变量,关闭一个变量,示例如下:

[[email protected] ~]# echo $aming
linux
[[email protected] ~]# unset aming
[[email protected] ~]# echo $aming


扩展:

1、查看当前用户在哪个TTY下,示例:

[[email protected] ~]# w
19:13:35 up 1 day,  1:14,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.4.84     18:27    7.00s  0.21s  0.03s w
root     pts/1    192.168.4.84     19:13    6.00s  0.05s  0.05s -bash
[[email protected] ~]# echo $SSH_TTY
/dev/pts/0


8.9 环境变量配置文件:


1、系统层次etc下面,用户登录加载使用,一般不要动:

/etc/profile 用户环境变量,交互,登录才执行


2、用户层次,在用户家目录下,用户执行shell脚本的时候生效,一般不要动:

/etc/bashrc //用户不用登录,执行shell就生效

~/.bashrc               //执行shell脚本时的配置文件

~/.bash_profile         //用户登录时自动加载配置文件

~/.bash_history      //记录命令历史的文件

~/.bash_logout     //用来定义用户退出时需要做的操作


备注:每个用户下都会有两个隐藏文件,这两种文件的区别在于用户登录时自动加载profile,而profile也会自动调用bashrc,bashrc是执行shell脚本的时候,用户不用登录,就会自动执行shell脚本,只要执行shell脚本,就会调用bashrc里面的配置文件。


[[email protected] ~]# vim .bash_profile
[[email protected] ~]#source .bash_profile   //source执行加载这个文件命令
[[email protected] ~]#. .bash_profile         //.与source命令一样作用
[[email protected] ~]# vim .bashrc

3、PS1=‘[\[email protected]\h \W]\$‘           //改变用户行显示方式的环境变量

4、PS1=‘\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ ‘   //改变用户行的字体颜色

技术分享


本文出自 “Gary博客” 博客,请务必保留此出处http://taoxie.blog.51cto.com/10245493/1982602

以上是关于linux的shell基础介绍的主要内容,如果未能解决你的问题,请参考以下文章

linux的shell基础介绍

逆向及Bof基础实践

Linux系统——shell脚本编程基础介绍

什么是Shell?Shell脚本基础知识详细介绍

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础

20155307刘浩《网络对抗》逆向及Bof基础