一. 命令历史,命令补全和路径补全
环境变量:
HISTFILE:命令历史记录的条数
HISTSIZE:~/.bash.history
HISTFILESIZE:命令历史文件记录历史的条数
history:默认显示10条历史纪录
history -n:显示后n条历史记录
history -d n:删除第n条历史纪录
history -c:删除所有历史记录
history -a:手动追加当前会话缓冲区中的历史命令至历史文件中
!n:重复执行第n条命令
!!:重复执行上一条命令
!加命令的开头几个字母:重复执行最近一次以这几个字母开头的命令
控制命令历史的记录方式:
环境变量:HISTCONTROL:
ignoredups:忽略连续重复的命令
ignorespace:忽略以空格开头的命令
ignoreboth:ignoredups,ignorespace
修改环境变量值的方式:export 变量名=“值”
变量赋值:把赋值符号后面的数据存储于变量名指向的内存空间;
[root@xxl~]#history//查看命令历史,默认显示10条历史纪录 28history 29ls 30history|more 31history 32history|more 33ls 34cd 35ls 36cd/.bash.hisory 37history [root@xxl~]#history5//查看最近5条命令历史 34cd 35ls 36cd/.bash.hisory 37history 38history5 [root@xxl~]#history-d36//删除第36条命令历史, [root@xxl~]#history5//再次查看,发现已经被删除了 35ls 36history 37history5 38history-d36 39history5 [root@xxl~]#history-c//删除所有历史 [root@xxl~]#history 31history [root@xxl~]#history-a [root@xxl~]# [root@xxl~]#cd/ [root@xxl/]#ls 123bootdevlibmediaprocselinuxtmpvar abcdataetclib64mntrootsrvusrxxl bindata1homelost+foundoptsbinsysuzz [root@xxl/]#cd [root@xxl~]#ls 12anaconda-ks.cfg-nuzz 123ett.txtoldboyxxl 123456install.logoldboy.txtxxl.txt abcinstall.log.syslogsession192.168.80.1280320.log [root@xxl~]#history 31history 32history-a 33cd/ 34ls 35cd 36ls 37history [root@xxl~]#!33//重复执行第33条历史命令 cd/ [root@xxl/]#cd [root@xxl~]#ls 12anaconda-ks.cfg-nuzz 123ett.txtoldboyxxl 123456install.logoldboy.txtxxl.txt abcinstall.log.syslogsession192.168.80.1280320.log [root@xxl~]#!!//重复执行上一条命令 ls 12anaconda-ks.cfg-nuzz 123ett.txtoldboyxxl 123456install.logoldboy.txtxxl.txt abcinstall.log.syslogsession192.168.80.1280320.log [root@xxl~]#!c//重复执行最近一次以c打头的命令 cd [root@xxl~]# [root@xxl~]#history 2cd/ 3ls 4cd 5ls 6history 7cd/ 8cd 9ls 10cd 11history [root@xxl~]#ls 12anaconda-ks.cfg-nuzz 123ett.txtoldboyxxl 123456install.logoldboy.txtxxl.txt abcinstall.log.syslogsession192.168.80.1280320.log [root@xxl~]#ls 12anaconda-ks.cfg-nuzz 123ett.txtoldboyxxl 123456install.logoldboy.txtxxl.txt abcinstall.log.syslogsession192.168.80.1280320.log [root@xxl~]#history//默认重复执行的命令不被记录 4cd 5ls 6history 7cd/ 8cd 9ls 10cd 11history 12ls 13history [root@xxl~]#cd/ [root@xxl/]# [root@xxl/]#history 6history 7cd/ 8cd 9ls 10cd 11history 12ls 13history 14cd/ 15history [root@xxl/]#exportHISTCONTROL="ignorespace"//设置以空格打头的命令不被记录 [root@xxl/]#cd [root@xxl~]# [root@xxl~]#history 8cd 9ls 10cd 11history 12ls 13history 14cd/ 15history 16exportHISTCONTROL="ignorespace" 17history [root@xxl~]#
命令补全和路径补全
linux中命令和路径众多,在使用过程中难免会忘记,bash shell提供的命令补全功能弥补了这一缺陷。只需要给出命令的前几个字母,bash会根据PATH环境变量定义的路径,从左到右查找以给定命令名命名的文件,第一次查找到的即为要运行的文件。
按tab键即可自动补全,如果还未不全,可再敲一次tab键,从给出的选项中选择要执行的命令,或者再对给出一些提示。
[root@xxl~]#e//输入e按tab,发现以e打头的命令有很多,再按一次tab,列出所有 e2freefragenvsubsteu-objdump e2fsckeqneu-ranlib e2imageeqn2grapheu-readelf e2labelera_checkeu-size e2undoera_dumpeu-stack echoera_invalidateeu-strings edesaceu-strip editdiffespdiffeu-unstrip edquotaether-wakeeval efibootmgrethtoolex egrepeu-addr2lineexec ejecteu-arexecstack elifeu-elfcmpexit elinkseu-elflintexpand elseeu-findtextrelexport enableeu-make-debug-archiveexpr enveu-nm [root@xxl~]#echo//输入ec,按回车,显示echo [root@xxl~]#cat/etc/sysconfig/network-scripts/ifcfg-eth0/敲tab补全
目录管理类命令
1. mkdir
mkdir [选项] 目录 创建目录
参数:
-p 递归创建目录
-m 对创建的目录设置权限,-m,默认是755
2. rmdir
rmdir [选项] 目录 删除”空“目录
-p 递归删除
mkdir用法案例: 在根目录/下创建uzz目录 [root@xxl/]#mkdiruzz [root@xxl/]#ls/ 12bindata1homelost+foundoptsbinsysuzz 123bootdevlibmediaprocselinuxtmpvar abcdataetclib64mntrootsrvusrxxl [root@xxl/]# 在uzz目录下创建xk目录,再在xk目录下创建wlgc目录 [root@xxluzz]#mkdir-pxk/wlgc [root@xxluzz]#ls xk [root@xxluzz]#lsxk wlgc [root@xxluzz]# [root@xxl12]#mkdir-m711files//创建files文件夹,设置目录权限是711 [root@xxl12]#ls-l total4 drwx--x--x2rootroot4096May412:43files [root@xxl12]#mkdirfile//创建file文件夹 [root@xxl12]#ls-l//列出详细信息 total8 drwxr-xr-x2rootroot4096May412:44file drwx--x--x2rootroot4096May412:43files [root@xxl12]#//可以看出,这两个文件的权限是不一样的 rmdir用法案例: [root@xxl~]#treeuzz uzz └──xxkx └──wlgc └──xxl [root@xxl~]#rmdir-puzz/xxkx/wlgc rmdir:Failedtoremove`uzz/xxkx/wlgc':Directorynotempty [root@xxl~]#rmdir-puzz/xxkx/wlgc/xxl [root@xxl~]#lsuzz ls:cannotaccessuzz:Nosuchfileordirectory [root@xxl~]#
三.文件查看命令
1. more和less
more的功能是将文件从第一行开始,根据输出窗口的大小,适当的输出文件内容。当一页无法全部输出时,可以用“回车键”向下翻行,用“空格键”向下翻页。退出查看页面,请按“q”键。另外,more还可以配合管道符“|”(pipe)使用,例如:ls -al | more
more的语法:more 文件名
Enter 向下n行,需要定义,默认为1行;
Ctrl f 向下滚动一屏;
空格键 向下滚动一屏;
Ctrl b 返回上一屏;
= 输出当前行的行号;
:f 输出文件名和当前行的行号;
v 调用vi编辑器;
! 命令 调用Shell,并执行命令;
q 退出more
less的功能和more相似,但是使用more无法向前翻页,只能向后翻。
less可以使用【pageup】和【pagedown】键进行前翻页
less的语法:less 文件名
less还有一个功能,可以在文件中进行搜索你想找的内容,假设你想在passwd文件中查找有没有weblogic字符串,那么你可以这样来做:
[root@redhat etc]# less passwd
然后输入:
/weblogic
回车
此时如果有weblogic字符串,linux会把该字符已高亮方式显示。
退出查看页面,请按“q”键。
2. head和tail
head和tail通常使用在只需要读取文件的前几行或者后几行的情况下使用。
head的功能是显示文件的前几行内容
head -4 a.txt 显示前4行内容
tail的功能恰好和head相反,只显示最后几行内容
tail -5 b.txt 显示后5行内容
[root@xxl~]#head-5install.log Installinglibgcc-4.4.7-16.el6.x86_64 warning:libgcc-4.4.7-16.el6.x86_64:HeaderV3RSA/SHA1Signature,keyIDc105b9de:NOKEY Installingsetup-2.8.14-20.el6_4.1.noarch Installingfilesystem-2.4.30-3.el6.x86_64 Installingbasesystem-10.0-4.el6.noarch [root@xxl~]#tail-5install.log Installingipw2100-firmware-1.3-11.el6.noarch Installingql23xx-firmware-3.03.27-3.1.el6.noarch Installingipw2200-firmware-3.1-4.el6.noarch Installingrootfiles-8.1-6.1.el6.noarch ***FINISHEDINSTALLINGPACKAGES*** [root@xxl~]#
四. 时间戳管理命令
touch 创建文件或更新文件的时间戳
格式:touch 参数 文件名
参数:
-c :不创建不存在文件
-m:只更新修改时间,不更新访问时间
-a:只更新访问时间,不更新修改时间
-t:将时间修改为参数指定的日期,如01091135为 1月9日 11:35
补充知识:查看文件信息(创建日期):ls -l 查看文件信息(访问日期):ls -lu
[root@xxl123]#tree//交待实验环境,该文件夹下有以下文件夹和文件 . ├──1234 │└──12345 ├──1.txt ├──2 ├──2.txt └──3.txt 2directories,4files [root@xxl123]#touch-ca.txt//如果有a.txt,更新其时间戳,如果没有,也不要创建 [root@xxl123]#ls 12341.txt22.txt3.txt [root@xxl123]#ls-l1.txt -rw-r--r--.1rootroot9May415:041.txt [root@xxl123]#touch-c1.txt [root@xxl123]#ls-l1.txt -rw-r--r--.1rootroot9May416:211.txt [root@xxl123]#ls-lu1.txt -rw-r--r--.1rootroot9May416:211.txt [root@xxl123]#touch-a1.txt [root@xxl123]#ls-lu1.txt -rw-r--r--.1rootroot9May416:231.txt [root@xxl123]#ls-l2.txt -rw-r--r--.1rootroot9Apr505:172.txt [root@xxl123]#touch-r2.txt1.txt [root@xxl123]#ls-l2.txt -rw-r--r--.1rootroot9Apr505:172.txt [root@xxl123]#touch-t033012591.txt [root@xxl123]#ls-l1.txt -rw-r--r--.1rootroot9Mar3012:591.txt [root@xxl123]#