3.1 shell 基础
由于 Linux 系统使用了异步的磁盘/内存传输模式,同时又是个多人多任务的环境,所以在使用的时候有其特别之处。
本文将重点介绍如何正确地使用 Linux,内容比较基础,主要包括三部分:登录、使用和关机。
以命令行模式登录 Linux
命令行模式
我们都是通过程序和 Linux 系统进行沟通的,命令行模式就是一个程序,它负责我们想要完成的任务。命令行模式登录成功后所运行的程序被称为壳(shell)。
在命令行模式里执行的命令,格式几乎都是 command [-options] parameter1 parameter2 ...
,按下回车键就表示要开始执行此命令。
command
命令的名称。第一个输入的绝对是命令或可执行文件(比如 shell 脚本)[-options]
选项,比如-h
或--help
(--
表示全称)parameter1 parameter2 ...
依次为参数
有的选项或参数前面是
+
,比如date +%Y-%m-%d
说明:
在
命令 选项 参数
的格式中,中间用空格来区分,多个空格会合并成一个如果命令太长,可以使用反斜线
\
来转义回车键,以让命令连续到下一行在 Linux 系统中,大小写字母具有不同的含义,即大小写敏感
在终端登录 Linux
比如通过 ssh
,成功登录阿里云之后,会显示如下信息:
当用户登录系统之后,系统会列出上次该账号登录的时间和终端名称,以及一条提示信息。
此时,控制台会进入命令行模式,格式是 当前用户的账号@主机名 ~ 提示符
,如下:
其中,~
是个变量,表示用户的家目录。此时执行 pwd
命令,就会显示当前目录,如下:
提示符 #
表示是 root 用户,$
表示是一般用户。
在 Linux 系统中,最好使用一般用户登录,等需要 root 权限的时候,再
su
过去。
当我们想离开或注销 Linux 系统的时候,可直接输入 exit
或按 ctrl
+d
。
离开系统并不是关机,因为 Linux 本身就有相当多的任务在同时进行,我们的登录也仅仅是其中的一个任务而已。
一些基础命令
与其说是介绍基础命令,倒不如说是借基础命令来介绍命令行的基本使用方式。所以,这里不会对具体的命令做过多的介绍,只会简单地说说它的使用流程。
在命令行模式里执行的命令,主要有两种情况:
该命令会直接显示结果,比如
ls
,date
,cal
此时,执行完命令之后,会直接回到命令提示符,等待下一个命令的输入
会进入到该命令的环境,比如
vim
,bc
此时,需要使用该命令的结束命令,才能回到命令提示符中
eg. 想离开
bc
回到命令行界面,可输入quit
接下来,介绍几个简单的命令。
locale
locale
Linux 是支持多国语系的,locale
命令会显示目前所支持的语系。
也可以执行 echo $LANG
。
date
date
date
命令显示日期和时间。
cal
cal
cal
命令显示日历。
bc
bc
bc
命令,计算器。输入命令点击回车之后,屏幕会显示版本信息,之后就进入等待输入的阶段。
热键+在线帮助
几个重要热键
tab
键:命令补全、文件补齐、参数补齐等。善用此键,可提高效率也能避免手误当按一次时,是补齐
当连续按两次时,是列出可选的选项们
ctrl
+c
:中断当前正在运行中的命令/程序ctrl
+d
:和输入exit
效果类似,即退出命令行模式shift
+翻页键/箭头
:翻页
在线帮助
--help
选项:可查询特定命令的相关选项和参数man
和info
:可查询命令或相关文件eg.
man ls
,info ls
可以按空格键和箭头键上下左右移动
可以按
q
键退出
man man
还可以查询man
命令的格式和用法。其中1 表示用户在 shell 环境中可以操作的命令和可执行文件
5 表示配置文件或是某些文件的格式
8 表示系统管理员可用的管理命令
info info
/usr/share/doc/
正确地关机
在 Linux 中,每个程序/服务都运行在后台,所以在我们的屏幕背后其实有相当多的人同时在我们的主机上工作,如果我们直接按下电源开关来关机的话,其他人的数据可能就因此中断了。
此外,不正常的关机,可能会造成文件系统的损毁(因为还来不及将数据回写到文件中)。
作为服务器的 Linux 主机一般都带着电源,以防突然断电。
所以,正常情况下,关机需要注意以下事项:
观察系统的使用状态,从而判断是否可以关机
who
看目前谁在线netstat -a
看网络的联机状态ps -aux
看后台执行的程序
通知在线用户关机的时刻。可以使用
shutdown
命令的功能正确的关机命令
sync
将数据同步写入硬盘中shutdown
关机reboot
,poweroff
,halt
重新启动
由于 Linux 系统的关机和重新启动是很重大的系统操作,因此只有 root 才有权限执行。
使用状态
eg. who
eg. netstat -a
eg. ps -aux
sync
sync
所有的数据都得被读入内存后,才能被 CPU 处理,而数据又常常需要由内存写回硬盘。考虑到硬盘的速度太慢(相对于内存来说),所以如果常常让数据在内存和硬盘中来回读写,就会导致系统的性能不会太好。因此在 Linux 系统中,为了加快数据的读取速度,默认情况下某些已经在内存中的数据是不会直接被写回硬盘,而是先暂存在内存中的。
不过这样也会造成一些困扰,比如当我们的系统因为某些特殊情况而不正常关机的时候(比如停电),由于数据没有被写回硬盘从而会导致数据的不正常。
sync
命令就能将内存中的数据同步写回硬盘。虽然关机和重启的命令都会在关机前自动调用 sync
程序,不过多手动执行几次,还是会让人更放心一些。
当一般用户执行
sync
时,只更新自己的数据当 root 执行
sync
时,是更新整个系统的数据
shutdown
shutdown
关机比较常用的命令是 shutdown
,它会通知系统内的各个进程,并且会通知系统中的相关服务来执行关闭。
shutdown
可以完成如下工作:
可以自由地选择关机模式:是关机,还是重新启动
可以设置关机时间:是现在立刻关,还是到某个特定时间才关机
可以自定义关机信息:在关机前,将此信息发送给在线用户
可以仅发出警告信息
reboot
reboot
reboot
, poweroff
和 halt
这三个命令调用的函数库都差不多,选择一个自己喜欢的就好。
总结
本文以 shell 为切入点,介绍了如何正确地使用 Linux 系统。内容包括:
以命令行模式登录 Linux
命令行的命令格式
命令 选项 参数
通过
ssh
登录 Linux
使用 Linux
命令行模式里的命令:直接执行 or 进入命令环境
几个重要热键
tab
,ctrl
+c
,ctrl
+d
在线帮助
--help
,man
+info
正确地关机
观察系统的使用状态
who
,netstat -a
,ps -aux
相关命令
sync
,shutdown
,reboot
Last updated