20200306 Linux基础

Linux基础

修改主机名

 hostnamectl set-hostname 名字    # 修改主机名

[root@localhost ~]# reboot -f   #重启虚拟机

linux系统目录

  1. /bin
存放经常使用的指令,比如
	ls
	cp
	rm
	...
通过文件的方式映射出来
  1. /sbin
系统管理员使用的系统管理命令
  1. /home
存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般是以该用户的账号名为目录名称的

例如:
	root用户与www用户的home文件是不同的,其他基本目录是共用的
  1. /root
系统管理员的用户主目录
  1. /boot
存放的是启动Linux的核心文件
  1. /lib
存放库文件
  1. /etc
存放所有的系统管理需要配置的文件,比如网卡等
  1. /usr
用户的很多应用程序和文件都放在这个目录,有点像Windows中的program_files目录
  1. /proc

    谨慎操作

这是系统内存的映射
  1. /src

谨慎操作

service的缩写,存放的是一些服务启动之后所需的数据
  1. /sys

谨慎操作

系统相关的一些文件
  1. /tmp
用来存放临时文件
  1. /dev
类似于Windows的设备管理器,把所有的硬件用文件的形式存储
  1. /media
linux会识别一些设备,比如U盘光驱等,Linux会把这些设备挂载到这个目录底下
  1. /mnt
用于让用户临时挂载别的文件系统,我们可以将外部的存储挂载在/mnt上,我们进入目录进行查看
  1. /opt
一般用于放安装包的
  1. /var
存放经常需要被修改的文件,比如日志文件
  1. /usr/local
程序安装后存放的地方

文件系统常用指令

1. pwd - 显示当前所在的路径

pwd --> print working directory  显示当前所在的目录

[root@localhost sysconfig]# ^C
[root@localhost sysconfig]# 

2. cd - 切换目录结构

cd 你想要去的路径信息 # 前往指定目录路径

cd --> change directory  改变目录信息


绝对路径:
[root@test1 network-scripts]# cd /etc/sysconfig/network-scripts/
[root@test1 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@test1 network-scripts]# cd /tmp
[root@test1 tmp]# pwd
/tmp

相对路径的用法:
[root@test1 tmp]# cd /etc/sysconfig/
[root@test1 sysconfig]# pwd
/etc/sysconfig
[root@test1 sysconfig]# cd network-scripts/
[root@test1 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@test1 network-scripts]# 

cd - # 返回到前一个目录路径

cd ~ # 返回到家目录或者直接cd回车

3. mkdir - 创建目录信息

makdir --> make directory

[root@localhost /]# cd /oldboy
-bash: cd: /oldboy: No such file or directory
[root@localhost /]# mkdir /oldboy
[root@localhost /]# cd /oldboy
[root@localhost oldboy]# pwd
/oldboy

我们在创建目录的时候做好是绝对路径创建

mkdir -p /路径/新文件/新文件

使用-p参数 可以创建多级目录

oh! my God! your blog avatarm is takes

4. touch - 创建文件

[root@localhost oldboy]# touch oldboy.txt
[root@localhost oldboy]# ls
oldboy.txt  oldgirl  oldman

5. ls - 查看文件列表

ls

ls 文件名

ls -l	# 默认是创建时间最新到最老的排序

ls -ltr   # 按照时间的创建顺序倒序

6. cat - 查看文本内容

查看文件

[root@localhost oldboy]# cat oldboy.txt
123

可以同时查看

[root@localhost oldboy]# cat oldboy.txt oldgirl.txt 
123
456

合并至同一文件中

[root@localhost oldboy]# cat oldboy.txt oldgirl.txt > tank.txt
[root@localhost oldboy]# cat tank.txt 
123
456

7. echo - 将信息输出

将内容输出至文本中

[root@localhost oldboy]# echo 123 > oldboy.txt
[root@localhost oldboy]# cat oldboy.txt
123

>输入文本(替换) >> 追加信息

[root@localhost oldboy]# cat egon.txt 
hello world

[root@localhost oldboy]# echo hello world1 > egon.txt
[root@localhost oldboy]# cat egon.txt 
hello world1

[root@localhost oldboy]# echo hello world1 >> egon.txt
[root@localhost oldboy]# cat egon.txt 
hello world1
hello world1

8. cp - 复制

cp --> copy

语法格式 : cp 参数[可选] 要进行复制的信息 要复制到的路径

