Linux shell基础知识

原创
2018/07/08 13:47
阅读数 54

shell介绍

命令解释器,提供用户和机器之间的交互。

centos默认shell为bash

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

系统里除了bash 还有zsh、ksh等

主bash

shell  特定的逻辑判断,循环,特定语法

命令历史

过往命令在 /root/.bash_history    

history 过往命令查看    最多1000条

环境变量,对应上面显示的来配置的  查看设置的多少条

history -c    清空内存过往命令   

history 过往命令,只有在退出你终端还能保存到你配置文件里,否则在内存里

/etc/profile中修改1000条数    /搜一下具体在哪行

要想执行修改的  要执行刷新一下终端    source /etc/profile

更改history 显示更详细 

HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"

最近执行的历史

永久记录历史命令

chattr +a ~/.bash_history

!!上一次历史命令 也是最后一条命令

!+数字  执行对应的命令 也可以+命令

命令补全和别名

tab 敲一下    敲两下    补全命令 补全文件路径

补全命令默认要安装一个包的    yum install -y bash-completion

通配符

*通配 代表所有都给你提示出来    不分字符,不分几个数,前后都能加    *txt*

?通配 代表一位,不分数字,不分字符    ?.txt    显示1.txt

[0-9][a-zA-Z][123] 通配 代表[]里面的内容给显示出来(或者),只代表一位数,不分字符,不分数字

{1,2,3,a} 通配 代表一位,不分数字,不分字符,

输入输出重定向

>    把前面的内容定向到后面的文件里,重写覆盖后面的文件 1.txt>2.txt

>>    追加 把前面的内容追加到后面的内容里,不覆盖后面的内容 1.txt>2.txt

>    错误定向    2>    错误定向,追加>>    组合起来>+2> == &>(有些懵,用处何在?)

<     把左面输出的定向到右边

wc -l    查看有几个文件 用法很多

管道符和作业控制

grep    过滤关键词

管道符 |   把前面输出的命令交给后面的命令

作业控制    

Ctrl+z 暂停vim编辑 回到窗口 放到后台了

fg    再调到前台去    多个加编号

bg    调到后台 无法使用命令       跟fg切换使用

jobs    把已经停止任务或者在后台的任务列出来    

vmstat 1 自动显示系统一些状态    实时的

sleep 1000 暂停1000s 之后就会恢复 

运用bg 把sleep1000放到后台了,还可以在调用fg放到前台暂停ctrl+z或者+c结束

shell变量

env    查找系统环境变量

set    查找系统和用户自定义变量

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

‘    ’特殊符号用‘’括起来

export(不懂用处)

unset +变量名字 取消变量

环境变量配置文件

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

/etc/bashrc 用户不用登陆,执行shell就生效    勿动

遇到需求时,编辑用户下文件

..bash_profile    source .bash_profile 自动加载调用.bashrc

.bash_history

.bash_logout

ps1 修改(不懂)

shell特殊符_cut命令

*任意个任意字符

?任意一个字符

#注释字符

\脱义字符

|管道符

cut 分割截取    cut -d“:” -f 1    以:做分割 去除第一个

-d分隔符    -f指定段号    -c指定第几个字符

按照cut -c 字符切割的    只能单用

sort_wc_uniq命令

sort    排序    一般个uniq结合使用    字母会默认是0(在有数字的文件里)

-n以数字排序 

-r反序

-t分隔符

默认排序

wc -l显示行数    -m统计字符数    -w统计词

unqic 去重    -c统计行数(有几行重复的)跟sort组合使用 

sort 1.txt | unqic -c    组合使用 我觉得这个用的多

tee_tr_split命令

tee    想输出重定向    把命令给右边的文件

tr 替换字符

split 切割    -b大小(默认字节)    -l行数 后续还可以指定新的文件名

shell特殊符号

$变量前缀,!$组合,正则里面表示行位

;多条命令写到一行,用分号分割

~用户家目录,后面正则表达式表示通配符

&放到命令后面,会把命令丢倒后台

||或者的意思    &&第一个执行成功还能执行第二条命令

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部