千家信息网

class-2 Linux 入门

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,目录1.系统初始1.1 广播1.2关机/重启命令1.3配置信息2.终端terminal以及交互式接口2.1终端terminal2.2交互式接口3.用户登录4.bash shell5.命令提示符6.命令
千家信息网最后更新 2025年02月04日class-2 Linux 入门

目录

  • 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-releaseCentOS release 6.8 (Final)[root@6 ~]# cat /etc/centos-releaseCentOS release 6.8 (Final)


用户提示

/etc/issue

[root@6 ~]# cat /etc/issueCentOS release 6.8 (Final)Kernel \r on an \m


#lsb_release

[root@6 ~]# lsb_releaseLSB 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 ftpftp: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]# hashhits    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]# hashhits    command  1   /sbin/ifconfig  1   /bin/touch  1   /bin/cp  3   /bin/ls

hash -r 清除缓存

[root@6 testdir]# hash -r[root@6 testdir]# hashhash: hash table empty

6.3 命令别名

# alias ls='ls --color=auto' 定义命令别名

[root@6 testdir]# alias lv='cat /etc/passwd'[root@6 testdir]# lvroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinuucp: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 lsalias ls='ls --color=auto'/bin/ls[root@6 testdir]# /bin/lslost+found  VMware Tools[root@6 testdir]# \lslost+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 cdcd 已被哈希 (/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 yesyes 已被哈希 (/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.cfgdrwxr-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.4Mdrwxr-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.dbdrwxr-xr-x.  2 root root     49 7月  21 01:29 alsadrwxr-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 ~]# yesyyyy^C[root@7 ~]#



3 、多个命令可以用 ; 符号分开

[root@7 ~]# date;clock;hwclock2016年 07月 23日 星期六 15:20:42 CST2016年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 informationauth --enableshadow --passalgo=sha512# Use CDROM installation mediacdrom# Use graphical install



9.简单命令date,cal,clock,hwclock,nano编辑器

date - 显示日期和时间

-u:

date mmddHHMMYY.SS 修改系统时间

[root@7 ~]# date2016年 07月 23日 星期六 15:24:50 CST[root@7 ~]# date -u2016年 07月 23日 星期六 07:24:55 UTC[root@7 ~]# date 0801080008.002008年 08月 01日 星期五 08:00:00 CST



Linux 的两种时钟:

系统 时钟:由Linux 内核通过CPU 的工作频率进行 的;

硬件 时钟:主板

hwclock ,clock: 显示硬件时钟

-s , --hctosys 以硬件时钟为准,校正系统时钟

-w, --systohc 以系统时钟为准 , 校正硬件时钟

[root@7 ~]# date 0801080008.002008年 08月 01日 星期五 08:00:00 CST[root@7 ~]# clock -s[root@7 ~]# date2016年 07月 23日 星期六 23:18:45 CST[root@7 ~]# date 0723152716.252016年 07月 23日 星期六 15:27:25 CST[root@7 ~]# clock -w[root@7 ~]# clock2016年07月23日 星期六 15时27分45秒  -0.600986 秒



cal - 显示 日历

#cal 08 2015

#cal 09 1752

[root@7 ~]# cal     七月 2016      日 一 二 三 四 五 六               1  23  4  5  6  7  8  910 11 12 13 14 15 1617 18 19 20 21 22 2324 25 26 27 28 29 3031[root@7 ~]# cal 08 2015     八月 2015    日 一 二 三 四 五 六                  12  3  4  5  6  7  89 10 11 12 13 14 1516 17 18 19 20 21 2223 24 25 26 27 28 2930 31[root@7 ~]# cal 09 1752     九月 1752    日 一 二 三 四 五 六      1  2 14 15 1617 18 19 20 21 22 2324 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"abcd[root@7 ~]# echo -e "a\nbcd"abcd


\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 calcal                  (1)  - displays a calendarcal                  (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 passwdpasswd               (1)  - update user's authentication tokenspasswd               (5)  - password filepasswd [sslpasswd]   (1ssl)  - compute password hashes[root@6 ~]# man 5 passwdPASSWD(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 会向左或向右移动一个字符



0