欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

1.3 与Linux交互

程序员文章站 2024-03-18 16:57:40
...

与Linux交互

在所有的问题之中,最先要解决就是:如何才能够让Linux做我们想让它做的事情?
我们可以用各种方式做到这一点:例如,一个Linux程序员,可以用编程语言通过操作系统的编程接口与 Linux 进行交互如果,如果足够牛的话,甚至可以考虑撇开编程接口,直接与Linux内核进行交互。但是,作为一个普通的Linux系统管理员,我们还是倾向于通过现成的操作命令接口(User Command Interface)与Linux打交道。与Linux的“核(kernel)”对应,操作命令接口很 形象地被称为“壳(shell)”。
简单来说, Shell 就是一种能让你与 Linux 之间进行“对话”的软件。Shell 等待你输入,向 Linux 解释你的输入,并且处理各种各样的系统的输出结果,把这些结果展示给你。这种交互可以是即时交互(从键盘输入,并且可以立即得到响应),也可以是非即时交互(shell 脚本1)。
我们所使用的 CentOS 系统上的默认 Shell 叫做 Bash(The GNU’s Bourne Again Shell)。Bash 也是绝大部分 Linux 平台上的默认 Shell。

 事实上,Linux 为用户提供了两种截然不同的“壳”:—种是命令行 式 shell(Command Line Interface shell ,即 CLI shell),用户利 用这些字符命令或者 shell 脚本来组织和控制作业的执行,或者对 计算机系统进行管理。另—种是图形界面 shell(Graphical User Interface shell 即 GUI shell),用户通过点击,拖动图像图标来完 成同样的事情。
 在 Linux 中,传统意义上的 shell 指的就是命令行式的 shell,在下 面课程中,如果没有特别注明,所提到的 shell 就是命令行式的 shell。

当文本模式下登入系统或在图形界面下打开终端,首先将看到的是一个提示
符(prompt)。提示符本身就包含了相当多的信息:CentOS 的标准提示符包括了 登录用户名、登入的主机名、用户当前所在的目录(working directory)和提示符 号,例如:

[aaa@qq.com~]$

其中,’stu’为登录用户名,’localhost’为登录主机名,’~’ 表示当前用户正处在 stu 用户的 家目录中,’$’则表示当前登录用户为普通用户。

小试牛刀

这时就可以输入命令了,为熟悉 shell,我们选择的三个有代表性的命令来小试牛刀,这三个命令分别为 whoami、echo 和 nano。


whoami

首先来试一试 whoami,在命令提示符后键入 whoami 命令,然后回车,命
令将输出当前登录用户的用户名。

[aaa@qq.com ~]$ whoami

stu

whoami 是 Linux 中最简单的命令之一,不能带参数,只有两个选项,所以 我们可以看得很清楚,要通过 Shell 给 Linux 下达命令很简单:只要在提示符后 敲进命令,然后再回车,就可以执行这个命令,并在终端里输出相应的结果(如 果有的话),命令结束后,再给出新的提示符;如果出错,那么就会在终端中输 出相应的错误信息,然后再给出新的提示符。

切记,Linux 区分大小写。换一句话说,whoami 和 WHOAMI 或 whoAmi 是不一样的。
选项(option):包括一个或多个字母的代码,一般来说前面有一个’-’号或者’–’符号(’-’或者’–’符号是必要的,Linux 用它来区别选项和 参数),选项可以看作是一种开关,一般用于控制命令的行为。事实 上,Linux 中的命令在正常情况下最少有两个选项,–help 和— version。
参数(parameter) :一个字符串,参数一般用来向命令传递一些时运 行所需的信息(例如文件或主机名称等),Linux 大多数命令都被设 计为可以接纳参数。
命令本身、选项和参数中间用空格来分隔, 不论空多少格,shell 都 视为一格;


echo

接接下来来看第二个命令 echo,这个命令就相对复杂许多了,不仅有很多选
项,还可以跟参数。我们首先来看命令最简单的使用方法,在命令提示符后键入 echo 命令,空格之后跟上一个字符串”Hello, Linux world.”,然后回车,命令将在 屏幕上回显此字符串”Hello, Linux world.” 这个命令带了一个参数就是字符 串”Hello, Linux world.”

