shell基本知识

简介:

shell基础知识
history命令 查看历史记录
[root@localhost ~]# history
1 echo $PATH
2 echo $LANG
3 locale
4 locale -a |grep zh
5 locale -a|grep zhhistory -c 
6 locale
7 locale -a|grep zh
8 locale
9 yum groupinstall chinese-support
10 locale
echo $HISTSIZE 查看可以记录的历史条数
[root@localhost ~]# echo $HISTSIZE
1000
history -c 清空历史
HISTSIZE 在/etc/profile中定义
HOSTNAME=/usr/bin/hostname 2>/dev/null
HISTSIZE=1000 我们可以修改这个数值,执行source /etc/profile
if [ "$HISTCONTROL" = "ignorespace" ] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
fi
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " 定义时间
[root@localhost ~]# HISTTIMEFORMAT="%Y/%m%d %H:%M:%S "
[root@localhost ~]# echo $HISTTIMEFORMAT
%Y/%m%d %H:%M:%S
[root@localhost ~]# history
1 2018/0111 06:49:18 HISTTIMEFORMAT="%Y/%m%d %H:%M:%S "
2 2018/0111 06:49:41 echo $HISTTIMEFORMAT
3 2018/0111 06:49:58 history
时间永久生效的做法:把定义的时间放到/etc/profile下
#vim /etc/profile
#HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S" 这条语句和#HISTSIZE=1000 放在一起
#:wq
#source /etc/profile
chattr +a ~/.bash_history 命令,记录永远保存,不能被删除,只能追加
!!表示执行上一条指令
[root@localhost ~]# pwd
/root
[root@localhost ~]# !!
pwd
/root
!n 表示执行历史中的第n条指令
[root@localhost ~]# history
1 2018/01/11 06:49:18 HISTTIMEFORMAT="%Y/%m%d %H:%M:%S "
2 2018/01/11 06:49:41 echo $HISTTIMEFORMAT
3 2018/01/11 06:49:58 history
4 2018/01/11 06:53:55 vim /etc/profile
5 2018/01/11 06:56:34 source /etc/profile
6 2018/01/11 06:57:59 echo $HISTTIMEFORMAT
7 2018/01/11 06:58:06 history
8 2018/01/11 06:58:16 ls
9 2018/01/11 06:58:23 history
10 2018/01/11 07:06:22 chattr +a ~/.bash_history
11 2018/01/11 07:08:34 pwd
12 2018/01/11 07:10:03 history 
[root@localhost ~]# !8
ls
!字符串表示历史执行最近一条以字符串开头的指令
tab 命令补全
alias 别名命令-把常用的长命令换成短命令
自定义别名 是在.bashrc ls/etc/profile.d/中定义
自定义的alias 放在~/.bashrc/
alias restartnet='systmectl restart network.service'
通配符
表示匹配零个或是多个字符
?匹配一个字符*
[root@localhost ~]# touch {1..5}.txt
[root@localhost ~]# ls
1.txt 3.txt 5.txt filename test.txt
2.txt 4.txt anaconda-ks.cfg test.tar
[root@localhost ~]# touch bb.txt
[root@localhost ~]# touch cc.txt
[root@localhost ~]# ls ?.txt
1.txt 2.txt 3.txt 4.txt 5.txt
[root@localhost ~]# ls [34].txt
3.txt 4.txt
重定向符号

表示输出重定向
<表示输入重定向
2>错误重定向
>追加重定向
[root@localhost ~]# mkdir /tmp/10
[root@localhost ~]# cd /tmp/10
[root@localhost 10]# echo "123" > 1.txt
[root@localhost 10]# ls
1.txt
[root@localhost 10]# vi 1.txt
[root@localhost 10]# echo "123">> 1.txt
[root@localhost 10]# ls
1.txt
[root@localhost 10]# cat 1.tx
cat: 1.tx: 没有那个文件或目录
[root@localhost 10]# cat 1.txt
123
123

[root@localhost 10]# dddddd
-bash: dddddd: 未找到命令
[root@localhost 10]# dddddd 2> 1.txt
[root@localhost 10]# cat 1.txt
-bash: dddddd: 未找到命令
[root@localhost 10]# echo "12345" > 1.txt
[root@localhost 10]# cat 1.txt
12345
正确和错误的输出 指定到一个文件中
[root@localhost ~]# ls {1..3}.txt aaa.txt &>5.txt
[root@localhost ~]# cat 5.txt
ls: 无法访问aaa.txt: 没有那个文件或目录
1.txt
2.txt
3.txt




本文转自 yzllinux 51CTO博客,原文链接:http://blog.51cto.com/12947851/2059645,如需转载请自行联系原作者

相关文章
|
22天前
|
Java Shell Linux
使用 sh -x 进行 shell 脚本调试
使用 sh -x 进行 shell 脚本调试
32 9
使用 sh -x 进行 shell 脚本调试
|
2天前
|
监控 关系型数据库 MySQL
优秀的网络工程师,早就偷偷收藏了这9 个实用 Shell 脚本!
优秀的网络工程师,早就偷偷收藏了这9 个实用 Shell 脚本!
|
12天前
|
存储 Shell 应用服务中间件
[ansible]wget批量调用shell脚本
[ansible]wget批量调用shell脚本
|
14天前
|
运维 监控 Shell
掌握100个开箱即用的Shell脚本~(附PDF)
Shell脚本是实现Linux系统管理及自动化运维所必备的重要工具。许多其它岗位的小伙伴也经常使用Shell脚本来实现某项需求。 今天分享《100个shell脚本案例》,共有55页,支持文字搜索定位,代码清晰可复制。
|
22天前
|
Shell 测试技术 Linux
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
29 3
|
1月前
|
JavaScript 前端开发 Shell
Shell 脚本编程保姆级教程(上)
Shell 脚本编程保姆级教程(上)
|
1月前
|
Shell Linux C语言
|
1月前
|
Shell 网络安全
shell脚本 配饰ssh
【7月更文挑战第15天】
23 4
|
1月前
|
网络协议 Shell Linux
Shell脚本配置Centos静态ip地址
这是一个用于在CentOS上设置静态IP的Shell脚本摘要: - 脚本交互式获取用户输入的IP地址、子网掩码、网关和DNS。 - 使用`sed`命令动态更新`/etc/sysconfig/network-scripts/ifcfg-ENS33`配置文件。 - 修改`BOOTPROTO`为`static`,并设置IP、NETMASK、GATEWAY和DNS1字段。 - 用`systemctl restart network`重启网络服务。 - 提示用户新配置的静态IP信息。
|
1月前
|
Shell Linux
Linux Shell 脚本入门教程:开启你的自动化之旅
Shell是一种计算机程序,它充当了用户与操作系统之间的接口。在Linux系统中,Shell允许用户通过命令行界面(CLI)来控制计算机。Shell脚本则是一种使用Shell语言编写的脚本,它可以自动执行一系列的命令,帮助用户实现任务自动化,提高工作效率。