Linux入门之第一次登入系统

时间:2022-09-12 21:00:44

1. 引言

  基于学习的目的,我们所安装的Linux都是没有安装图形界面的,因为图形界形会对我们的学习造成一定的阻滞。由于失去了图形界面的支撑,我们第一次进入Linux系统都会变得茫然,望着黑呼呼屏幕不知所措,下面我来提供一个首次登入系统的指引,希望可以带领新手步入Linux的大门。
  通过这个指引,我们可以认识到:

  1. Linux的程序和程序管理
  2. Linux的用户和用户管理
  3. Linux的文件和文件管理

2. 首次进入系统

  Linux系统启动结束后就会返回下图这个界面给用户:

Linux入门之第一次登入系统

  这就是常说的登陆界面,我们输入安装系统时提示的用户名和密码。

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的用途是对输入字符进行解释,如果是系统命令,则执行返回命令结果,否则返回找不到命令提示。
  
  Linux入门之第一次登入系统
  
  上图中,我们输入【ls】,因为这是一条命令,shell有记录,所以它将【ls】提交给linux内核执行,然后终端打印【ls】执行的结果;而whoareyou这个字符串,shell就不认识了,所以提示说没找到命令。
  
  Shell是怎样找到命令的呢?

Shell的环境下有很多变量,称为环境变量,其中和命令有关联的一个变量是PATH,PATH是记录命令所在的路径的变量。

3. 使用Linux

3.1 第一个命令

  程序的定义有很多,通常我们把放在硬盘里,能够执行的文件称为称作程序,程序一般是以完成特定的任务为目的。我们学习的第一个程序是 ‘ls’, 也可以称为Liunx的命令。

【ls】 是list的简写,作用是将目录的内容罗列出来(输出到终端)。
【ls】 命令有很多参数, 参数是指跟在ls后面,用来规范ls输出的选项。
我们只需要学习二个参数:

  1. -a,–all 把当前目录下所有项目列出来,(【ls】后面没有指定目录时,默认是当前目录)
  2. -l 会列出项目的详细信息

Linux入门之第一次登入系统

  上图中,红色框里的是我们所输入的【ls】命令,有带参数和不带参数的。
  当用带参数-a的命令时, 【ls】列出了当前目录下的所有文件,其中有两个特殊的文件(绿色框内) :1个实心句点,2个实心句号。

1个实心句号: 代表当前目录,例如,’ ls .’ , 这个命令的意思和直接ls是一样的,都是对当前目录项目进行查询
2个实心句号: 代表包含当前目录的父目录,是目录外面一层的目录。
Linux文件系统内目录下面都存在这两个特殊的目录。

  带参数-a的命令还列出了一些前面带着小圆点的文件,见上图黄色框

  1. 这些前面带着小圆点的文件是Linux系统的隐藏文件
  2. 如果想把一个文件隐藏起来,只需要把文件名前面加上一个实心小圆点

  带参数-l时,ls打印了很多长长的行,那些长出来的是文件的基本属性,包括:文件属主,文件容量,文件创建时间等。

引起我们注意的是第一列,类似于drwxr-xr-x. 这是什么意思呢?
drwxr-xr-x 标示了文件类型和属性!其中,每一个字符都占一个位包括【-】,共有十个位,每个位都有其意义:

1。第一位:指出文件类型,d的意思是该文件是目录,如果是【-】,则是普通文件。
2。第二三四,3位一起,是针对该文件拥有者的权限位,r是read(可读),w是write(可写),x是execute(可执行)。
3。五六七,也是三位一起,是针对文件所属的组的权限位。
4。八九十,最后三位是针对其他人的权限位。
5。Linux的每一个文件,针对不同的用户有不同的权限,权限就是指,是否可读,是否可写,是否可执行该文件。
6。执行文件是指可以将文件载入内存运行的文件,是一个程序或一个脚本,相当于windows的exe文件 。

参数除了可以单独使用个外,大部分的参数都可以叠在一起使用,如上图的 ls -al 。

当我们要了解一条命令怎样使用时,可以利用【man】,男人都是可以利用的,在linux里没有什么是man不懂的,尽管使唤他。【man】的用法很简单,在终端里输入【man】 后面接你要询问的命令,使用你想知道【ls】是怎样使用,输入:
【man ls】 , 屏幕就会列出满满的使用说明文档。

Linux入门之第一次登入系统

在man的输出里可以通过翻页键上翻下翻,也可能通过【j】和【k】这两个字母上下移动文本,按【q】退出。

3.2 文件目录结构

  Linux的文件路径都带有一个【/】,这条杠杆如果单独表示时,叫根目录,所有文件和目录都存放在根目录之下,我们用【ls】这个命令查看一下:
Linux入门之第一次登入系统

  【ls /】这条命令显示出来的就是系统所有处于根目录之下的目录

   注意:/var/tmp里面的【/】是分隔分层的意思,它意思是var是在根目录下面,tmp则在var目录下面,只有【/】单独出现时才代表根目录。

  Linux的目录结构比较简单,一般在etc目录下面的是配置文件,在bin下面的是二进制可执行文件,在lib里面的是一些应用库,在include里面的头文件。暂时不需要知道太多。

  只需要知道的是,每一个登入系统的使用者都会有一个家目录,默认是在/home下面以使用者名字命名的目录。这个家目录是属于你的,你可以在里面随便捣腾,基本上不会影响系统运作。不过,如果是root用户,家目录默认是/root,在里面捣腾则要小心点,因为root的权限很大,它可以忽略任何的限制,一不小心就能对系统造成破坏。

3.3 文件管理

我们可以在自己的家目录下面可以随意思建立目录和文件。

1.【mkdir】这个命令可以创建目录,例如:mkdir newdir , 在shell打入这条命令执行后,就可以在当前目录里创建新的目录newdir。
2.【touch】这个命令可以建立新的可编辑文件,例如:touch newfile , 在当前目录下创建新文件newfile。
3.【nano】是一个简单的文本编辑器,例如:nano newfile , 打开刚建立的文件进行编辑,编辑完按CTRL+x 退出,最下列会有提示,根据提示操作就可以了。
4.【nano】后跟文件名参数,如果该文件不存在,nano就建一个新的文件。
5.【cp】 copy, 这是一个复制文件的命令,例如:copy newfile newfile_cp , newfile_cp是newfile的副本,如需要复制目录,需要加上【-r】参数, 例 如: copy -r newdir newdir_cp .
6.【rm】是删除文件的命令,例如:rm newfile , 删除时有提示需要确认,输入【y】确认删除,如需要删除目录,需要加【-r】参数,例如:rm -r newdir
7.【cat】后接文件名,能把该文件的内容打印到屏幕。

掌握了上面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】有很多参数,我们只需要学习两个参数。

  1. -l , 【ps】 带-l参数时,只列出和自己相关的进程。
  2. aux, 这是一个组合参数,可以带‘-’,或者不带‘-’,它会更出系统当前的所有进程。

Linux入门之第一次登入系统

  上面【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。

Linux入门之第一次登入系统

  由上图可见,【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】就可以将机器关掉。