六.Shell 提示文本编辑器
如果你不在使用图形化桌面,并想读取并修改某个文本或配置文件,Red Hat Linux 包括了 vi(发音为 vee-eye)文本编辑器。vi 是一个简单的应用程序。它在 shell 提示内打开,并允许你查看、搜索和修改文本文件。要启动 vi,在 shell 提示下键入 vi。要在 vi 内打开文本文件,在 shell 提示下键入 vi <filename>。
按照默认配置,vi 在普通模式下打开文本文件,这意味着你可以查看文件,或在文件中运行内建的命令,但是你不能在其中添加文本。要添加文本,按 [i](insert,代表“插入”模式),这个模式会允许你进行所需的修改。要退出插入模式,按 [Esc] 键,vi 就会还原到普通模式。
要退出 vi,按 [:](它是 vi 的“命令”模式),然后按 [q] 和 [Enter] 键。如果你已改变了文本文件,并想保存所做改变,输入 [:],然后键入 [w] 和 [q] 来把改变写入文件并退出程序。如果你意外地改变了文件,并想不保存这些改变而退出 vi,输入 [:],然后键入 [q] 和 [!],这样,退出时就不会保存改变。
关于使用 vi 的更多信息可以通过在 shell 提示下键入 man vi 而得到。
七.Shell
在 AT&T 的 Dennis Ritchie 和 Ken Thompson 设计 UNIX™ 的时候,他们想要为用户创建一种与他们的新系统交流的方法。那时的操作系统带有命令解释器。命令解释器接受用户的命令,然后解释它们,因而计算机可以使用这些命令。 但是 Ritchie 和 Thompson 想要的不只是这些功能,他们想提供比当时的命令解释器具备更优异功能的工具。这导致了 Bourne shell(通称为 sh)的开发,由 S.R. Bourne 创建。自从 Bourne shell 的创建,其它 shell 也被一一开发,如 C shell(csh)和 Korn shell(ksh)。当自由软件基金会想寻求一种免费的 shell,开发者们开始致力于 Bourne shell 以及当时其它 shell 中某些很受欢迎的功能背后的语言。这个开发结果是 Bourne Again Shell,或称 bash。虽然你的 Red Hat Linux 包括几种不同的 shell,bash 是为互动用户提供的默认 shell 。通过阅读 bash 的说明书页(在 shell 提示下键入 man bash ),你可以学到更多关于 bash 的知识。
1.使用 pwd 来判定你的当前目录
要判定你当前目录在文件系统内的确切位置,请在 shell 提示下键入命令 pwd(print working directory)
2.使用 cd 命令来改变所在目录
命令 功能
cd 把你送回到你的登录目录
cd ~ 也会把你送回到你的登录目录
cd / 把你带到整个系统的根目录
cd /root 把你带到根用户或超级用户(在安装时创建的帐号)的主目录;你必须是根用户才能访问该目录
cd /home 把你带到 home 目录,用户的登录目录通常贮存在此处
cd .. 向上移动一级目录
cd ~其他用户 如果其他用户授予你相应权限了的话,它会把你带到其他用户的登录目录
cd /dir1/subdirfoo 无论你在哪一个目录中,这个绝对路径都会把你直接带到 subdirfoo 中,即 dir1 的子目录
cd ../../dir3/dir2 这个相对路径会把你向上移动两级,转换到根目录,然后转到 dir3,然后转到 dir2 目录中去
命令 su 的意思是“substitute users”(代替用户),它允许你暂时以其他用户身份登录。当你只键入 su 命令本身然后按 [Enter] 键,你仍位于自己的登录 shell 中(你的用户的主目录),但是你的身份已变成根用户(又称超级用户)。键入 su - 使你变成带有根登录 shell 的根用户 — 这就如同你原本就以根用户身份登录一样。
3.使用 ls 来查看目录内容
使用 ls 命令就可以显示你的当前目录的内容
下面是一个与 ls 一起使用的一些常用选项的简短列表。请记住,你可以通过阅读 ls 的说明书页(man ls)来获得选项的完整列表。
• -a — 全部(all)。列举目录中的全部文件,包括隐藏文件(.filename)。位于这个列表的起首处的 .. 和 . 依次是指父目录和你的当前目录。
• -l — 长(long)。列举目录内容的细节,包括权限(模式)、所有者、组群、大小、创建日期、文件是否是到系统其它地方的链接,以及链接的指向。
• -F — 文件类型(File type)。在每一个列举项目之后添加一个符号。这些符号包括:/ 表明是一个目录;@ 表明是到其它文件的符号链接;* 表明是一个可执行文件。
• -r — 逆向(reverse)。从后向前地列举目录中的内容。
• -R — 递归(recursive)。该选项递归地列举所有目录(在当前目录之下)的内容。
• -S — 大小(size)。按文件大小排序。
4.定位文件和目录
使用 locate 命令,你将会看到每一个包括搜寻条件的目录或文件。譬如,如果你想搜寻所有名称中带有 finger 这个词的文件,键入locate finger
locate 命令使用数据库来定位文件或目录名中带有 finger 这个词的文件和目录。这个搜寻结果可能会包括一个叫做 finger.txt 的文件,一个叫做 pointerfinger.txt 的文件,一个被命名为 fingerthumbnails 的目录,诸如此类。
只要你的数据库是时时更新的,locate 命令的运行速度就会很快。这个数据库在每晚都会用 cron 命令自动更新。Cron 是一个守护进程(daemon)。
Cron[克龙(时间单位, 等于百万年)] 任务定时更新 slocate 数据库,该数据库用来给文件位置分类。在操作系统间切换,以及一天工作结束时关机会影响 cron 对数据库的自动更新。
要手工地更新数据库,登录为根用户(在 shell 提示下键入 su ,然后键入你的根口令,接着键入命令 updatedb。
几分钟之后,locate 命令使用的 slocate 数据库就会被更新。
5.清除和重设终端
clear 命令会做它字面上所暗示的:清除终端窗口。
有时,你可能会无意地在一个终端窗口中打开一个程序文件或其它非文本文件。一旦你关闭了那个文件,你会发现你键入的文本与显示器上的输出不符合。
在这种情况下,键入 reset 来把终端窗口还原到它的默认值。
6. 使用 cat 来操作文件
cat,它是 concatenate(连锁) 的简写,意思是合并文件。
cat 命令还会在屏幕上显示整个文件的内容(譬如,键入 cat filename.txt)。如果文件较长,它会在屏幕上飞快地滚过。要防止这一效果的发生,使用 cat filename.txt | less 命令。
一起使用管道(|)和 less 命令会一页一页地显示文件。然后,你便可以使用向上或向下的箭头键在页码中向前或向后移动。
A . 使用重导向
要把 cat 的输出重导向到一个文件中,在 shell 提示下键入以下命令(按 [Enter] 键会把你带到一个空行):cat > sneakers.txt
sneakers.txt若已经存在的话会打开它,否则会创建一个sneakers.txt文件。
使用 cat 把 home.txt 和 sneakers.txt 连接起来,然后再把两个文件的输出重导向到一个叫做 saturday.txt 的新文件s
cat sneakers.txt home.txt > saturday.txt
B. 后补标准输出
我们便使用刚才已创建的两个文件(sneakers.txt 和 home.txt),然后使用后补输出的符号把它们连接起来。你想把 home.txt 的信息添加到 sneakers.txt 的信息中去,因此键入:cat home.txt >> sneakers.txt
你键入的命令把文件 home.txt 的输出后补到文件 sneakers.txt 中去
C. 重导向标准输入
当你使用重导向标准输入符号 < 时,你是在告诉 shell 你想使用某个文件作为命令的输入。 cat < sneakers.txt
7.管道和分页器
在 Linux 中,管道连接着一个命令的标准输出和另一个命令的标准输入。
ls 有许多可用的选项,但是如果目录的内容卷动速度快得你无法查看时该怎么办呢?方法之一是把输出用管道导入到一个叫做 less 的工具。less 是一个分页工具,它允许你一页一页(或一个屏幕一个屏幕)地查看信息。
使用竖线(|)来把输出用管道导入到命令中。
ls -al /etc | less
要向前移动一个屏幕,按 [Space] 键;要向后移动一个屏幕,按 [b] 键;要退出,按 [q] 键。使用 less 命令时,你还可以使用箭头键来前后移动。
要使用 less 来搜索文本文件的输出,按 [/],然后键入你想在文件内搜索的内容。譬如:/Linux
more 命令
more 和 less 的主要区别是,less 允许你使用箭头键来前后移动,而 more 使用[Spacebar]和[b]键来前后移动。
8.阅读文本文件的其它命令
你可以使用 head 命令来查看文件的开头部分。此项命令是:head <filename>
可以通过指定一个数字选项来改变要显示的行数,如下面的命令所示:head -20 <filename>
与 head 命令恰恰相反的是 tail 命令。
grep 命令对于在文件中查找指定的字串很有用途。例如,如果你想在 sneakers.txt 文件中查找每一个提到“coffee”的地方,你可以键入:
grep coffee sneakers.txt你就会看到文件中带有“coffee”的每一行。
通配符和正则表达式
如果你忘记了你要找的文件名怎么办?答案是使用通配符或正则表达式。你在不知道完整的文件名的情况下也可以在该文件上执行操作。只需填写你所知的部分,剩余部分用通配符(wildcard)来替代。通配符是特殊符号,你可以用它们来替换字母、数字和符号,这比仔细查阅长目录列表来寻找某个文件要容易得多。
下面是通配符和正则表达式的一个简短列表:
• * — 匹配所有字符
• ? — 匹配字串中的一个字符
• \* — 匹配“*”字符
• \? — 匹配“?”字符
• \) — 匹配“)”字符
Update
譬如,如果你忘记了命令 updatedb,但是记得这个命令的一部分,你可以用 su 命令变为根用户,然后在 shell 提示下键入 up,连按两次 [Tab] 键,你便会看到一个可用来补全命令的列表,包括 updatedb 和 uptime。键入部分命令 upd,然后再按 [Tab] 键,你的命令就会被自动补全。
如果你不在使用图形化桌面,并想读取并修改某个文本或配置文件,Red Hat Linux 包括了 vi(发音为 vee-eye)文本编辑器。vi 是一个简单的应用程序。它在 shell 提示内打开,并允许你查看、搜索和修改文本文件。要启动 vi,在 shell 提示下键入 vi。要在 vi 内打开文本文件,在 shell 提示下键入 vi <filename>。
按照默认配置,vi 在普通模式下打开文本文件,这意味着你可以查看文件,或在文件中运行内建的命令,但是你不能在其中添加文本。要添加文本,按 [i](insert,代表“插入”模式),这个模式会允许你进行所需的修改。要退出插入模式,按 [Esc] 键,vi 就会还原到普通模式。
要退出 vi,按 [:](它是 vi 的“命令”模式),然后按 [q] 和 [Enter] 键。如果你已改变了文本文件,并想保存所做改变,输入 [:],然后键入 [w] 和 [q] 来把改变写入文件并退出程序。如果你意外地改变了文件,并想不保存这些改变而退出 vi,输入 [:],然后键入 [q] 和 [!],这样,退出时就不会保存改变。
关于使用 vi 的更多信息可以通过在 shell 提示下键入 man vi 而得到。
七.Shell
在 AT&T 的 Dennis Ritchie 和 Ken Thompson 设计 UNIX™ 的时候,他们想要为用户创建一种与他们的新系统交流的方法。那时的操作系统带有命令解释器。命令解释器接受用户的命令,然后解释它们,因而计算机可以使用这些命令。 但是 Ritchie 和 Thompson 想要的不只是这些功能,他们想提供比当时的命令解释器具备更优异功能的工具。这导致了 Bourne shell(通称为 sh)的开发,由 S.R. Bourne 创建。自从 Bourne shell 的创建,其它 shell 也被一一开发,如 C shell(csh)和 Korn shell(ksh)。当自由软件基金会想寻求一种免费的 shell,开发者们开始致力于 Bourne shell 以及当时其它 shell 中某些很受欢迎的功能背后的语言。这个开发结果是 Bourne Again Shell,或称 bash。虽然你的 Red Hat Linux 包括几种不同的 shell,bash 是为互动用户提供的默认 shell 。通过阅读 bash 的说明书页(在 shell 提示下键入 man bash ),你可以学到更多关于 bash 的知识。
1.使用 pwd 来判定你的当前目录
要判定你当前目录在文件系统内的确切位置,请在 shell 提示下键入命令 pwd(print working directory)
2.使用 cd 命令来改变所在目录
命令 功能
cd 把你送回到你的登录目录
cd ~ 也会把你送回到你的登录目录
cd / 把你带到整个系统的根目录
cd /root 把你带到根用户或超级用户(在安装时创建的帐号)的主目录;你必须是根用户才能访问该目录
cd /home 把你带到 home 目录,用户的登录目录通常贮存在此处
cd .. 向上移动一级目录
cd ~其他用户 如果其他用户授予你相应权限了的话,它会把你带到其他用户的登录目录
cd /dir1/subdirfoo 无论你在哪一个目录中,这个绝对路径都会把你直接带到 subdirfoo 中,即 dir1 的子目录
cd ../../dir3/dir2 这个相对路径会把你向上移动两级,转换到根目录,然后转到 dir3,然后转到 dir2 目录中去
命令 su 的意思是“substitute users”(代替用户),它允许你暂时以其他用户身份登录。当你只键入 su 命令本身然后按 [Enter] 键,你仍位于自己的登录 shell 中(你的用户的主目录),但是你的身份已变成根用户(又称超级用户)。键入 su - 使你变成带有根登录 shell 的根用户 — 这就如同你原本就以根用户身份登录一样。
3.使用 ls 来查看目录内容
使用 ls 命令就可以显示你的当前目录的内容
下面是一个与 ls 一起使用的一些常用选项的简短列表。请记住,你可以通过阅读 ls 的说明书页(man ls)来获得选项的完整列表。
• -a — 全部(all)。列举目录中的全部文件,包括隐藏文件(.filename)。位于这个列表的起首处的 .. 和 . 依次是指父目录和你的当前目录。
• -l — 长(long)。列举目录内容的细节,包括权限(模式)、所有者、组群、大小、创建日期、文件是否是到系统其它地方的链接,以及链接的指向。
• -F — 文件类型(File type)。在每一个列举项目之后添加一个符号。这些符号包括:/ 表明是一个目录;@ 表明是到其它文件的符号链接;* 表明是一个可执行文件。
• -r — 逆向(reverse)。从后向前地列举目录中的内容。
• -R — 递归(recursive)。该选项递归地列举所有目录(在当前目录之下)的内容。
• -S — 大小(size)。按文件大小排序。
4.定位文件和目录
使用 locate 命令,你将会看到每一个包括搜寻条件的目录或文件。譬如,如果你想搜寻所有名称中带有 finger 这个词的文件,键入locate finger
locate 命令使用数据库来定位文件或目录名中带有 finger 这个词的文件和目录。这个搜寻结果可能会包括一个叫做 finger.txt 的文件,一个叫做 pointerfinger.txt 的文件,一个被命名为 fingerthumbnails 的目录,诸如此类。
只要你的数据库是时时更新的,locate 命令的运行速度就会很快。这个数据库在每晚都会用 cron 命令自动更新。Cron 是一个守护进程(daemon)。
Cron[克龙(时间单位, 等于百万年)] 任务定时更新 slocate 数据库,该数据库用来给文件位置分类。在操作系统间切换,以及一天工作结束时关机会影响 cron 对数据库的自动更新。
要手工地更新数据库,登录为根用户(在 shell 提示下键入 su ,然后键入你的根口令,接着键入命令 updatedb。
几分钟之后,locate 命令使用的 slocate 数据库就会被更新。
5.清除和重设终端
clear 命令会做它字面上所暗示的:清除终端窗口。
有时,你可能会无意地在一个终端窗口中打开一个程序文件或其它非文本文件。一旦你关闭了那个文件,你会发现你键入的文本与显示器上的输出不符合。
在这种情况下,键入 reset 来把终端窗口还原到它的默认值。
6. 使用 cat 来操作文件
cat,它是 concatenate(连锁) 的简写,意思是合并文件。
cat 命令还会在屏幕上显示整个文件的内容(譬如,键入 cat filename.txt)。如果文件较长,它会在屏幕上飞快地滚过。要防止这一效果的发生,使用 cat filename.txt | less 命令。
一起使用管道(|)和 less 命令会一页一页地显示文件。然后,你便可以使用向上或向下的箭头键在页码中向前或向后移动。
A . 使用重导向
要把 cat 的输出重导向到一个文件中,在 shell 提示下键入以下命令(按 [Enter] 键会把你带到一个空行):cat > sneakers.txt
sneakers.txt若已经存在的话会打开它,否则会创建一个sneakers.txt文件。
使用 cat 把 home.txt 和 sneakers.txt 连接起来,然后再把两个文件的输出重导向到一个叫做 saturday.txt 的新文件s
cat sneakers.txt home.txt > saturday.txt
B. 后补标准输出
我们便使用刚才已创建的两个文件(sneakers.txt 和 home.txt),然后使用后补输出的符号把它们连接起来。你想把 home.txt 的信息添加到 sneakers.txt 的信息中去,因此键入:cat home.txt >> sneakers.txt
你键入的命令把文件 home.txt 的输出后补到文件 sneakers.txt 中去
C. 重导向标准输入
当你使用重导向标准输入符号 < 时,你是在告诉 shell 你想使用某个文件作为命令的输入。 cat < sneakers.txt
7.管道和分页器
在 Linux 中,管道连接着一个命令的标准输出和另一个命令的标准输入。
ls 有许多可用的选项,但是如果目录的内容卷动速度快得你无法查看时该怎么办呢?方法之一是把输出用管道导入到一个叫做 less 的工具。less 是一个分页工具,它允许你一页一页(或一个屏幕一个屏幕)地查看信息。
使用竖线(|)来把输出用管道导入到命令中。
ls -al /etc | less
要向前移动一个屏幕,按 [Space] 键;要向后移动一个屏幕,按 [b] 键;要退出,按 [q] 键。使用 less 命令时,你还可以使用箭头键来前后移动。
要使用 less 来搜索文本文件的输出,按 [/],然后键入你想在文件内搜索的内容。譬如:/Linux
more 命令
more 和 less 的主要区别是,less 允许你使用箭头键来前后移动,而 more 使用[Spacebar]和[b]键来前后移动。
8.阅读文本文件的其它命令
你可以使用 head 命令来查看文件的开头部分。此项命令是:head <filename>
可以通过指定一个数字选项来改变要显示的行数,如下面的命令所示:head -20 <filename>
与 head 命令恰恰相反的是 tail 命令。
grep 命令对于在文件中查找指定的字串很有用途。例如,如果你想在 sneakers.txt 文件中查找每一个提到“coffee”的地方,你可以键入:
grep coffee sneakers.txt你就会看到文件中带有“coffee”的每一行。
通配符和正则表达式
如果你忘记了你要找的文件名怎么办?答案是使用通配符或正则表达式。你在不知道完整的文件名的情况下也可以在该文件上执行操作。只需填写你所知的部分,剩余部分用通配符(wildcard)来替代。通配符是特殊符号,你可以用它们来替换字母、数字和符号,这比仔细查阅长目录列表来寻找某个文件要容易得多。
下面是通配符和正则表达式的一个简短列表:
• * — 匹配所有字符
• ? — 匹配字串中的一个字符
• \* — 匹配“*”字符
• \? — 匹配“?”字符
• \) — 匹配“)”字符
Update
譬如,如果你忘记了命令 updatedb,但是记得这个命令的一部分,你可以用 su 命令变为根用户,然后在 shell 提示下键入 up,连按两次 [Tab] 键,你便会看到一个可用来补全命令的列表,包括 updatedb 和 uptime。键入部分命令 upd,然后再按 [Tab] 键,你的命令就会被自动补全。



回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}