使用

在复制文件时,不要在文件名称后添加/,一般只能在目录文件夹后加

[root@localhost oldboy]# ls
egon.txt  json  oldboy.txt  oldgirl  oldgirl.txt  oldman  tank.txt

[root@localhost oldboy]# cp /etc/hosts /oldboy/
[root@localhost oldboy]# ls
egon.txt  hosts  json  oldboy.txt  oldgirl  oldgirl.txt  oldman  tank.txt

[root@localhost oldboy]# cat hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

继续拷贝,会提示覆盖与否
[root@localhost oldboy]# cp /etc/hosts /oldboy/
cp: overwrite ‘/oldboy/hosts’? y

拷贝文件夹时: 加-r参数,会递归复制文件夹下的文件夹

[root@localhost oldboy]# ls
egon.txt  hosts  json  oldboy.txt  oldgirl  oldgirl.txt  oldman  tank.txt

[root@localhost oldboy]# ls oldgirl
gdx  olddog

复制文件夹时,会提醒文件夹内有文件夹
[root@localhost oldboy]# cp /etc/sysconfig/ /oldboy/oldgirl/
cp: omitting directory ‘/etc/sysconfig/’

使用 -r参数进行拷贝
[root@localhost oldboy]# cp -r /etc/sysconfig/ /oldboy/oldgirl/

拷贝成功
[root@localhost oldboy]# ls /oldboy/oldgirl
gdx  olddog  sysconfig

[root@localhost oldboy]# ls /oldboy/oldgirl/sysconfig/
anaconda    cpupower         grub              irqbalance  modules          rdisc          run-parts  trace-cmd.conf
authconfig  crond            init              kdump       netconsole       readonly-root  selinux    wpa_supplicant
cbq         ebtables-config  ip6tables-config  kernel      network          rsyncd         sshd
console     firewalld        iptables-config   man-db      network-scripts  rsyslog        svnserve

cp参数

  • -d 和链接相关的文件
  • -r 进行递归复制
  • -p 保持属性不变
  • -a == -drp 所有属性都要
  • 复制时对于重复文件不再提示直接覆盖

利用cp命令备份

#利用cp 做备份
[root@test1 oldboy]# cp oldboy.txt  oldboy.txt.bak
[root@test1 oldboy]# ls
cwx  egon  hosts  jason.txt  oldboy.txt  oldboy.txt.bak  olddog  oldgirl  oldgirl.txt  tank.txt
[root@test1 oldboy]# rm -rf oldboy.txt
[root@test1 oldboy]# ls
cwx  egon  hosts  jason.txt  oldboy.txt.bak  olddog  oldgirl  oldgirl.txt  tank.txt
[root@test1 oldboy]# cp   oldboy.txt.bak oldboy.txt
[root@test1 oldboy]# ls
cwx  egon  hosts  jason.txt  oldboy.txt  oldboy.txt.bak  olddog  oldgirl  oldgirl.txt  tank.txt

# 多文件信息重复,会多次确认提示,如何避免
[root@test1 oldboy]# cp -r  /etc/sysconfig/ /oldboy/oldgirl/
cp: overwrite ‘/oldboy/oldgirl/sysconfig/ip6tables-config’? y
cp: overwrite ‘/oldboy/oldgirl/sysconfig/iptables-config’? y
cp: overwrite ‘/oldboy/oldgirl/sysconfig/cbq/avpkt’? y
cp: overwrite ‘/oldboy/oldgirl/sysconfig/cbq/cbq-0000.example’? ^C

#解决方法
[root@test1 oldboy]# cp -r  /etc/sysconfig/ /oldboy/oldgirl/
[root@test1 oldboy]# 

9. mv 剪切命令

mv --> move

对文件或者文件夹进行剪切(移动)

语法格式:
	mv 参数(可选) 要移动的数据 目标路径
	

# 移动 /test/heihei.txt 到/oldboy/shanghai
[root@test1 oldboy]# ls /oldboy/shanghai
ls: cannot access /oldboy/shanghai: No such file or directory
[root@test1 oldboy]# mkdir /oldboy/shanghai
[root@test1 oldboy]# mv /test/heihei.txt  /oldboy/shanghai/
[root@test1 oldboy]# ls /oldboy/shanghai
heihei.txt
[root@test1 oldboy]# mv /test/heihei.txt  /oldboy/shanghai/
mv: cannot stat ‘/test/heihei.txt’: No such file or directory
[root@test1 oldboy]# mv  /oldboy/shanghai/heihei.txt  /test/
[root@test1 oldboy]# ls /oldboy/shanghai/
[root@test1 oldboy]# 

