2017.10.15 bash基础特性及基础命令
一. 命令历史,命令补全和路径补全 环境变量: 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用法案例: 在根目录/下创建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~]# 三.文件查看命令 [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 创建文件或更新文件的时间戳 参数: -c :不创建不存在文件 -m:只更新修改时间,不更新访问时间 -a:只更新访问时间,不更新修改时间 -r file:使用文件file的时间更新文件的时间 -t:将时间修改为参数指定的日期,如01091135为 1月9日 11:35
[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]# (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |