本文出自 “” 博客,请务必保留此出处
1.目录相关命令的使用
★pwd:printing working directory
显示工作目录
对于pwd命令,其还有一些相关的环境变量:
PWD:保存了当前目录路径
OLDPWD:保存了上一次所在目录的路径
每次执行pwd命令的时候其实就是在读取PWD的值
★cd:change directory 改变工作目录
☉语法格式:cd [/PATH/TO/SOMEDIR]
cd或cd~:切换回当前用户的家目录;注意:bash中~表示家目录;
cd ~USERNAME:切换至指定用户的家目录;(只被管理员允许)
cd -:在上一次所在目录与当前目录之间来回切换;
相关的环境变量:
$PWD:当前的工作目录
$OLDPWD:上一次的工作目录
cd ..:返回上一级目录
★ls:list 显示指定路径下的文件列表
☉语法格式:
ls [OPTION]... [FILE]...
☉选项:
-a:--all 显示所有文件,包括隐藏文件;
-A:--almost-all:显示除 . 和 .. 之外的所有文件;
-l:--long 长格式列表,即显示文件的详细属性信息
-h,--human-readable:对文件单位大小换算:换算后的结果可能会非精确值;(通常以 ll -h 方式使用)
-d:查看目录自身而非其内部文件列表(通常以 ll -d 方式使用)
-r:reverse 逆序显示;默认是以升序显示
-R:recursive,递归显示;如果一个目录里有子目录,则同时也显示其子目录中的文件;
-Sl : 文件由大到小排序
-Slr:文件由小到大排序 配合 l
-t :按修改时间排序,-Slt 等配合l,S,r等排序
3.文件查看类命令
★cat:文件查看类工具
☉格式:cat [OPTION]... [FILE]...
☉选项:
-A:显示所有非正常的所有符号;
-E:显示行结束符$;
-T:显示制表符;
-v:显示其他的非打印字符;
-n:对显示的行进行编号,与文件内容没有联系;
-b:打印出行号(空白行不标行号)
★tac,rev命令(同cat命令,显示顺序不同)
tac 命令同cat命令,逆序显示(列)
rev 命令逆序显示行字符
☉直接输入cat命令表示等待用户的输入并打印显示,结束Ctrl+c
★文件内容类型查看命令:file
格式:file [file]...
通过file命令可以获知改文件是什么类型的,如普通文件、目录、链接文件等
4.echo回显命令
★echo是个内建命令,因此可以使用帮助来获得echo的帮助。
☉功能:显示字符
☉语法:echo [-neE] [字符串]
说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号
# echo -n :关闭自动换行功能
☉echo 需要使用-e 参数来使转义字符生效(字符串一定要加引号)
☉字符串可以使用引号,单引号和双引号均可使用
单引号:强引用,变量引用不执行替换(最傻)
如:echo "$SHELL" ---> 同:echo "${SHELL}" 变量引用的正规符号:${name}
双引号:弱引用,变量引用会被替换(居中) 如:echo '$SHELL'
另外:
反向单引号{也可使用$()}:为命令引用(最聪明)。
用途:当一个命令调用第二个命令的结果的时候才会用到。
4.关机或重启命令
★管理类命令
关机:halt,poweroff,shutdown,init0
重启:reboot,shutdown,init6
跟用户登录相关:who,whoami,w
★halt和poweroff
两者都是关机命令
-f 强制关机,相当于切断电源
★reboot:重启
-f 强制
-p 切断电源
★shutdown:关机或重启
格式:shutdown [OPTION...] [TIME] [WALL...]
-r :reboot 重启;
-h :halt 关机;
-c :cancle 取消关机
TIME:
now:立刻;
+m:相对时间表示法,从命令提交开始多久后,例如:+3 分钟;
hh:mm:绝对时间表示,到具体时间后关机
WALL:
wall 命令会在所有终端显示其输入的内容,例如:wall "taotao ai xiuxiu"
5.与登录相关的命令
★whoami
显示当前登录有效用户
★who
作用:系统当前所有的登录会话
格式:who [OPTION]...
-b:系统此次启动的时间;
-r:运行级别
★w
系统当前所有的登录会话及所做的操作;
6.与日期相关的命令
★date命令:显示时间和日期
格式:date[OPTION]...[+FORMAT]
☉date命令可以按照指定格式显示日期,只键入date,则以默认格式显示当前时间,如下:
☉如果需要以指定格式显示日期,可以使用“+”开头的字符串指定其格式,详细格式如下(常用):
%D:直接显示日期 mm/dd/yy (“Y”长格式年,“y”短格式年)
%F:直接显示日期 (YY-mm-dd) ;
%T:直接显示时间(24小时制);
%Y:完整年份(0000-9999);
%m:显示月份;
%d:日;
%A:星期几(Sunday-Saturday);
%a:星期几(Sun-Sat);
%w:一周中的第几天
%H:显示小时;
%M:显示分钟 ;
%S:显示秒;
%s:从1970年到现在经过的秒数;
★设置时间
☉格式:date [MMDDhhmm[[CC]YY][.ss]]
MM:月份;
DD:几号;
hh:小时;
mm:分钟;
CC:两位年份;
CCYY:四位年份;
ss:秒;
☉用 -s 可以设置系统时间
★Linux的两个时钟
☉系统时钟
由Linux内核通过cpu的工作频率进行计时
☉硬件时钟:
就是主板bios提供的时钟,由主板电池供电来维持运行
☉命令
date命令显示的是系统时间;
clock或者hwclock显示的是硬件时钟
-s, --hctosys以硬件时钟为准,校正系统时钟
-w, --systohc以系统时钟为准,校正硬件时钟
★cal命令
显示当前日历,默认显示当前月份的日历;
cal [YY]:显示年份的日历 如: # cal 09 2017 (注意书写顺序)
7.type、alias、which和whereis命令
★type
格式:type COMMAND
内部命令:builtin
外部命令:显示为命令文件路径
注意:
命令可以有别名,别名可以与原名相同,此时原名被隐藏,此时如果要运行原命令,则使用 \COMMAND
★alias 命令别名
获取所有可用别名的定义:~]# alias
定义别名:~]# alias NAME='COMMAND' (仅对当前shell有效)
撤销别名:~]# unalias NAME
★which 显示应用程序文件位置
格式:which COMMAND
注意:
有时候一个命令还有其他的别名,但我们先看命令本身,而非别名,此时可以使用:
which --skip-alias 禁止使用别名,直接使用原始命令
★whereis命令:
作用:whereis - locate the binary, source, and manual page files for a command
格式:whereis [options] name...
选项:
-b:仅搜索二进制程序路径;
-m:仅搜索使用手册文件路径;
7.screen命令远程控制
★使用方法:
打开screen: # screen -S [session 会话]
加入screen: # screen -x [session 会话]
退出并关闭screen: exit
剥离当前screen: Ctrl+a+d
显示所有已经打开的screen: # screen -ls
恢复某screen: screen -r [screen]
bash的基础特性(一)
1.命令历史
★命令历史:
shell进程会在其会话中保存此前用户提交执行过的命令
★history:
☉作用:
history 是管理命令历史,每次执行的命令都会放置在内存的缓存当中,直到退出当前终端后会被保存在命令历史文件当中。
☉命令历史文件位置:
登录shall后,新执行的命令只会记录在缓存当中;
登录shall后,会读取命令历史文件中的记录命令
.bash_history 放置在家目录下的隐藏文件中
☉history命令用法
格式:
history [-c] [-d 偏移量] [n]
或 history -anrw [文件名]
或 history -ps 参数 [参数...]
选项:
-c:清空命令历史
-d:删除历史中指定的命令; eg:history -d 3
#:显示最近的#条历史 eg:history 5
-a:追加本次会话新执行的命令历史列表至历史文件
-n:读历史文件中未读过的(其他终端用户)行到历史列表
-r:读历史文件附加到历史列表
-w:保存历史列表到指定的历史文件
-p:展开历史参数成多个行,但不存在历史列表中
-s:展开历史参数成一行,附加在历史列表后 (伪造命令)
★history 中的相关变量
HISTSIZE:shell进程可保留的命令历史的条数;
HISTFILE:指定持久保存命令历史的文件,默认为~/.bash_history;
HISTFILESIZE:指定历史文件记录历史的大小(条数);
HISTTIMEFORMAT=“%F %T“ 显示时间
HISTIGNORE=“str1:str2:… “ 忽略string1,string2历史
★控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups:忽略重复的命令;连续且相同方为“重复”
ignorespace:忽略所有以空白开头的命令
ignoreboth:ignoredups和ignorespace的组合
erasedups: 删除重复命令
注意:
修改变量的值:NAME='VALUE'
我们修改的命令只是记录在缓存中,要想永久生效就必须 在 /etc/profile 或~/.bash_profile 文件中修改保存。
☉重复前一个命令的方法:
使用上方向键,并回车执行。
按 !! 并回车执行
输入!-1 并回车执行。
按Ctrl+p 并回车执行。
☉重复之前命令的方法:
!字符串:重复前一个以“字符串”开头的命令
!num: 按照history命令输出中的序号重复对应命令
!?字符串:执行包含字符串的命令
!-n:执行倒数第n个命令
☉命令行历史的查看和搜索
使用up(向上)和down(向下)键来上下浏览从前输入的命令;
键入ctrl-r来在命令历史中搜索命令 (reverse-i-search)`':
☉要重新调用前一个命令中最后一个参数:
!$ 表示
Esc .(点击Esc键后松开,然后点击. 键)
Alt+ .(按住Alt键的同时点击. 键)
☉命令调用的方法:
#cmd !^ : 利用上一个命令的第一个参数做cmd的参数
#cmd !$ : 利用上一个命令的最后一个参数做cmd的参数
#cmd !* : 利用上一个命令的全部参数做cmd的参数
#cmd !:n : 利用上一个命令的第n个参数做cmd的参数
组合:
!n:^ :调用第n条命令的第一个参数
!n:$ :调用第n条命令的最后一个参数
!m:n :调用第m条命令的第n个参数
!n:* :调用第n条命令的所有参数
☉搜索历史中的参数:
!string:^ : 从命令历史中搜索以string 开头的命令,并 获取它的第一个参数;
!string:$ :从命令历史中搜索以string 开头的命令,并获取它的最后一个参数;
!string:n :从命令历史中搜索以string 开头的命令,并获取它的第n个参数;
!string:* :从命令历史中搜索以string 开头的命令,并获取它的所有参数;
2.命令及路径补全
★命令补全方法
shell程序在接收到用户执行命令的请求,分析完成之后,最左侧的字符串会被当做命令;
命令查找机制
内部命令:内部命令没有具体的二进制文件,是由内核提供的;
外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令。
补全方法:
直接补全:用户给定的大头字符串如果能唯一标识某命令程序文件,则直接补全;
用户给定的字符串为开头的命令不唯一时,则再次按Tab键会给出以字符串开头的命令列表。
★路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名,如果惟一,则直接补全;否则:再次Tab给出列表
3.bash常用的快捷方式
Ctrl+l :清屏,相当于clear命令
Ctrl+c :取消命令的执行
Ctrl+a :会移动到命令行的最前面
Ctrl+e :会移动到命令行的最后面
Ctrl+u :会删除到行首
Ctrl+k :会删除到行尾
Ctrl+b :向左 Ctrl-f 向右移动一个字符
Esc+b :左移一个单词
Esc+f :右移一个单词