还可以使用mv进行文件的重命名

[root@localhost test1]# ls
heheh.txt  tset.txt

[root@localhost test1]# mv tset.txt json.txt

[root@localhost test1]# ls
heheh.txt  json.txt

10. rm - 删除

rm --->remove
语法 :rm 参数 要删除的数据信息

删除文件

[root@localhost oldboy]# ls
egon.txt  hosts  json  oldboy.txt  oldgirl  oldgirl.txt  oldman  tank.txt  test  test1

[root@localhost oldboy]# rm tank.txt 
rm: remove regular file ‘tank.txt’? y

[root@localhost oldboy]# ls
egon.txt  hosts  json  oldboy.txt  oldgirl  oldgirl.txt  oldman  test  test1

删除文件夹 -r

[root@localhost oldboy]# ls
egon.txt  hosts  json  oldboy.txt  oldgirl  oldgirl.txt  oldman  test  test1

[root@localhost oldboy]# rm -r test
rm: remove directory ‘test’? y

[root@localhost oldboy]# ls
egon.txt  hosts  json  oldboy.txt  oldgirl  oldgirl.txt  oldman  test1

不提示,强制删除 -f

删除文件夹 -rf

[root@localhost oldboy]# rm -rf test1
[root@localhost oldboy]# ls
egon.txt  hosts  json  oldboy.txt  oldgirl  oldgirl.txt  oldman

删除文件 -f

[root@localhost oldboy]# rm -f json 
[root@localhost oldboy]# ls
egon.txt  hosts  oldboy.txt  oldgirl  oldgirl.txt  oldman

在centOS6.7以后对删除根目录进行了保护

[root@localhost oldboy]# rm -rf /
rm: it is dangerous to operate recursively on ‘/’
rm: use --no-preserve-root to override this failsafe

vim

vim编辑器比vi功能多
vi和vim都是Linux中的编辑器,不同的是vim比较高级,可以视为vi的升级版本。vi使用于文本编辑,但是vim更适用于coding。

linux换源

到https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11q17Xub

切换我们的yum源

安装vim

yum -y install vim

安装软件

yum install 软件 -y   	# 不需要征求是否同意

vim状态

img

1.正常模式
	我们用vim打开文件就是进入正常模式
	比如复制粘贴等
	
		


2.编辑模式
	在插入模式下,我们可以输入内容,编辑内容
	切换至插入模式: 
		按键盘 : i, o, a, I, O, A, R 任意一键都可进入
		正常使用 i , insert简单方便记忆



3.命令模式
	在这个模式下,我们可以输入相关的命令,比如退出,保存等操作
	

总结: vim三种模式可以随意切换

正常模式

拷贝: yy  粘贴: p
拷贝当前向下2行,并粘贴
	拷贝2行: 2yy
	粘贴: p


删除当前行
	删除 : dd
	向下删除2行 : 2dd


光标移动到最后一行: G
光标移动到首行: gg
光标移动2行: 2gg
	
	
撤销: u

编辑模式

进入以后即可编辑

命令模式

- 查找内容
	/关键字
- 取消高亮
	:nohl
- 显示行数
	:set nu
- 取消行号
	:set nonu
退出:
    - 没有修改的情况下退出
        :q
    - 如果修改,但是我们不想保存
        :q!
    - 修改,保存并退出
    	:wq

关机重启命令

shutdown 命令
	shutdown -h now   # 立即关机
	shutdown -h 1   # 一分钟以后关机
	shutdown -r now  # 立即重启
	shutdown -r 1    # 1分钟后重启


halt   关机
reboot   重启
sync    把内存中的数据同步到硬盘中


注意: 当关机或重启的时候,一定要先执行sync命令,防止数据丢失

用户与用户组

用户操作

为什么要有用户

正常公司的服务器,不会给你root用户.
root用户权限带来的风险很高
正常情况下,使用的是普通用户登录,当然可以切换用户

1.查看当前用户

whoami
lastlog

2.添加用户

useradd (参数) 用户名
直接创建用户
useradd xyz
	当成功创建后,就会自动创建与用户名同名的home家目录