[aaa@qq.com ~]$ echo “Hello, Linux world.”

Hello, Linux world

echo 命令可以带选项,如在 date 后跟上’-n’选项,表示在回显指定字符串后不换行:

[aaa@qq.com ~]$ echo -n “Hello, Linux world.”

Hello, Linux world.[aaa@qq.com ~]$

或者跟上’-e’选项,来输出以反斜杠开头的转义字符,其中,’\t’表示制表符,’\n’表示换行:

[aaa@qq.com ~]$ echo -e 序号\t 姓名\t 成绩\t 备注\n1\t 张三\t59\t 补考

序号 姓名 成绩 备注
1 张三 59 补考

所有的 ASCII 码都可以用“\”加数字(一般是 8 进制数字)来表示。 而 C 语言中定义了一些字母前加”\”来表示常见的那些不能显示的 ASCII 字符,如\0,\t,\n 等,就称为转义字符,因为后面的字符,都不 是它本来的 ASCII 字符意思了。
echo 命令中的转义字符与C语言中的转义字符基本一样,可以参考 echo 命令的帮助文档

用法:/bin/echo [选项]... [字符串]... 或:/bin/echo 长选项 将 STRING 回显到标准输出。
-n 不尾随换行符
-E 禁用解释反斜杠的转义功能(默认)
--help 显示此帮助信息并退出 
--version 显示版本信息并退出
若-e 可用,则以下序列即可识别:
\\ 反斜杠 
\a 响铃声
\b 退格
\c 不再产生新的输出
\e 转义符
\f 换页
\n 新行
\r 回车
\t 水平制表符
\v 竖直制表符
\0NNN 字节数以八进制数 NNN (13 位)表示
\xHH 字节数以十六进制数 HH (12 位)表示

nano

最后我们来看 nano 命令,nano 是一个文本编辑工具。nano 命令与上面两个命令不太一样,这个命令有自己的界面, 我们在命令行下输入 nano, 回车,就来到了 nano 界面中,这时我们就可以在光 标处输入文本了,我们可以用箭头键来移动光标,也可以按 Alt+M打开鼠标支持 来移动光标:
1.3 与Linux交互
保存和退出

如果你要保存所做的修改,按下Ctrl+O。想要退出,按下Ctrl+X。如果你退出前没有保存所做的修改,它会提示你是否要保存。如果不要,请按N,反之,则按Y。然后它会让你确认要保存的文件名,确认或修改后按Enter即可。

如果你没有修改好而不小心按了保存键,您可以在请求确认文件名时按Ctrl+C来取消。

剪切和粘贴

要剪切一整行,请用Ctrl+K(按住Ctrl不放,再按下K键)。光标所在的行便消失了。要粘贴它,只需把光标移动到您所要粘贴的位置,然后按Ctrl+U即可。要移动多行,只需多按几次Ctrl+K把需要移动内容都剪切下来,然后按一次Ctrl+U就可以把刚剪切的内容全部粘贴上来。

如果你想使用更精确的剪切控制,则需要给文本做标记。移动光标到需要剪切文本的开头,按下Ctrl+6(或者Alt+A)。然后移动光标到待剪切文本的末尾:被做了标记的文本便会反白。要撤消文本标记,只需再按一次Ctrl+6。用Ctrl+K来剪切被标记的文本,用Ctrl+U来粘贴。

搜索特定文字

当你想搜索某特定文字时,只要想成”WhereIs”而不是”Search”,事情就简单了。只要按下Ctrl+W,键入你要搜索的字符串,再按Enter就可以了。想再次搜索相同的字符串,可以直接按Alt+W。

注意:在nano帮助文档里,Ctrl-键被表示为一个脱字符(^),因此Ctrl+W被写成了^W,等等。Alt-键被表示为一个M(从”Meta”而来),因此Alt+W被写成了M-W。

相关标签: shell