1. 引言
基于学习的目的,我们所安装的Linux都是没有安装图形界面的,因为图形界形会对我们的学习造成一定的阻滞。由于失去了图形界面的支撑,我们第一次进入Linux系统都会变得茫然,望着黑呼呼屏幕不知所措,下面我来提供一个首次登入系统的指引,希望可以带领新手步入Linux的大门。
通过这个指引,我们可以认识到:
2. 首次进入系统
Linux系统启动结束后就会返回下图这个界面给用户:
这就是常说的登陆界面,我们输入安装系统时提示的用户名和密码。
上图所示我们已经正式有登入了Linux系统,我们所看到的黑呼呼的东西是linux的一个终端(TTY),终端的意思可照字面去解释,就是我们要接触的Linux的最尾端,顺着这条尾巴,可以一步一步深入Linux内核。通常,Linux会能够提供TTY1-TTY6 六个终端界面给使用者,六个都和上图所示的登陆界面一样的,可以通过按ALT+数字(1-6)切换不同的终端。
终端上看到的,我们打字能显示出来,跟我们交互的这个程序叫SHELL,它是Linux的外壳,就像花生壳一样,我们要吃花生,就要把壳捏碎,不过Linux的外壳不用捏碎,因为它上面有很多孔道(内核调用,系统接口)连通linux内核,我们通过这些孔道就可以到达内核。
不同的操作系统有不同的外壳,如Windows有Command.exe,大部分的Linux用Bash(Bourne-again Shell), 有些用C shell。SHELL的用途是对输入字符进行解释,如果是系统命令,则执行返回命令结果,否则返回找不到命令提示。
Shell的环境下有很多变量,称为环境变量,其中和命令有关联的一个变量是PATH,PATH是记录命令所在的路径的变量。
3. 使用Linux
3.1 第一个命令
程序的定义有很多,通常我们把放在硬盘里,能够执行的文件称为称作程序,程序一般是以完成特定的任务为目的。我们学习的第一个程序是 ‘ls’, 也可以称为Liunx的命令。
- -a,–all 把当前目录下所有项目列出来,(【ls】后面没有指定目录时,默认是当前目录)
- -l 会列出项目的详细信息
带参数-a的命令还列出了一些前面带着小圆点的文件,见上图黄色框
- 这些前面带着小圆点的文件是Linux系统的隐藏文件
- 如果想把一个文件隐藏起来,只需要把文件名前面加上一个实心小圆点
带参数-l时,ls打印了很多长长的行,那些长出来的是文件的基本属性,包括:文件属主,文件容量,文件创建时间等。
引起我们注意的是第一列,类似于drwxr-xr-x. 这是什么意思呢?
drwxr-xr-x 标示了文件类型和属性!其中,每一个字符都占一个位包括【-】,共有十个位,每个位都有其意义:
参数除了可以单独使用个外,大部分的参数都可以叠在一起使用,如上图的 ls -al 。
当我们要了解一条命令怎样使用时,可以利用【man】,男人都是可以利用的,在linux里没有什么是man不懂的,尽管使唤他。【man】的用法很简单,在终端里输入【man】 后面接你要询问的命令,使用你想知道【ls】是怎样使用,输入:
【man ls】 , 屏幕就会列出满满的使用说明文档。
在man的输出里可以通过翻页键上翻下翻,也可能通过【j】和【k】这两个字母上下移动文本,按【q】退出。
3.2 文件目录结构
3.3 文件管理
掌握了上面1234567条命令可以完成基本的文件管理
3.4 用户管理
Linux可以允许同时有很多个用户登入,不同的用户使用不同的终端,上面有提到的TTY1-TTY6就充许同时登入六个用户,除了TTY外,使用者还可以通过网络登入Linux,有一些服务提供网络远程登陆,比较常用的是:SSH, Telnet, Rlogin,最常用和最多用的是SSH。通过网络登陆和在实体机登入并没有两样。
Linux有一个超级用户叫root,在按阶级或分的Linuw用户里,root是最高统治者,相当于皇帝,它可以突破系统的任何。
在Linux里创建用户的命令是【useradd】, 后面跟新用户名,创建新用户需要用root才可以。
更改密码的命令是【passwd】, 后接需要改密码的用户名,除了更改自己的密码外,更改其它用户的密码需要root。
Linux的用户都有一个归属的组,每个用户可以属于多个组,亦可只属于一个组,用【usermod -g】命令可以更改用户所属组,例如将用户test加入组classa: usermod -g classa test .
3.5 进程(任务)管理
大家使用过Windows应该知道它有一个程序管理器,按着ALT+CTRL+DEL就可以调出来。
Linux下很多管理程序的方法,都是通Shell打入命令去完成。
这里,我们所说的程序是指程序执行的实例,通常称为进程, 有些系统称为任务,程序被执行是指程序被Linux内核读入内存,并使他按照程序设计的目的去运行。在Linux里有一个唯一的数字去标识进程,是为进程ID,它总是一非负整数。
【ps】, 是我们学习的另一个命令,这个【ps】写法和ps照片的【ps】是一样的,不过Linux的【ps】是用来查看当前系统所运行的进程的,同样地,【ps】有很多参数,我们只需要学习两个参数。
- -l , 【ps】 带-l参数时,只列出和自己相关的进程。
- aux, 这是一个组合参数,可以带‘-’,或者不带‘-’,它会更出系统当前的所有进程。
上面【ps axu】的输出很多,只好把它截短贴图。
我们需要理解一下绿色框里的字段,这些字段指示了进程的相关资源和状态。
USER: 是执行该进程的用户
PID: 进程ID
CPU: 进程的CPU使用率(百分比)
MEM: 内存点用率(百分比)
VSZ: 虚拟内存占用(kbyte)
RSS: 占用了多少固定内存(kbyte)
TTY: 是TTY1-TTY6中的哪一个?
STAT: Status,进程的状态
START:开始运行时间
TIME: CPU运作时间
COMMAND: 触发这个进程的指令(具体哪个程序)
上面STAT的进程状态有下列几种:
R (Running):表示进程运作中;
S (Sleep):表示进程在睡觉,空闲中。
D :睡觉中,但不会醒过来的。
T :停止状态(stop);
Z (Zombie):僵死状态,进程已经中止,但还在内存中驻留。
另一个要学习的命令是【top】,最top的【top】,可以用来动态监控进程。【top】的命令参数也是有很多的,Linux的大部分命令,参数都是很复杂的,不过我暂时只需要学习两个。
参数1: -d 后面接数字代表按数字所表示的秒数为频率更新top的输出
参数2: -p p是pid的意思(进程id,详细的英文是process identifiers),参数后面接进程标识,用来指定top所监控的进程。
注意: 在top里面可以输入指令,具体有好几个指令,按?(问号)会输出指令帮助,按下字母q退出top。
由上图可见,【top】的输出很复杂,下面简单说一说。
绿色框里,第一行(top -),这一行显示的信息分别为:
当前时间(23:51:47);
开机到目前经历时间(up 12 min);
当前系统使用者人数(2 users);
系统在 1, 5, 15 分钟的平均负载(load average),这几个数值越小,代表系统越闲。
第二行(Tasks):目前的进程总量(396 total),各处于什么状态(running, sleeping, stopped, zombie)
第三行(%cpus): 显示的是CPU的负载(百分比),us是user(用户进程占比);sy是system占比;ni是nice,意思是cpu喜欢的进程(优先级比user高的);id即idle,空闲率;wa是IO-wait,一般是硬盘内存之间输入输出等待进程占比 ;hi(hardware interrupts)硬件中断;si(software interrupts)软件中断;st代表虚拟机用掉的cpu占比。如果是多核cpu可以按下数字【1】来切换不同的核。
第四五行表示目前内存和虚拟内存的使用情况,如果虚拟内存使用过多,代表电脑内存不足。
上图蓝色框,是各进程的状态标示栏目。
PID :进程 ID
USER:运行这个进程的用户名;
PR : Priority 的简写,进程的优先执行顺序,越小越早被执行;
NI : Nice 的简写,与 Priority 有关,也是越小越早被执行;
%CPU:CPU 的使用率;
%MEM:记忆体的使用率;
TIME+:CPU 使用时间的累加;
3.6 关机
关机有很多个指令,用【halt -p】就可以将机器关掉。