给用户指定家目录:
useradd -d 目录路径 用户名


指定用户组
useradd -g 用户组名 用户名

3.指定用户修改密码

passwd 用户名
密码最少8位

4.删除用户

userdel 用户名 	# 删除用户保留home家目录

userdel -r 用户名  # 删除用户,不保留home家目录

一般不会删除用户的家目录

5.查询用户是否存在

id 用户名

[root@localhost home]# id xyz
uid=1000(xyz) gid=1000(xyz) groups=1000(xyz)

6.切换用户

su 用户名
exit  # 退出

用户组操作

因为我们要对权限做同意的管理,运维,开发,方便权限的管理

1.添加用户组

groupadd 组名

2.给用户切换组

usermod -g 组名 用户名



[root@localhost ~]# groupadd sss

[root@localhost ~]# usermod -g sss xyz

[root@localhost ~]# id xyz
uid=1000(xyz) gid=1001(sss) groups=1001(sss)

3.删除用户组

groupdel 组名

删除时,组内有用户就不可删除,除非删除这个用户

文件权限

查看文件权限

ls-lhi /etc  

用的最多的是ll

解释

打印的信息:
	....
    17199893 -rw-r--r--.  1 root root   58 Oct 31  2018 networks
    17199651 -rw-r--r--.  1 root root 1.8K Mar  5 16:38 nsswitch.conf
    16830142 -rw-r--r--.  1 root root 1.7K Oct 30  2018 nsswitch.conf.bak
		01	 [	  02   ]  03  04  05    06 [    07    ]      08

详解:
    01 文件索引节点信息 inode
    02 文件的类型已经文件的权限信息
    03 硬链接数
    04 文件所属的用户
    05 文件所属的用户组
    06 文件大小 
    07 最后一次被修改的时间
    08 文件名



---------解释02---------
-  rw-  r--  r--
1   2    3    4


    上述的1,标识文件的类型
        d : directory 	目录类型文件
        - : file 		普通文件
        l : softlint 	链接类型
        

    上述的2,表示当前用户对当前文件的权限
    
    
	上述的3,表示当前用户组对当前文件的权限
	
	
	上述的4,表示其他用户对当前文件的权限


总结:
	1: 表明文件的类型
	2: 当前用户对文件的操作的权限
	3: 当前用户的用户组对文件的权限
	4: 其他用户对文件的权限
	





---------解释04---------
root  ---> 该文件的属主



---------解释05---------
root  ---> 该文件的属主组是用户组


文件权限分类

一个文件的权限有3位组成

rwx --> 分别代表了读,些,执行这三个权限

r --> read --> 读权限    数值4
w --> write --> 写权限   数值2
x --> exwcute --> 执行   数值1
-  --> 没有权限           数值0

例如:
	rwx  r-x  r-x
	 7    5    5
	 
	 属主什么权限   属主组有什么权限     其他用户的权限
	  读写执行        可读可执行         可读可执行

修改文件的权限

chomd (参数) 权限值 文件路径


让子文件的权限也变化 参数 -R

修改文件的属主

chown (参数) 用户名.组名 文件路径


让文件夹及其子文件递归变成我们指定的用户/组
	chown -R 用户名.组名 文件路径

xshell快捷键

删除
ctrl + d 删除光标所在位置上的字符相当于VIM里x或者dl
ctrl + h 删除光标所在位置前的字符相当于VIM里hx或者dh
ctrl + k 删除光标后面所有字符相当于VIM里d shift+$
ctrl + u 删除光标前面所有字符相当于VIM里d shift+^
ctrl + w 删除光标前一个单词相当于VIM里db
ctrl + y 恢复ctrl+u上次执行时删除的字符
ctrl + ? 撤消前一次输入
alt + r 撤消前一次动作
alt + d 删除光标所在位置的后单词

移动
ctrl + a 将光标移动到命令行开头相当于VIM里shift+^
ctrl + e 将光标移动到命令行结尾处相当于VIM里shift+$
ctrl + f 光标向后移动一个字符相当于VIM里l
ctrl + b 光标向前移动一个字符相当于VIM里h
ctrl + 方向键左键 光标移动到前一个单词开头
ctrl + 方向键右键 光标移动到后一个单词结尾
ctrl + x 在上次光标所在字符和当前光标所在字符之间跳转
alt + f 跳到光标所在位置单词尾部

