目录
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 会向左或向右移动一个字符
原文地址:http://lvpuchao.blog.51cto.com/11319327/1829275