8.1-8.13shell

8.1 shell介绍

每个用户都可以有自己的shell

 

8.2 命令历史

查看命令历史


[root@linux-01 ~]# history 
    1  head
    2  id
    3  bind
    4  cd /etc/grub.conf
    5  ls -l /etc/grub
    6  ls -l /etc
    7  yum install -y lrzsz

 # 命令历史配置文件
[root@linux-01 ~]# ls /root/.bash_history
/root/.bash_history

[root@linux-01 ~]# cat /root/.bash_history
yum install zsh --downloadonly
ls /var/cache/yum/x86_64/7/
yum list zsh
ls /var/cache/yum/x86_64/7/base
ls /var/cache/yum/x86_64/7/base/packages/
yum install zsh --downloadonly --downloaddir=/tmp/
ls /tmp/


 # 命令保存数是由环境变量决定暂时保存在内存中
[root@linux-01 ~]#  echo $HISTSIZE
1000

[root@linux-01 ~]# history  -c   #清空内存中的命令历史 但不会清空命令历史配置文件


 

 

 

命令历史只有在退出终端是才会保存到。bash_history 文件里

环境变量HISTSIZE修改

修改完后需要重新进入终端或者使用命令

指定历史时间格式

 

永久保存命令历史

添加隐藏属性 只允许追加

!!

重复上一条命令

! n

运行第n条命令 

! word  重复历史中最近 ‘word’ 开头的命令

  874  2019/07/11 20:46:02 echo $HISTTIMEFORMAT
  875  2019/07/11 20:46:06 vim /etc/profile
  876  2019/07/11 20:46:29 logout
  877  2019/07/11 20:46:55 history
[root@linux-01 ~]# !ls
ls /usr/local/apache2/
bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules
[root@linux-01 ~]#  ! echo

[root@linux-01 ~]#  !echo  
 echo $HISTTIMEFORMAT
%Y/%m/%d %H:%M:%S

命令补全  按两下tab 键    

安装参数补全

[root@linux-01 ~]# yum install bash-completion
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                                         | 6.8 kB  00:00:00     
 * epel: mirrors.tuna.tsinghua.edu.cn

重启后可以使用

添加别名

删除自定义别名

自定义多数放在这

 

> 把前面命令的输出 直接输到后面的文件里   

>>  不会把前面的删除  是追加

2>   会把前面的错误输出 放后后面的文件 里

错误和正确的输出

输入重定向

ctrl + z   暂停一个任务

使用fg恢复任务

[root@linux-01 ~]# vim 1233.txt

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

 

jobs 查看已停止后台任务

fg +任务编号

bg 2  添加后台任务

 

 

[root@linux-01 ~]# 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
 2  0      0 546000   2200 304580    0    0    33    11   58   73  0  0 99  0  0
 0  0      0 545976   2200 304580    0    0     0     0   54   53  0  0 100  0  0
 0  0      0 545976   2200 304580    0    0     0     0   45   38  0  0 100  0  0
^Z
[1]+  已停止               vmstat 1
# 暂停任务

[root@linux-01 ~]# fg
#恢复到前台
vmstat 1
 3  0      0 545976   2200 304580    0    0     0     0  349  348  0  0 100  0  0
 0  0      0 545976   2200 304580    0    0     0     0   40   40  0  1 99  0  0
 0  0      0 545976   2200 304580    0    0     0     0   44   44  0  0 100  0  0
 0  0      0 545976   2200 304580    0    0     0     0   42   47  0  0 100  0  0
^Z
[1]+  已停止               vmstat 1
[root@linux-01 ~]# bg

#放到后台运行
[1]+ vmstat 1 &

[root@linux-01 ~]#  0  0      0 545976   2200 304580    0    0     0     0   51   58  0  0 100  0  0
 0  0      0 545976   2200 304580    0    0     0     0   39   44  0  0 100  0  0
 1  0      0 545976   2200 304580    0    0     0     0   35   38  0  0 100  0  0
 0  0      0 545976   2200 304580    0    0     0     0   41   40  0  0 100  0  0
 0  0      0 545976   2200 304580    0    0     0     0   49   50  0  1 99  0  0
 0  0      0 545976   2200 304580    0    0     0     0   49   56  0  0 100  0  0
f 0  0      0 545976   2200 304580    0    0     0     0   40   46  0  0 100  0  0
g
#恢复到前台

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 545976   2200 304580    0    0     0     0   53   67  0  0 100  0  0
 1  0      0 545976   2200 304580    0    0     0     0   37   38  0  1 99  0  0
^C
#停止任务
[root@linux-01 

 

暂停1000秒

获取系统常用变量

[root@linux-01 ~]# env
XDG_SESSION_ID=9
HOSTNAME=linux-01
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.96.1 13371 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.96.1 13371 192.168.96.135 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/0
_=/usr/bin/env

 

 

 

自定义的变量

变量命名规则:字母、数字下划线,首位不能为数字

变量值有特殊符号时需要用单引号括起来

 

变量叠加

/etc/ 文件为系统层的   ~/.bash 为用户登录是会加载 

 

 

 

/.bash_logout   

用户定义用户退出时做的操作 例如退出时删除命令历史 就可以将删除命令历史的命令放/.bash_logout   

 

 PS1='\   [\033[01;32m\]        \u@\h\      [\033[00m\]  :\  [\033[01:36m\]   \W\   [\033[00m\]\$'

Linux系统下的终端命令提示符设置(PS1)_Linux教程_Linux公社-Linux系统门户网站  https://www.linuxidc.com/Linux/2016-10/136597.htm

Linux下PS1、PS2、PS3、PS4使用详解 - CSDN博客  https://blog.csdn.net/rainharder/article/details/54573021

 

 

 

 

shell特殊符_cut命令

“$” 调用变量

注释字符

命令前加“#” 号 代表后面的内容已变为注释,命令不会执行

脱义符

管道符

 cut命令

sort

以ASCII码表为排序方式

 特殊符号排在最前面,前面相同时以后一位为排序

 -n  以数字由小到大排序、特殊符号、字母视为零

-r 以数字由大到小排序

wc -m   统计字符数  

cat -A  可以查看换行符“$”

 wc -w  统计词      #以空格区分

 

先排序再去重

sort、 uniq、wc、 cat、head 等只对文件做排序操作不会改变文件

使用“tee”  会将文件进行排序并保存修改

清空文件 

tee -a  追加 

将小写a 替换成大写  支持写多个

将所有 小写替换成大写

将所有 小写替换成数字

-b:值为每一输出档案的大小,单位为 byte。
-C:每一输出档中,单行的最大 byte 数。
-d:使用数字作为后缀。
-l:值为每一输出档的行数大小

实验准备

分割成100k 一个文件

以abc 为命名前缀

以行数作为分割条件

 

分号

“||”   在shell 代表或

第一个命令失败时执行第二个命令

第一个命令成功时不会执行第二个命令

 

“&&”

第一个命令成功时才会执行第二个命令

 

例:

判断目录是否存在 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值