shell命令基本知识点

命令历史

# cat /root/.bash_history //存放历史命令的地方

# history //查看命令历史的条数

# echo $HISTSIZE //查看可以保存的条数

# vim /etc/profile //改变变量HISTSIZE的值 “/HISTSIZE” 去搜索

# source /etc/profile //这样才能使我们刚刚修改的值生效

# vim /etc/profile →在HISTSIZE下增加HISTTIMEFORMAT=”%Y/%m/%d %H:%M:%s改变输出历史的格式,例如:923 2017/06/28 17:56:42 source /etc/profile包括什么时间输入的都可以显示!!!

# chattr+a~/.bash_history //永久保存输入的历史(a权限,只允许增加,不允许删除

# !! //执行上一条命令

#!761 //查找命令第761条命令,在命令历史中!

命令补全

参数补全,安装bash-completion

自定义经常使用的命令,来提高效率:例如:

# alias resnet=‘systemctl restart network.service' //但是这样仅仅是保存在内存当中,我们要是需要长久使用,就要写在配置文件中,家目录下的# .bashrc

通配

# ls*.txt //查看所有以.txt结尾的文件

# ls 1* //查看以1开头的所有文件

# ls?.txt //一个字符且.txt的文件

# ls??.txt //两个字符且.txt的文件

# ls [0-3].txt //包含0.txt 1.txt 2.txt 3.txt

# ls [123].txt //包含1.txt 2.txt 3.txt

输入输出重定向

“>” //重定向 “>>” //追加内容

# cat 12.txt > 22.txt //查看12.txt的内容重定向到22.txt

# cat 12.txt >> 22.txt //查看12.txt的内容并追加(之前的内容删除)到22.txt

“2>” //错误重定向 “2>>” //错误追加重定向

后期写shell脚本的时候会经常用到的一个命令:

# ls [12].txt txzzz.txt(没有这个文件) >1.txt 2>b.txt //把正确的输出输出到1.txt,错误输出输出到b.txt

管道符、作业控制

管道符:把一个命令结果的输出传递到后面一个命令;

# cat 1.txt |wc -l ; //查看1.txt 的内容 并交给后面查看有多少行输出~

# cat 1.txt |grep ‘aaa’ //查看1.txt 的内容 并交给后面grep 查找 aaa

# find ./ -type f | wc -l //查看当前目录下有多少个文件,然后统计输出

案例:假如现在正在配置IP地址,当你进入vim之后,发现忘记IP地址了,然后使用“ctrl+z”去临时返回到命令行,fg返回到任务,也许有时候,后台任务比较多,可以使用jobs来查看,然后恢复某个任务使用fg+id,或者把某个任务放到后台去继续执行bg+id,一次性的把一个命令放到后台去执行,#sleep 1000 &,可以用jobs去查看。

系统内置变量

# env //查看系统变量

# set //查看系统自设的变量+用户设置的变量

自定义变量:

# zhdy=winner //设置自定义的变量

# set | grep zhdy //查询自定义变量中的zhdy

# unset zhdy //取消自定义的变量

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

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

# a=’a$bc’# echo $a# a$bc

# a=1;b=2#echo $a$b# 12

# echo $SSH_TTY //查看自己在哪个TTY下面

#export zhdy=linux //制作一个全局的环境变量,

环境变量配置文件

系统层次的环境变量(千万别去更改,除非特殊要求):

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

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

用户层次的环境变量(仅限于当前用户):

~/.bashrc //自定义一些别名alias

~/.bash_profile //自定义一些变量。例:HISTSIZE=2000

~/.bash_history //自定义历史相关配置

~/.bash_logout //自定义退出后所执行的动作

profile:用户登录的时候会使用到

bash:系统或者用户执行一些shell

[root@zhdy-02~]# echo $PS1 //输出左边的一个格式

[\u@\h\W]\$

[root@zhdy-02 ~]# PS1='[\u@\h \w]\$’ //更改格式为绝对路径

[root@zhdy-02 ~]#cd /etc/sysconfig/network-scripts/

[root@zhdy-02/etc/sysconfig/network-scripts]# //已经显示绝对路径了!!!

# PS1=’\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ ‘ //带颜色的格式

当然这只是暂存在内存中,要是想要永久修改,一定要进入# vim /etc/bashrc修改

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...