替换
ctrl + t 将光标当前字符与前面一个字符替换
alt + t 交换两个光标当前所处位置单词和光标前一个单词
alt + u 把光标当前位置单词变为大写
alt + l 把光标当前位置单词变为小写
alt + c 把光标当前位置单词头一个字母变为大写
oldstrnewstr 替换前一次命令中字符串

历史命令编辑
ctrl + p 返回上一次输入命令字符
ctrl + r 输入单词搜索历史命令
alt + p 输入字符查找与字符相接近的历史命令
alt + > 返回上一次执行命令

其它
ctrl + s 锁住终端
ctrl + q 解锁终端
ctrl + l 清屏相当于命令clear
ctrl + c 另起一行
ctrl + i 类似TAB健补全功能
ctrl + o 重复执行命令
alt + 数字键 操作的次数

实际操作:

#c+l 清屏先
minuit@suse:~>str1 str2 str3 #输入三个单词发现第一单词需要大写好按c+a跳到开头按a+c

minuit@suse:~> Str1 str2 str3 #好现在单词就变成了现在这个样子,又发现第二个单词要全大写(这样的命令真是玩死人:( )好吧如果你当前光标在第二个单词,那直接a+u把这个单词改变,如果不在的话那按住c+a接着c+f跳到第二个单词那再a+u就OK了结果像下面所示。

minuit@suse:~> Str1 STR2 str3 #我想换过来怎么办我的位置已经在最后一个单词这个好办按住a+2+b哈哈跳到了第二个单词再来一下a+l这下第二个单词全小写了

minuit@suse:~> welcome to chinaunix! #不就是变个大小写吗? 按住c+a接着a+3+c看看效果
minuit@suse:~> Welcome To Chinaunix! #GOOD很简单
我们再来试试替换
minuit@suse:~> Welcome To Chinaunix! #还是这三单词c+a跳到开头再接着跳到第二个单词那(因为a+t只能跟前一个单词做替换所以不能在第一个单词按a+t)按住a+t
minuit@suse:~> To Welcome Chinaunix! #现在成这样子的了如果我用再按a+2+t那又变了一个样
minuit@suse:~> Chinaunix! Welcome To #好了来一点比较常用的
minuit@suse:~>ls /tmp/ #看看下面有些什么
file1 file2 file3 ..... ..
minuit@suse:~>lscd #现在再又想进入目录很简单的健入替换命令就行了在命令很长时用这个替换可以省掉很多按a+b或a+f的时间
cd /tmp/
minuit@suse:/tmp> #进入了tmp目录了
跳转的命令就不试了大家自己体会试也看不见_

------------------------------------------------------------------------------
Ctrl + a 可以快速切换到命令行开始处
Ctrl + e 切换到命令行末尾
Ctrl + r 在历史命令中查找
Ctrl + u 删除光标所在位置之前的所有字符
Ctrl + k 删除光标所在位置之后的所有字符
ctrl + w 删除光标之前的一个单词
Ctrl + d 结束当前输入、退出shell
ctrl + s 可用来停留在当前屏 ctrl + q 恢复刷屏
ctrl + l 清屏

CTRL 键相关的快捷键:

Ctrl + a - Jump to the start of the line
Ctrl + b - Move back a char
Ctrl + c - Terminate the command //用的最多了吧?
Ctrl + d - Delete from under the cursor
Ctrl + e - Jump to the end of the line
Ctrl + f - Move forward a char
Ctrl + k - Delete to EOL
Ctrl + l - Clear the screen //清屏,类似 clear 命令
Ctrl + r - Search the history backwards //查找历史命令
Ctrl + R - Search the history backwards with multi occurrence
Ctrl + u - Delete backward from cursor // 密码输入错误的时候比较有用
Ctrl + xx - Move between EOL and current cursor position
Ctrl + x @ - Show possible hostname completions
Ctrl + z - Suspend/ Stop the command
补充:
Ctrl + h - 删除当前字符
Ctrl + w - 删除最后输入的单词

ALT 键相关的快捷键:

平时很少用。有些和远程登陆工具冲突。

