bash的基本特性
1、命令历史
history 查看以前所使用的命令
HISTFILE(环境变量) 指定命令历史的存储文件
[root@localhost tmp]# echo $HISTFILE --会读取存放历史命令的文件 /root/.bash_history
实例:修改环境变量 HISTFILE
[root@localhost tmp]# export HISTFILE=/root/aa [root@localhost tmp]# echo $HISTFILE /root/aa
HISTSIZE 指定bash进程能显示的条目数 (最多存储多少条命令)
HISTFILESIZE 存储文件最多能存储的条目数
实例:设置存储文件最多能存储的条目数为1500,设置bash进程能显示的条目数为1200,如下
[root@localhost tmp]# export HISTSIZE=1200 [root@localhost tmp]# export HISTFILESIZE=1500 [root@localhost tmp]# echo $HISTSIZE 1200 [root@localhost tmp]# echo $HISTFILESIZE 1500
HISTCONTROL 设定历史命令的记录模式
[root@localhost tmp]# echo $HISTCONTROL ignoredups (忽略重复的历史命令)
注:ignoredups 忽略重复的历史命令
ignorespace 忽略空白字符开头的历史命令
ignoreboth 忽略前面两者
history [选项]
-d 删除指定的条目下的命令历史
-c 清楚整个命令历史7等等入
# (代表倒数多少行命令历史)
-a 将内存中缓存的命令历史追加到命令的历史文件
!+# 便捷使用 执行第#行的命令
!! 双叹号 是执行上一条命令
!clear(一定要是唯一的字符串,匹配最近一次历史命令)
!$ 上条命令的最后一段
注:bash的一个特性,只要不是exit退出,所有的命令缓存都会存储在内存当中,而并不是直接写入硬盘的文件中,使用-a既可将内存中缓存的命令历史追加到命令的历史文件。
2、命令补全
PATH环境变量,记录应用程序所存放的目录
两次tab键 补全命令是在PATH下面逐级寻找,如果找不到就会出现 command not found
3、路径补全
cd /etc/syscon 两次tab补全(就是bash的特性,不是环境变量设置)
4、命令执行状态结果
echo $?
0 代表成功(正确) 状态码
1-255 代表各种不成功(错误)的状态码
5、命令自身的输出结果
[root@localhost tmp]# ttt -bash: ttt: command not found [root@localhost tmp]# echo $? 127
6、bash的基础特性---文件名的通配
作用:应对对文件名记忆的不够全面
文件名通配 元字符
* 匹配任意长度的任意字符(理解为所有字符)
实例:有如下目录,使用不同的通配方式得出不同的结果。
1、pad
2、pd
3、paad
4、pa
结果 (括号为能匹配到的目录编号)
*pa* (1,3,4)
*pa (4)
p*a (4)
pa* (1,3,4)
? 匹配任意单个字符
p?d (1)
p? (2,4)
[ ] 匹配指定集合内的任意单个字符
[0-9] 表示任意单个数值
[a-z] 表示任意单个小写字母
[A-Z] 表示任意单个大写字母
[0-9a-zA-Z] 集合中的任意单个字符 (范围可自定义)
[^] 匹配集合外的任意单个字符
[^0-9] 除去0-9以外的任意单个字符
[^a-z] 除去a-z以外的任意字符
[^A-Z] 除去A-Z以外的任意字符
6个小练习(答案在本文博客的最后,请先思考):
练习1:显示/var目录下所有l(是字母L)开头,以一个小写字母结尾,且中间出现一位数字的文件或目录;
练习2:显示/etc/目录下,以任意一位数字开头,且以非数字结尾的文件或目录;
练习3: 显示/etc/目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录;
练习4:复制/etc/下,所有以m开头,以非数字结尾的文件或目录至/tmp/jiuren目录中;
练习5:复制/etc目录下,所有以.d结尾的文件或目录至/tmp/jiuren2目录中;
练习6:复制/etc目录下,所有以.conf结尾,以m,n,r,p开头的文件或目录至/tmp/jiuren3目录中;
linux 系统管理相关的常用命令(补充)
①关机命令
halt
init 0
shutdown -h
②重启相关命令
init 6
reboot
shutdown -r
③日期相关的命令
date [选项]
+%F 显示完整日期 full date; same as %Y-%m-%d
2015-04-02
+%D 短格式的日期 date; same as %m/%d/%y
04/02/15
+%Y 只显示长格式的年 如2015
+%y 只显示短格式的年 如15
+%T 显示时间 时/分/秒
+%H 只显示小时
+%M 只显示分钟
+%S 只显示秒
+%s 时间戳
注:时间戳:从unix元年(1970年1月0点0时0分0秒)到现在经历了多少秒
+%m 月份
+%d 天
[root@localhost etc]# date +%s
1427961551
cal 日历软件(显示日历命令)
-1 查看一个月内的日历
-3 查看三个月内的日历
-h 关闭高亮显示
-j 查看罗马日历
-m 已星期一开头,显示日历
-s 已星期日开头,显示日历
-y 查看12个月的日历
答案1:(6个小练习的答案)
[root@localhost tmp]# ls -d /var/l*[0-9]*[a-z] ls: cannot access /var/l*[0-9]*[a-z]: No such file or directory [root@localhost tmp]# mkdir -vp /var/like001like mkdir: created directory `/var/like001like' [root@localhost tmp]# ls -d /var/l*[0-9]*[a-z] /var/like001like
答案2:
[root@localhost ~]# ls -d /etc/[0-9]*[^0-9] ls: cannot access /etc/[0-9]*[^0-9]: No such file or directory [root@localhost ~]# mkdir -v /etc/123qwerty456asdfg mkdir: created directory `/etc/123qwerty456asdfg' [root@localhost ~]# ls -d /etc/[0-9]*[^0-9] /etc/123qwerty456asdfg
答案3:注:1-3小题中默认没有题中所需目录或文件,自己创建测试既可。
[root@localhost tmp]# ls -d /etc/[^a-zA-Z][a-zA-Z]* ls: cannot access /etc/[^a-zA-Z][a-zA-Z]*: No such file or directory [root@localhost tmp]# mkdir -v /etc/8aconf5345wrwer mkdir: created directory `/etc/8aconf5345wrwer' [root@localhost tmp]# ls -d /etc/[^a-zA-Z][a-zA-Z]* /etc/8aconf5345wrwer
答案4:
[root@localhost tmp]# mkdir -v /tmp/jiuren mkdir: created directory `/tmp/jiuren' [root@localhost tmp]# cp -r /etc/m*[^0-9] /tmp/jiuren/ [root@localhost tmp]# ls /tmp/jiuren/ magic mail.rc man.config mcelog mke2fs.conf motd my.cnf mailcap makedev.d maven mime.types modprobe.d mtab
答案5:
[root@localhost tmp]# mkdir -v /tmp/jiuren2 mkdir: created directory `/tmp/jiuren2' [root@localhost tmp]# cp -r /etc/*.d /tmp/jiuren2/ [root@localhost tmp]# ls /tmp/jiuren2/ bash_completion.d ld.so.conf.d profile.d request-key.d cgconfig.d logrotate.d rc0.d rsyslog.d chkconfig.d lsb-release.d rc1.d rwtab.d cron.d makedev.d rc2.d setuptool.d depmod.d modprobe.d rc3.d statetab.d dracut.conf.d oddjobd.conf.d rc4.d sudoers.d event.d pam.d rc5.d xinetd.d init.d popt.d rc6.d yum.repos.d latrace.d prelink.conf.d rc.d
答案6:
[root@localhost tmp]# mkdir -v /tmp/jiuren3 mkdir: created directory `/tmp/jiuren3' [root@localhost tmp]# cp -r /etc/[m,n,r,p]*.conf /tmp/jiuren3/ [root@localhost tmp]# ls /tmp/jiuren3/ mke2fs.conf numad.conf request-key.conf nfsmount.conf pm-utils-hd-apm-restore.conf resolv.conf nsswitch.conf prelink.conf rsyslog.conf ntp.conf readahead.conf