目录
-
1.系统初始
-
1.1 广播
-
1.2关机/重启命令
-
1.3配置信息
-
2.终端terminal以及交互式接口
-
2.1终端terminal
-
2.2交互式接口
-
3.用户登录
-
4.bash shell
-
5.命令提示符
-
6.命令分类,查找,别名,优先级
-
6.1 命令分类
-
6.2 命令查找
-
6.3 命令别名
-
6.4 命令优先级
-
7.安装VMware Tool
-
8.命令格式
-
9.简单命令date,cal,clock,hwclock
-
10.简单命令screen ,echo,文件名的颜色
-
10.1 安装screen
-
10.2 screen会话命令:
-
10.3 简单命令echo 命令
-
10.4 定义文件名的颜色
-
11.命令行扩展、被括起来的集合
-
11.1 命令替换(命令引用)
-
11.2括号扩展:{ }
-
12.Tab键
-
12.1命令补全
-
12.2路径补全
-
13.获得帮助
-
13.1 # whatis
-
13.2命令帮助
-
13.3–help 选项
-
13.4 man 命令及章节
-
13.5导览man 手册页
-
13.6 man 命令
-
13.7 man 搜索
-
13.8 info
-
13.9 导航info页
-
13.10 通过本地文档获取帮助
-
13.11 通过在线文档获取帮助
-
13.12 红帽全球技术支持服务
-
13.13 网站和搜索
-
14.命令行历史history
-
14.1重复前一个命令
-
14.2 方向键
-
14.3命令history
-
14.4命令历史相关环境变量
-
14.5 bash 的快捷键
-
1.系统初始
1.1 广播
echo hello > /dev/pts/1
[root@6 ~]# echo hello > /dev/pts/2 [root@6 ~]# tty /dev/pts/1 [root@6 ~]# hello [root@6 ~]# tty /dev/pts/2
1.2关机/重启命令
# halt 关机不断电
# poweroff 关机断电
# init
关闭图像界面 init 3
开启图像界面 init 5 重新启动系统服务的,需要重新输入用户名和密码登陆.
# startx 开启图像界面 以当前身份当前环境变理切到图型
1.3配置信息
版本号
/etc/redhat-release
/etc/centos-release
[root@6 ~]# cat /etc/redhat-release CentOS release 6.8 (Final) [root@6 ~]# cat /etc/centos-release CentOS release 6.8 (Final)
用户提示
/etc/issue
[root@6 ~]# cat /etc/issue CentOS release 6.8 (Final) Kernel \r on an \m
#lsb_release
[root@6 ~]# lsb_release LSB Version::base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
2.终端terminal 以及交互式接口
2.1终端terminal
物理终端:直接接入本机的显示器和键盘设备 单用户模式
/dev/console
虚拟终端:附加在物理终端之上的以软件方式虚拟实现的
终端,设备文件路径:/dev/tty#,
#Ctrl+Alt+F#: [1,6] 终端切换
# chvt n
[root@6 ~]# chvt 2 切换到某用户 [root@6 ~]#
图形终端:属于虚拟终端,附加在物理终端之上的以软件方式虚拟实现的终端,但额外会提供桌面环境;
模拟终端:图形界面打开 的 命令行以及基于ssh 协议或telnet 协议等远程打开的界面, 设备文件:/dev/pts/# [0, ∞ )
查看当前的终端设备:tty
[root@6 ~]# tty /dev/pts/1
# getent passwd ftp 察看系统的数据库中的相关记录 [root@6 ~]# getent passwd ftp ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
2.2交互式接口
交互式接口:启动终端后,在终端设备附加一个交互式应用
程序
GUI :Graphic User Interface
Desktop:
GNOME (C, 图形库gtk)
KDE (C++, 图形库qt)
CLI :Command Line Interface
3.用户登录
#id -u UID
centos 6 普通用户 500(初始值)
centos 7 普通用户 1000(初始值)
[root@6 ~]# id -u lvasu 500 [root@7 ~]# id -u lvasu 1000
4.bash shell
GNU Bourne-Again Shell(bash) 是GNU 计划中重要的工
是 具软件之一,目前也是 Linux 标准的shell ,与sh 兼容。
CentOS 默认使用
显示当前使用的shell: :
#echo $SHELL 查看用户的shell [root@6 ~]# echo $SHELL /bin/bash
显示当前系统使用的所有shell: :
#cat /etc/shells 查看系统shell [root@6 ~]# echo $SHELL /bin/bash [root@6 ~]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/tcsh /bin/csh
5.命令提示符
命令提示符:prompt
[root@localhost ~]#
显示提示符格式:
[root@localhost ~] :echo $PS1
prompt: :
管理员:#
普通用户:$
[root@6 ~]# echo $PS1 [\u@\h \W]\$ [root@6 ~]# PS1={\u} {u} Last login: Sat Jul 23 00:37:09 2016 [root@6 ~]# Last login: Wed Jul 20 17:17:28 2016 [lvasu@6 ~]$
6.命令分类,查找,别名,优先级
6.1 命令分类
在shell 中可执行的命令有两类:
内部命令:由shell 自带的,而且通过某命令形式提供
enable 命令可以启用或禁用 内部命令
外部命令:在当前系统的某文件系统路径下有对应的可执
行程序文件;
6.2 命令查找
# which 外部命令的路径 [root@6 ~]# which ls alias ls='ls --color=auto' [root@6 testdir]# which cd /usr/bin/which: no cd in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin) /bin/ls 内部命令的路径查找不到
爱疯
# whereis 文件的路径以及帮助文档 [root@6 ~]# whereis ls ls: /bin/ls /usr/share/man/man1p/ls.1p.gz/usr/share/man/man1/ls.1.gz
# type COMMAND 看命令类型 (外/内) [root@6 ~]# type cd cd is a shell builtin [root@6 ~]# type date date is /bin/date
禁用,启用内部命令
# enable -n command 禁用内部命令 [root@6 testdir]# enable -n cd [root@6 testdir]# cd / -bash: cd: command not found [root@6 testdir]# enable -n ls -bash: enable: ls: not a shell builtin 外部命令提示错误
# enable command 启用内部命令 [root@6 testdir]# enable cd [root@6 testdir]# cd / [root@6 /]#
hash 命令: 命令缓存
搜寻到的外部命令路径结果缓存至 kv(key-value) 存储中
hash 显示hash存 缓存
[root@6 testdir]# hash hits command 1 /sbin/ifconfig 1 /bin/rm 1 /bin/touch 1 /bin/cp 3 /bin/ls
hash-d 删除指定命令条
[root@6 testdir]# hash -d rm [root@6 testdir]# hash hits command 1 /sbin/ifconfig 1 /bin/touch 1 /bin/cp 3 /bin/ls
hash –r 清除缓存
[root@6 testdir]# hash -r [root@6 testdir]# hash hash: hash table empty
6.3 命令别名
# alias ls=’ls –color=auto’ 定义命令别名
[root@6 testdir]# alias lv='cat /etc/passwd' [root@6 testdir]# lv root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
# unalias 取消命令别名
[root@6 testdir]# unalias lv [root@6 testdir]# lv -bash: lv: command not found
执行原始命令
1.直接路径
2.\command
3.’command’
[root@6 testdir]# which ls alias ls='ls --color=auto' /bin/ls [root@6 testdir]# /bin/ls lost+found VMware Tools [root@6 testdir]# \ls lost+found VMware Tools [root@6 testdir]# 'ls' lost+found VMware Tools
6.4 命令优先级
命令优先级
命令别名 > 内部命令 > 缓存命令 > 外部命令
#echo $PATH 命令文件夹位置
[root@6 bin]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [root@7 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@6 ~]# alias ls='cd' 命令别名>内部命令 [root@6 ~]# ls / [root@6 /]#
[root@7 ~]# enable -n cd 内部命令>外部命令 [root@7 ~]# cd [root@7 ~]# cd / [root@7 ~]# type cd cd 已被哈希 (/usr/bin/cd) [root@7 ~]# hash 命中 命令 3 /usr/bin/cd
[root@7 sbin]# !61 存命令>外部命令 echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@7 sbin]# cp -a /bin/yes /usr/local/sbin [root@7 sbin]# type yes yes 已被哈希 (/usr/bin/yes)
7.安装VMware Tool
# cp -r /media/VMware\ Tool/ /testdir/
[root@6 ~]# cp -r /media/VMware\ Tool/ /testdir/
# tar xvf VMwareTools-10.0.1-3160059.tar.gz
[root@6 ~] # tar xvf VMwareTools-10.0.1-3160059.tar.gz
#./vmware-install.pl
[root@6 ~]#./vmware-install.pl
8.命令格式
COMMAND [OPTIONS…] [ARGUMENTS…]
选项:用于启用或关闭命令的某个或某些功能;
短选项:-c, 例如:-l, -h
长选项:–word ,例如:–all, –human-readable
参数:命令的作用对象,比如文件名,用户名等
注意:
1、多选项,以及多参数和命令之间使用空白字符分隔
[root@7 ~]# ls -h -l . /etc/ .: 总用量 8.0K -rw-------. 1 root root 1.8K 7月 21 01:43 anaconda-ks.cfg -rw-------. 1 root root 1.9K 7月 20 17:52 initial-setup-ks.cfg drwxr-xr-x. 2 root root 6 7月 20 17:54 公共 drwxr-xr-x. 2 root root 6 7月 20 17:54 模板 drwxr-xr-x. 2 root root 6 7月 20 17:54 视频 drwxr-xr-x. 2 root root 6 7月 20 17:54 图片 drwxr-xr-x. 2 root root 6 7月 20 17:54 文档 drwxr-xr-x. 2 root root 6 7月 20 17:54 下载 drwxr-xr-x. 2 root root 6 7月 20 17:54 音乐 drwxr-xr-x. 2 root root 18 7月 22 15:22 桌面 /etc/: 总用量 1.4M drwxr-xr-x. 3 root root 97 7月 21 01:29 abrt -rw-r--r--. 1 root root 16 7月 21 01:42 adjtime -rw-r--r--. 1 root root 1.5K 6月 7 2013 aliases -rw-r--r--. 1 root root 12K 7月 20 17:51 aliases.db drwxr-xr-x. 2 root root 49 7月 21 01:29 alsa drwxr-xr-x. 2 root root 4.0K 7月 21 01:38 alternatives -rw-------. 1 root root 541 7月 27 2015 anacrontab -rw-r--r--. 1 root root 55 3月 6 2015 asound.conf -rw-r--r--. 1 root root 1 11月 20 2015 at.deny
2 、取消和结束命令执行:Ctrl+c ,Ctrl+d (退出logout)
root@7 ~]# yes y y y y ^C[root@7 ~]#
3 、多个命令可以用 ; 符号分开
[root@7 ~]# date;clock;hwclock 2016年 07月 23日 星期六 15:20:42 CST 2016年07月23日 星期六 23时13分43秒 -0.783823 秒 2016年07月23日 星期六 23时13分44秒 -1.001945 秒
4 、一个命令可以用 \ 分成多行
[root@7 ~]# cat anaconda\ > -ks\ > .cfg #version=DEVEL # System authorization information auth --enableshadow --passalgo=sha512 # Use CDROM installation media cdrom # Use graphical install
9.简单命令date,cal,clock,hwclock,nano编辑器
date – 显示日期和时间
-u:
date mmddHHMMYY.SS 修改系统时间
[root@7 ~]# date 2016年 07月 23日 星期六 15:24:50 CST [root@7 ~]# date -u 2016年 07月 23日 星期六 07:24:55 UTC [root@7 ~]# date 0801080008.00 2008年 08月 01日 星期五 08:00:00 CST
Linux 的两种时钟:
系统 时钟:由Linux 内核通过CPU 的工作频率进行 的;
硬件 时钟:主板
hwclock ,clock: 显示硬件时钟
-s , –hctosys 以硬件时钟为准,校正系统时钟
-w, –systohc 以系统时钟为准 , 校正硬件时钟
[root@7 ~]# date 0801080008.00 2008年 08月 01日 星期五 08:00:00 CST [root@7 ~]# clock -s [root@7 ~]# date 2016年 07月 23日 星期六 23:18:45 CST [root@7 ~]# date 0723152716.25 2016年 07月 23日 星期六 15:27:25 CST [root@7 ~]# clock -w [root@7 ~]# clock 2016年07月23日 星期六 15时27分45秒 -0.600986 秒
cal – 显示 日历
#cal 08 2015
#cal 09 1752
[root@7 ~]# cal 七月 2016 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [root@7 ~]# cal 08 2015 八月 2015 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [root@7 ~]# cal 09 1752 九月 1752 日 一 二 三 四 五 六 1 2 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
10.简单命令screen ,echo,文件名的颜色
10.1 安装screen
[root@7 Packages]# cd /run/media/root/CentOS\ 7\ x86_64/Packages/ [root@7 Packages]# rpm -i screen-4.1.0-0.21.20120314git3c2946.el7.x86_64.rpm
10.2 screen会话命令: 连接至同一个账户同一个会话
打开新的screen:
# screen
打开新的screen:
#screen –S [SESSION]
[root@7 ~]# screen -S 100
加 入会话:
#screen –x [SESSION]
[root@7 ~]# screen -x 100
退出并关闭screen:
# exit
[screen is terminating]
剥离当前screen:
Ctrl+a,d ctrl+d 关闭终端
[detached from 6907.20]
显示所有已经打开的screen:
# screen -ls
恢复某screen
#screen -r [SESSION]
10.3 简单命令echo 命令
功能:显示字符
语法:echo [-neE][ 字符串]
说明:echo 会将输入的字符串送往标准输出。
输出的字符串间以空白字符隔开, 并在最后加
上换行号
echo “$VAR_NAME”: 变量会替换,双引号表弱引用
echo ‘$VAR_NAME’: 变量不会替换,强引用
$echo –e “Enter the file name: \c”
echo 命令选项:
-n 不在字符的最后 自动换行
-e 若字符串中出现以下字符,则特别加以处理,而
不会将它当成一般文字输出: (弱引用)
\a 发出警告声;
[root@7 ~]# echo -e "\a"
\b 退格键
[root@7 ~]# echo -e "abc\bd" abd
\c 最后不加上换行符号;而且删除后面的内容 压缩回车换行
[root@7 ~]# echo -e "\cabcd" [root@7 ~]# echo -e "abcd\c" abcd[root@7 ~]# echo -e "abc\cd" abc[root@7 ~]# echo -e "ab\ccd" ab[root@7 ~]#
\n 换行且光标移至行首;
a[root@7 ~]# echo -e "ab\ncd" ab cd [root@7 ~]# echo -e "a\nbcd" a bcd
\r 光标移至行首,但不换行;光标移至行首,将后面的替换前面的
[root@7 ~]# echo -e "a\rbcd" bcd [root@7 ~]# echo -e "ab\rcd" cd
\t 插入tab;
[root@7 ~]# echo -e "ab\tcd" ab cd
\\ 插入\ 字符;
ab[root@7 ~]# echo -e "abcd\\" abcd\
\0nnn 插入nnn (八进制)所代表的ASCII 字符
[root@7 ~]# echo -e '\0141' a
echo -e “\033[43;31mred color\033[0m”
\xHH 插入HH (十六进制)所代表的ASCII 字符
[root@7 ~]# echo -e "\xad"
10.4定义文件名的颜色
cat /etc/DIR_COLORS
cat
11.命令行扩展、被括起来的集合
11.1 命令替换(命令引用)
`command` 适用于命令引用
$(command)
[root@7 ~]# echo "echo $USER" 弱引用 echo root [root@7 ~]# echo 'echo $USER' 强引用 echo $USER [root@7 ~]# echo `echo $USER`
命令行扩展:$( ) 或 或 “
把一个命令的输出打印给另一个命令的参数
$ echo “This system’s name is $(hostname ) “
This system’s name is server1.example.com
$echo “i am `whoami ` “
i am root
11.2括号扩展:{ }
打印重复字符串的简化形式
$ echo file{1,3,5}
file1 file3 file5
$ rm -f file{1,3,5}
12.Tab键
12.1命令补全
内部命令:
外部命令:bash 根据PATH环境变量定义的路径,自左而
右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令
即为要执行的命令
用户给定的字符串只有一条惟一对应的命令,直接补全
否则,再次Tab 会给出列表
12.2路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录
下搜索以指定的字符串开头的文件名
如果惟一:则直接补全
否则:再次Tab 给出列表
13.获得帮助
获取帮助的能力决定了技术的能力!
多层次的帮助
whatis
command –help
man and info
/usr/share/doc/
Red Hat documentation
其它网站和搜索
13.1 # whatis
1.显示命令的简短描述
2.每晚使用一个数据库更新
3.刚安装后不可立即使用
# makewhatis (centos6)
# mandb (centos7) 制作数据库
[root@7 ~]# mandb 正在删除 /usr/share/man 里的旧数据库条目... bash: makewhatis: 未找到命令... [root@6 ~]# makewhatis
whatis cal 或 man –f cal
[root@6 ~]# whatis cal cal (1) - displays a calendar cal (1p) - print a calendar
13.2命令帮助
内部命令 : #help COMMAND
#man bash
外部命令: (1) # COMMAND –help
# COMMAND -h
(2) 使用手册(manual)
# man COMMAND
(3) 信息页
# info COMMAND
(4) 程序自身的帮助文档
README
INSTALL
ChangeLog
(5) 程序官方文档
官方站点:Documentation
(6) 发行版的官方文档
(7) Google
13.3–help 选项
显示用法总结和参数列表
使用的大多数,但并非所有的
$ date –help
Usage: date [OPTION]… [+FORMAT] or: date [-
u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]
1. [] 是可选的
2. CAPS 或 <> 是变量
3. … 表示一个列表
4. x |y| z “ 的意思是“ x 或 y 或 z “
5. -abc的 的 意思是-a -b -c
13.4 man 命令及章节
1.提供命令帮助的文件
2.手册页存放在/usr/share/man
3.几乎每个命令都有man 的“页面”
4.man 页面分组为不同的“章节”
5.统称为Linux 手册
6.man [ 章节] 命令
7.man 命令的配置文件:/etc/man.config | man_db.conf
8.MANPATH /PATH/TO/SOMEWHERE: 指明新手册文件搜索位置
9.# man – M /PATH/TO/SOMEWHERE COMMAND : 到指定位置下搜
索 COMMAND 命令的手册页并显示
man 章节
1: 用户命令
2: 系统调用
3: C 库调用
4: 设备文件及特殊文件
5: 配置文件格式
6: 游戏
7: 杂项
8: 管理类的命令
9 :Linux 内核API
[root@6 ~]# whatis passwd passwd (1) - update user's authentication tokens passwd (5) - password file passwd [sslpasswd] (1ssl) - compute password hashes [root@6 ~]# man 5 passwd PASSWD(5) Linux Programmer’s Manual PASSWD(5) NAME passwd - password file
13.5导览man 手册页
1.查看man 手册页
2.SYNOPSIS 摘要:[] :可选内容
<>: 必选内容
a|b :二选一
…: 同一内容可出现多次
3.man –a keyword 列出所有帮助
4.搜索man 手册
man -k keyword 列出所有匹配的页面
使用 whatis 数据库
13.6 man 命令
man 命令的操作方法:使用less 命令实现
Space, ^V, ^f, ^F: 向文件尾翻屏
b, ^B: 向文件首部翻屏
d, ^D: 向文件尾部翻半屏
u, ^U: 向文件首部翻半屏
RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行
y or ^Y or ^P or k or ^K :向文件首部翻一行
q: 退出
# :跳转至第#行 行
1G: 回到文件首部
G :翻至文件尾部
13.7 man 搜索
/KEYWORD:
以 以KEYWORD指定的字符串为关键字,从当前位置向文件
尾部搜索;不区分字符大小写;
n: 下一个
N :上一个
?KEYWORD:
以 以KEYWORD指定的字符串为关键字,从当前位置向文件
首部搜索;不区分字符大小写;
n: 跟搜索命令同方向,下一个
N :跟搜索命令反方向,上一个
13.8 info
1.man考 常用于命令参考 , ,GNU 工具info 适合通用文档参考。
2. 没有参数, 列出所有的页面
3.info 页面的结构就像一个网站
4.每一页分为“节点”
5.前 链接节点之前 *
6.info [ 令 命令 ]
13.9 导航info页
1.方向键,PgUp ,PgDn 导航
2.Tab键 键 移动到下一个链接
3.d 显示主题目录
4.Home 显示主题首部
5.Enter入 进入 选定链接
6.n/p/u/l 进入下/ 前/ 上一层/ 最后一个链接
7.s 字 文字 文本搜索
8.q 出 退出 info
13.10 通过本地文档获取帮助
1. 点击“系统”-> “文档”:
提供的官方使用指南和发行注记
2. /usr/share/doc 目录
多数安装了的软件包的子目录, 包括了这些软件的相关
原理说
不适合其它地方的文档的位置
配置文件范例
HTML/PDF/PS 格式的文档
授权书详情
13.11 通过在线文档获取帮助
1. 第三方程序官方文档
2. 通过发行版官方的文档光盘或网站可以获得
安装指南
部署指南
虚拟化指南
红帽知识库和官方在线文档
http://kbase.redhat.com
http://www.redhat.com/docs
http://access.redhat.com
13.12 红帽全球技术支持服务
1. rhn.redhat.com 或者本地卫星服务器/ 代理服务器
基于网络管理的机器
RHN 代理服务器为RHN 流量提供缓存
RHN 卫星服务器提供自主的RHN
2. RHN 账户
为及其注册和基于网络管理的RHN 用户
用于系统自动验证的系统ID
3. sosreport
收集所有系统上的日志信息的工具,并自动打成压缩包,
方便技术支持人员和红帽全球支持提供分析问题的依据
13.13 网站和搜索
1. http://tldp.org
2. http://www.slideshare.net
3.http://www.google.com
Openstack filetype:pdf
rhca site:redhat.com/docs
14.命令行历史
登录shell 时,会读取命令历史文件中记录下的命令
~/.bash_history
登录进shell 后新执行的命令只会记录在缓存 中;这些命
令会用户退出时“追加”至命令历史文件中
14.1重复前一个命令
有4 种方法:
重复前一个命令 使用上方向键,并回车执行。
按 按 !! 并回车执行。
入 输入 !-1 并回车执行。
按 按 Ctrl+p 并回车执行。
! 字符串: 重复前一个以“字符串”开头的命令
!num: 按照history 命令输出中的序号重复对应命令
!? 字符串: 重复前一个包含abc 的命令
!-n : 重复n 个命令之前的那个命令
14.2 方向键
使用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 条命令的第m条命令的 第n个 个 参数
!n:* 调用第n 条命令的所有参数
调用历史参数
!string:^ 以 从命令历史中搜索以 string 开头的命令,并获取
它的第 一个 参数
!string:$ 以 从命令历史中搜索以 string 开头的命令, 并获取它
的 最后一个 参数
!string:n 以 从命令历史中搜索以 string 开头的命令,并获取
它的第n个 个 参数
!string:* 以 从命令历史中搜索以 string 开头的命令,并获取
它的 所有 参数
调用历史参数
14.3命令history
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg…]
-c: 清空命令历史
-d: 删除历史中指定的命令;
#: 显示最近的# 条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-n: 读历史文件中未读过的行到历史列表
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-p: 展开历史参数成多个行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后
14.4命令历史相关环境变量
HISTSIZE :命令历史记录的条数;
HISTFILE :指定历史文件,默认为~/.bash_history; ;
HISTFILESIZE :命令历史文件记录历史的条数;
HISTTIMEFORMAT=“%F %T“ 显示时间
HISTIGNORE=“str1:str2:… “ 忽略string1,string2 历史
控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups :忽略重复的命令;连续且相同方为“重复”
ignorespace :忽略所有以空白开头的命令
ignoreboth :ignoredups, ignorespace
erasedups: 删除重复命令
export 变量名=” 值“
存放在 /etc/profile 或 或 ~/.bash_profile
14.5 bash 的快捷键
Ctrl+l 清屏,相当于clear 命令
Ctrl+c 取消命令的执行
Ctrl-a 会移动到命令行的最前面
Ctrl-e 会移动到命令行的最后面
Ctrl-u 会删除到行首
Ctrl-k 会删除到行尾
arrow ctrl-b ctrl-f 会向左或向右移动一个字符