Alt + < - Move to the first line in the history
Alt + > - Move to the last line in the history
Alt + ? - Show current completion list
Alt + * - Insert all possible completions
Alt + / - Attempt to complete filename
Alt + . - Yank last argument to previous command
Alt + b - Move backward
Alt + c - Capitalize the word
Alt + d - Delete word
Alt + f - Move forward
Alt + l - Make word lowercase
Alt + n - Search the history forwards non-incremental
Alt + p - Search the history backwards non-incremental
Alt + r - Recall command
Alt + t - Move words around
Alt + u - Make word uppercase
Alt + back-space - Delete backward from cursor
// SecureCRT 如果没有配置好,这个就很管用了。

其他特定的键绑定:

输入 bind -P 可以查看所有的键盘绑定。这一系列我觉得更为实用。

Here "2T" means Press TAB twice
$ 2T - All available commands(common) //命令行补全,我认为是 Bash 最好用的一点
$ (string)2T - All available commands starting with (string)
$ /2T - Entire directory structure including Hidden one
$ ./2T - Only Sub Dirs inside including Hidden one
$ *2T - Only Sub Dirs inside without Hidden one
$ ~2T - All Present Users on system from "/etc/passwd" //第一次见到,很好用
$ (2T - All Sys variables //写Shell脚本的时候很实用 ) @2T - Entries from "/etc/hosts" //第一次见到
$ =2T - Output like ls or dir //好像还不如 ls 快捷
补充:
Esc + T - 交换光标前面的两个单词

表2-1 浏览命令行的击键

击键 全名 含义
Ctrl+F 字符向前 向前移动一个字符
Ctrl+B 字符向后 向后移动一个字符
Alt+F 单词向前 向前移动一个单词
Alt+B 单词向后 向后移动一个单词
Ctrl+A 行头 到当前行的开始
Ctrl+E 行尾 到行的末尾
Ctrl+L 清屏 清除屏幕,并在屏幕顶端留下一行

表2-2中的击键可以用来编辑命令行。

表2-2 编辑命令行的击键

击键 全名 含义
Ctrl+D 删除当前内容 删除当前字符
Backspace或Rubout 删除以前内容 删除前一个字符
Ctrl+T 调换字符 交换当前字符和前一个字符的位置
Alt+T 调换单词 交换当前单词和前一个单词的位置
Alt+U 大写单词 将当前单词变为大写
Alt+L 小写单词 将当前单词变为小写
Alt+C 首字母大写 将当前单词的首字母变为大写
Ctrl+V 插入特殊字符 添加特殊字符。例如,按Ctrl+V+Tab可添加一个Tab字符

使用表2-3中的击键可在命令行上剪切和粘贴文本。

表2-3 在命令行上剪切和粘贴文本的击键

击键 全名 含义
Ctrl+K 剪切行尾 剪切文本到该行末尾
Ctrl+U 剪切行头 剪切文到该行开头
Ctrl+W 剪切前个单词 剪切光标前的一个单词
Alt+D 剪切下个单词 剪切光标后的一个单词
Ctrl+Y 粘贴最近的文本 粘贴最近剪切的文本
Alt+Y 粘贴早期的文本 轮回到先前剪切的文本并粘贴它
Ctrl+C 删除整行 删除一整行

表2-4 用于文本补全的组合键

组合键 用于
Alt+~ 用用户名补全文本
Alt+$ 用变量补全文本
Alt+@ 用主机名补全文本
Alt+! 用命令名(以别名、保留字、Ctrl+X+/ 列出可能的补全用户名文本
Ctrl+X+$ 列出可能的补全环境变量
Ctrl+X+@ 列出可能的补全主机名
Ctrl+X+! 列出可能的补全命令名

表2-5 使用命令历史的击键

功 能 名 描 述
方向键 (↑或↓) 步进 按上和下箭头可步进浏览历史列表中的每个命令行,直到所需的位置(Ctrl+P和Ctrl+N分别有同样的功能)
Ctrl+R 反向渐进搜索 按下这些键后,输入一个搜索字符串进行反向搜索。输入此字符串后,匹配的命令行即会出现,可以运行或编辑它
Ctrl+S 前向渐进搜索 与前一个功能相似,只不过是前向搜索
反向搜索 按下这些键后,输入一个字符串进行反向搜索。输入一个字符串并且按Enter键可看到包含该字符串的最近已用命令
Alt+N 前向搜索 与前一个功能类似,只不过是前向搜索
Alt+< 历史列表的开头 到历史列表的第一项
Alt+> 历史列表的末尾 到历史列表的最后一项
原文地址:https://www.cnblogs.com/fwzzz/p/12460476.html