我是靠谱客的博主 无辜冰棍,最近开发中收集的这篇文章主要介绍Linux微信群shell,linux shell基础,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

什么是shell

shell是一个命令解释器,提供用户和机器之间的交互

支持特定的语法,比如逻辑判断、循环

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

CentOS7默认shell为bash (Bourne Agin Shell)

还有zsh、ksh等

保存历史命令的位置,当前操作历史命令先保存在内存,退出终端后,历史命令才保存到该配置文件

784beaa55433c93e97922307292915cf.png

history命令可以查看历史的命令

b3ab2af07366b7ac07a9f680cae57375.png

历史命令保存默认设定的环境变量为1000条

2f04ee3b249664892b5153b4ff83bd15.png

定义HISTSIZE的大小,进入/etc/profile,找到HISTSIZE这一行,将1000修改为2000

e1cf5ad817b595dcac491f59a368fcdf.png

要是配置文件生效可以退出终端重新连接,也可以用 source /etc/profile使配置文件生效

b27d623a4ea6cc66d793d8b91c429d36.png

history -c   清空当前内存命令历史,不清空当前配置文件已保存的历史命令

aa040f5d2e68cae9c802da85f10a068f.png

定义history的输出格式

HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "      //添加变量,仅在当前终端生效

8c6aa9b67018e0340e799273edd9e42a.png

如果要使变量永久生效,需将HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S ",添加在/etc/profile配置文件里面,找到HISTSIZE这行,增加在下面,保存退出。              source /etc/profile    //使配置文件生效

d78db7d6045bf751063448d08cb2c528.png

历史命令永久保存,给该配置文件加上a权限,chattr +a ~/.bash_history

f98daec27ad23192ef762cd0d4ce25b5.png

!!          //执行上一条命令

990d7fcbc81a11931a51b8062751b878.png

!n             //n为数字,对应为历史命令数字

27b85b6105945ae2a19d2535b87531bd.png

!word          //word为字符串,命令历史倒着往上找第一个相同的字符串,执行该命令

68da298e73517a20d3526b7b766261d5.png

命令补全及别名

按tab键,可以补全命令也可以补全路径

输入ls,敲2下tab键,列出所有以ls开头的命令

26c4ad2ed34fe2350b78bf7878b2ce66.png

输入mk,敲2下tab键,列出所有以mk开头的命令

以mkt开头的命令只有一个,输入mkt,敲1下tab键,自动补全命令

a72b47ec9ee75f40803dbfe3e6a9bfb4.png

自动补全参数,需安装插件,yum install -y bash-completion,安装完,需重启下系统

补全命令敲2下tab键列出参数

3d19c88072a80b4fa15b15050509a507.png

alias别名给命令重新起个名字

查看系统别名有哪些用命令alias

ae22de9e28d70116390da80811223749.png

unalias                //取消自定义别名

fe837639c65c67149dc5cf992f9db724.png

alias存放的位置分别为家目录.bashrc、/etc/profile.d/

a2a1e98d0eb10405cdc0eb986c6754d1.png

418be1692115684752db9c0f7ec13a34.png

*表示通配

f7d9d9a9646e57bf759df433211485f2.png

?表示一个任意的字符

442d04eb3d05d158b3f5e03bd889c4f5.png

方括号里面的数只匹配一个

6fce34d01fbb9c64c4fe5c4548c0eca1.png

匹配花括号里面的一个

1596262327750a00e82fc23e60675b67.png

cat 1.txt > 2.txt     //重定向,清空2.txt里面的内容,将1.txt里面的内容写入到2.txt

144a637242c287561565e58b008ea015.png

cat 1.txt >> 2.txt               //追加重定向,将1.txt里面的内容追加到2.txt内容的后面

5d529390519603d161315b36d9b36a64.png

lsaaa 2> a.txt              //错误重定向,将错误的内容输入到a.txt

57a5fabc96a99a46bc1bde1ec4f7c71b.png

lsaaa 2>> a.txt              //错误追加重定向,将错误的内容追加到a.txt

b61f530e6fd7fbca0ceb11751a9527d4.png

&>                   //将正确和错误的信息输出定向到一个文件里面

0537234d41bed39501177c2f8b781aab.png

&>>                   //将正确和错误的信息追加输出定向到一个文件里面

9bef0c0bd6c56fe0a888f1669b2f97b2.png

将正确和错误的信息分别输出到指定的文件

e965bccdb3de0a4168fd7257523e70b6.png

480082c423f67b0ee249a0c7e1511414.png

管道符、作业控制

|          //管道符,将前面内容的输出传递给后面的命令

264cb31244e34a11c2f1105e5c8829c2.png

ctrl z  暂停一个任务,将任务放到后台

c8cb2e7b06bfa9594d520d4756da5755.png

jobs      //列出后台停止任务

900850631d61f623799da6fc13930756.png

fg[id]            //把任务调到前台

24f2ecc8373d07e7678de0093bbe2f07.png

bg[id]         //把任务调到后台,并进行

d8e89df29018b516b8dd7ed455e9bbea.png

命令后面加&           //直接把任务调到后台进行

e64372d9c1fe52acd97212b33e70b069.png

shell变量

变量

PATH、HOME、PWD、LOGNAME

env命令        //查看变量

a7b0302290172f75c7b25612eaafe8cd.png

set命令多了很多变量,并且包括用户自定义的变量

9366ac6836d87e2b7d0a7340e4bff460.png

查询到自定义变量a=111

dd60bc3b17418df745bd7639aa3248b1.png

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

162bd9b25ef5dc91a49fe2aab612dccc.png

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

38828b44ade38b879041d45908451c56.png

变量的累加

cf14f80b6572500bf0f1b9cc7e5d0f85.png

单引号输出引号内容,双引号里面有变量会调用变量

b9dcefb3245093a2d6997202035d9abb.png

w       //查看登陆的终端用户

b72211154557d9ca368c806b84fed33e.png

echo $SSH_TTY             //查看当前终端在哪个TTY下

dccf183471974d2b9e77d45d91f2a9ce.png

在pts/0定义一个非全局变量,在pts/2是没有这个变量的

b7b2c6e3b085c9c9c5a7c109e66f37cf.png

4c9c2aaed9f8ff7e4a490791536b8c91.png

pstree命令是用于查看进程树之间的关系,在当前shell运行该变量还是没生效

0c98d7df963bbb4bb1462d52c5930605.png

退出子shell,环境变量生效

b6fa69225fbe44ecd6e5a9fc8972efb0.png

设定全局变量     export abc=linux

43a7293ddd3b15cb1dfb2eada1aa0e0d.png

打开多一个终端,环境变量不生效,全局变量只针对同一终端的shell生效

044bb8c826b4131218fc6803048ca7fc.png

全局变量,返回上级shell不生效

10e3cdaebb17ab787f2f35686fd8a83d.png

b2abf72cd561379f5f3e4c636c2ca3b5.png

unset  变量     //取消变量

72fa92bca394ae2c7d1042485295530e.png

环境变量配置文件

/etc/profile     用户环境变量,交互,登陆才执行(系统层次)

/etc/bashrc     用户不用登陆,执行shell就能生效(用户层次)

初始变量  PS1=[u@h W]$

PS1='[33[01;32m]u@h[33[00m]:[33[01;36m]w[33[00m]$'

5ae14e1db56eced17b24d6ea3da3b46b.png

最后

以上就是无辜冰棍为你收集整理的Linux微信群shell,linux shell基础的全部内容,希望文章能够帮你解决Linux微信群shell,linux shell基础所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部