📄 449.html
字号:
8 cd Xpool<br>
<br>
9 ls<br>
<br>
10 xinit<br>
<br>
11 exit<br>
<br>
12 which zip<br>
<br>
13 zip<br>
<br>
14 more readme<br>
<br>
15 vi readme<br>
<br>
16 exit<br>
<br>
使用 n 参数的作用是仅有最后 n 个历史命令会被列出。例如,history 5 显示最后 5 个命令。<br>
调用 history 命令的第二种方法用于修改命令历史列表文件的内容。命令的语法如下:<br>
<br>
history [-r|w|a|n] [filename]<br>
<br>
这种形式中,-r 选项告诉 history 命令读命令历史列表文件的内容并且把它们当作当前的命令历史列表。-w 选项将把当前的命令历史记录写入文件中并覆盖文件原来的内容。-a 选项把当前的命令历史记录追加到文件中。-n 选项将读取文件中的内容并加入到当前历史命令列表中。如果 filename 选项没有被指定,history 命令将用变量HISTFILE 的值来代替。<br>
<br>
fc 命令能用两种方法来编辑历史命令。第一种使用下列语法:<br>
<br>
fc [-e editor_name] [-n] [-l] [-r] [first] [last]<br>
<br>
这里所有参数都是可选的。-e editor_name 选项用来指定用于编辑命令的文本编辑器。 first 和 last 选项用于选择列出历史命令的范围,既可以是数字也可以是字符串。-n 选项禁止列出命令的编号。-r 选项反向列出匹配的命令。-l 选项把匹配的命令行列在屏幕上(而不是在编辑器中)。如果-e editor_name参数没有被指定,则以变量FCEDIT的值来代替,如果该变量不存在的话,则用变量EDITOR的值来代替,都不存在的话将使用vi编辑器。<br>
<br>
别名<br>
<br>
bash 的另一个使你的工作变得轻松的方法是命令别名。命令别名通常是其他命令的缩写,用来减少键盘输入。例如,你经常要键入如下的命令,你也许会倾向于为它建立一个别名来减少工作量:<br>
<br>
cd /usr/X11/lib/X11/fvwm/sample-configs<br>
<br>
假如为这个长命令建立一个名为goconfig的别名,在bash提示符下键入如下命令:<br>
<br>
alias goconfig='cd /usr/X11/lib/X11/fvwm/sample-configs'<br>
<br>
现在,除非你退出bash,键入goconfig将和原来的长命令有同样的作用。如果想取消别名,可以使用下面的命令:<br>
<br>
unalias goconfig<br>
<br>
这是一些很多用户认为有用的别名,你可以把它们写入你的.profile文件中提高工作效 :<br>
<br>
alias ll='ls -l'<br>
<br>
alias log='logout'<br>
<br>
alias ls='ls -F'<br>
<br>
如果你是一名DOS用户并且习惯了DOS命令,你能下面的别名定义使你的 linux 表现得象DOS 一样:<br>
<br>
alias dir='ls'<br>
<br>
alias copy='cp'<br>
<br>
alias rename='mv'<br>
<br>
alias md='mkdir'<br>
<br>
alias rd='rmdir'<br>
<br>
<br>
注意: 在定义别名时,等号的两头不能有空格,否则 shell 不能决定你需要做 什么。仅在你的命令中包含有空格或特殊字符时才需要引号。<br>
<br>
如果你键入不带任何参数的alias命令,将显示所有已定义的别名,例如:<br>
<br>
alias dir='ls'<br>
<br>
alias ll='ls -l'<br>
<br>
alias ls='ls -F'<br>
<br>
alias md='mkdir'<br>
<br>
alias net='term < /dev/modem > /dev/modem 2> /dev/null&'<br>
<br>
alias rd='rmdir'<br>
输入重定向<br>
<br>
输入重定向用于改变一个命令的输入源。一些命令需要在命令行里输入足够的信息才能工作。比如 rm,你必须在命令行里告诉 rm 它你要删除的文件。另一些命令则需要更详细的输入,这些命令的输入可能是一个文件。比如命令 wc 统计输入给它的文件里的文件里的字符数,单词数和行数。如果你仅在命令行上键入 wc <enter> ,wc 将等待你告诉它要统计什么,这时 bash 就好象死了一样,你键入的每样东西都出现在屏幕上,但什么事也不会发生。这是因为 wc 命令正在为自己收集输入。如果你按下Ctrl-D,wc 命令的结果将被写在屏幕上。如果你输入一个文件名做参数,象下面的例子一样,wc 将返回文件所包含的字符数,单词数,和行数:<br>
<br>
wc test<br>
<br>
11 2 1<br>
<br>
另一种把test文件内容传给 wc 命令的方法是重定向 wc 的输入。< 符号在bash里用于把当前命令的输入重定向为指定的文件。所以可以用下面的命令来把 wc 命令的输入重定向为 test 文件:<br>
<br>
wc < test<br>
<br>
11 2 1<br>
<br>
输入重定向并不经常使用因为大多数命令都以参数的形式在命令行上指定输入文件的文件名。尽管如此,当你使用一个不接受文件名为输入参数的命令,而需要的输入又是在一个已存在的文件里时,你就能用输入重定向解决问题。<br>
<br>
输出重定向<br>
<br>
<br>
输出重定向比输入重定向更常用。输出重定向使你能把一个命令的输出重定向到一个文件里,而不是显示在屏幕上。<br>
<br>
很多情况下都可以使用这种功能。例如,如果某个命令的输出很多,在屏幕上不能完全显示,你能把它重定向到一个文件中,稍后再用文本编辑器来打开这个文件;当你想保存一个命令的输出时也可以使用这种方法。还有,输出重定向可以用于把一个命令的输出当作另一个命令的输入时。(还有一种更简单的方法可以把一个命令的输出当作另一个命令的输入,就是使用管道,管道的使用将在本文的“管道”一节介绍)<br>
输出重定向的使用与输入重定向很相似,但是输出重定向的符号是 > 。<br>
<br>
<br>
注意:记忆输入/输出重定向符号的最好方法是把<看作是一个漏斗,漏斗的小口 指向需要输入的命令(因为需要接受输入的命令会在 <的左手边),而把> 当作一个大口指向有输出的命令的漏斗。<br>
<br>
重定向举例,当你要把 ls 命令的输出保存为一个名为 directory.out 的文件时,你可以使用下面的命令:<br>
<br>
ls > directory.out<br>
<br>
管道<br>
<br>
<br>
管道可以把一系列命令连接起来。这意味着第一个命令的输出会通过管道传给第二个命令而作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入 ,以此类推。而管道行中最后一个命令的输出才会显示在屏幕上(如果命令行里使用了输出重定向的话,将会放进一个文件里)。<br>
你能通过使用管道符 | 来建立一个管道行,下面的示例就是一个管道行:<br>
<br>
cat sample.text | grep "High" | wc -l<br>
<br>
这个管道将把 cat 命令(列出一个文件的内容)的输出送给grep命令。grep 命令在输入里查找单词 High,grep命令的输出则是所有包含单词 High的行,这个输出又被送给 wc命令。带 -l选项的 wc命令将统计输入里的行数。假设 sample.txt的内容如下:<br>
<br>
Things to do today:<br>
<br>
Low: Go grocery shopping<br>
<br>
High: Return movie<br>
<br>
High: Clear level 3 in Alien vs. Predator<br>
<br>
Medium: Pick up clothes from dry cleaner<br>
<br>
<br>
管道行将返回结果 2,指出你今天有两件很重要的事要做:<br>
<br>
cat sample.text | grep "High" | wc -l<br>
<br>
2<br>
<br>
提示符<br>
<br>
<br>
bash 有两级用户提示符。第一级是你经常看到的 bash 在等待命令输入时的提示符。缺省的一级提示符是字符$(如果是超级用户,则是#号)。你可以通过改变bash 的PS1变量的值来改变你的缺省提示符,例如:<br>
<br>
PS1="Please enter a command"<br>
<br>
把bash shell 的提示符该为指定的字符串。<br>
<br>
当bash 期待输入更多的信息以完成命令时显示第二级提示符。缺省的第二级提示符是 >。 果你要改变第二级提示符,可以通过设置PS2变量的值来实现:<br>
<br>
PS2="I need more information"<br>
<br>
另外你还可以用特殊的字符来定义你的提示符,下面的列表列出了最常用的特殊字符。<br>
提示符特殊字符代码<br>
字符 含义<br>
! 显示该命令的历史记录编号。<br>
<br>
# 显示当前命令的命令编号。<br>
<br>
$ 显示$符作为提示符,如果用户是root的话,则显示#号。<br>
<br>
显示反斜杠。<br>
<br>
d 显示当前日期。<br>
<br>
h 显示主机名。<br>
<br>
打印新行。<br>
<br>
nn 显示nnn的八进制值。<br>
<br>
s 显示当前运行的shell的名字。<br>
<br>
显示当前时间。<br>
<br>
u 显示当前用户的用户名。<br>
<br>
W 显示当前工作目录的名字。<br>
<br>
w 显示当前工作目录的路径。<br>
<br>
<br>
这些特殊字符能组合成很多种有用的提示符方案(也可以组合为很奇异的方案),例如把 PS1 设为:<br>
<br>
PS1=" "<br>
<br>
这导致提示符显示当前的时间,就象下面的显示一样(提示符后面将不会有空格):<br>
<br>
02:16:15<br>
<br>
<br>
而下面的设置:<br>
<br>
PS1= <br>
<br>
将导致提示符变成下面的样子:<br>
<br>
t<br>
<br>
这显示了设置中引号的重要性,下面的提示符串:<br>
<br>
PS1=" "<br>
<br>
会使提示符看起来象这个样子:<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -