Linux基础(2)之系统基础及入门使用

Linux基础(2)之系统基础及入门使用

微信搜索 zze_coding 或扫描 👉 二维码关注我的微信公众号获取更多资源推送:

获取CentOS的发行版

http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com

终端

描述:用户与主机交互,必然用到的设备。
终端分为两种:

  1. 物理终端:直接接入本机的显示器和键盘设备。
  2. 虚拟终端:附加在物理终端之上以软件方式虚拟实现的终端,CentOS 6 默认启动 6 个虚拟终端。
    虚拟终端中又有图形终端,指的是附加在物理终端之上的以软件方式虚拟实现的终端,但额外会提供桌面环境。如使用桌面版 linux 时在桌面右击菜单中选择 open in terminal 项打开的界面。
  3. 模拟终端:图形界面下打开的命令行接口,基于 ssh 或 telnet 协议等远程打开的桌面。

虚拟终端可通过快捷键 Ctrl + Alt + F[1-6] 快速在 6 个虚拟终端间切换。

查看当前的终端设备类型

可通过执行命令 tty 来输出的当前终端的设备文件路径来区分当前使用的终端类型。
如虚拟终端下的设备文件路径为 /dev/tty[1-6],而模拟终端的设备文件路径为 /dev/pts/[0-n]

交互式接口

描述:启动终端后,在终端设备附加一个交互式的应用程序。
交互式接口可分为 2 类:

  1. GUI(图形用户界面)
    基于 X protocol 的远程显示,在 X protocol 的基础上提供一个 window manager,再提供一个 destop,这就是 GUI。
    desktop 常用有如下几种:
    a、GNOME,C 语言研发,图形开发库使用 gtk。
    b、KDE,C++ 语言研发,图形开发库使用 qt。
    c、XFCE,一个轻量级桌面,适用于资源不足或仅用于简单显示的情况。
  2. CLI(命令行界面)
    CLI 对 linux 而言就是 shell 程序。
    a、sh,最早期 unix 上的 shell 程序就叫做 sh,由 bourne 研发,也称 b shell。
    b、csh,接近于 C 语言风格的 shell,
    c、tcsh,csh 的升级版。
    d、ksh,由商业团队 korn 研发的商业程序。
    e、bash,全称 bourne again shell,后来由开源组织融合 csh 和 ksh 去其糟粕取其精华并且在 b shell 的基础上扩展的一款的 shell 程序,遵循 GPL 协议,是目前 linux 领域最为流行的开源项目。
    f、zsh,新晋的非常强的的一款 shell 程序。

bash 是目前 linux 各发行版默认的 shell 程序。

查看当前使用的shell程序

执行命令 echo $SHELL,可查看当前使用的 shell 程序。
执行命令 cat /etc/shells 可查看当前 linux 系统支持的所有 shell 类型。

命令提示符

命令提示符很常见,看示例:

[root@zze ~]#

当我们以 root 用户登录到 linux 中后,行首显示的这部分就包含了命令提示符。
在该示例中,前面 [root@zze ~] 实际上是由环境变量 PS1 定义,真正的命令提示符其实是最后的 #
查看环境变量 PS1

[root@zze ~]# echo $PS1
[\u@\h \W]\$

命令提示符有两种,如果以管理员用户登录,那么命令提示符就为 # 号,如果是以普通用户登录,那么此时的命令提示符就为 $ 符。

命令

在命令提示符后输入命令 + 回车,相当于告知 shell 程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来,表现为一个或多个进程。

查看命令对应的可执行程序

每一个命令实际上对应一个可执行程序,以 ls 命令为例,可通过 which 命令查看该命令所对应的可执行程序及位置。

[root@zze ~]# which ls
alias ls='ls --color=auto'
	/bin/ls

当然,which 本身也是一个命令,同样对应一个可执行程序,所以也可用其查看其自身位置,如下:

[root@zze ~]# which which
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
	/usr/bin/which

除了 which 命令,还可以通过 whereis 命令来找到可执行程序位置,依旧以 ls 命令为例:

[root@zze ~]# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

可以看到,whereis 命令除了找到了可执行程序位置,还找到了命令相关的帮助文档位置。

命令的分类

在 shell 中可执行的命令有两类,一种是内建命令,一种是外部命令。
内建命令:由 shell 自带的,而且通过某命令的形式提供,如 cd 命令。
外部命令:在当前系统的某文件系统路径下有对应的可执行程序文件,如 ls 命令。
想要查看一个命令的类型可以通过 type 命令,如下:

[root@zze ~]# type cd
cd is a shell builtin
[root@zze ~]# type ls
ls is aliased to `ls --color=auto'

要注意的是,whereiswhich 命令只可查看到外部命令的信息,如下:

[root@zze ~]# which cat
/bin/cat
[root@zze ~]# which cd
/usr/bin/which: no cd in (/usr/local/java/jdk1.8.0_191/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

运行命令

命令可以分为如下三大部分,COMMAND 为命令部分,OPTIONS 为选项部分,ARGUMENTS 为参数部分。

COMMAND [OPTIONS...] [ARGUMENTS...]

选项(OPTIONS):用于启动后或关闭命令的某个或某些功能,选项又区分为短选项与长选项。
ls 命令为例,直接运行该命令:

[root@zze ~]# ls
anaconda-ks.cfg  download  install.log  install.log.syslog

通过短选项 -l 来查看当前目录文件的详细信息:

[root@zze ~]# ls -l
total 24
-rw-------. 1 root root 1194 Jan 12  2019 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4096 Jan 12  2019 download
-rw-r--r--. 1 root root 9458 Jan 12  2019 install.log
-rw-r--r--. 1 root root 3161 Jan 12  2019 install.log.syslog

大部分情况下多个短选项是可以合并使用的,如 ls 命令的短选项 -l-h 合并使用如下:

[root@zze ~]# ls -lh
total 24K
-rw-------. 1 root root 1.2K Jan 12  2019 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4.0K Jan 12  2019 download
-rw-r--r--. 1 root root 9.3K Jan 12  2019 install.log
-rw-r--r--. 1 root root 3.1K Jan 12  2019 install.log.syslog

ls 命令的短选项 -l 对应的长选项为 -long,执行效果与短选项相同,如下:

[root@zze ~]# ls -long
total 24
-rw-------. 1 1194 Jan 12  2019 anaconda-ks.cfg
drwxr-xr-x. 2 4096 Jan 12  2019 download
-rw-r--r--. 1 9458 Jan 12  2019 install.log
-rw-r--r--. 1 3161 Jan 12  2019 install.log.syslog

参数(ARGUMENTS):指的是命令的作用对象。
参数的作用是向将运行的命令提供数据。

注意:
多选项、以及多参数和命令之间都应该使用空白字符分隔。
通过 Ctrl + C 键可以取消命令的执行。

文件系统

与 windows 不同,Windows 的文件系统可区分盘符,如 C:\Program Files\Java\jre1.8.0_221
而在 linux 中并没有盘符的概念,linux 文件系统只有一个根,对应路径为 /

注意事项

1、文件名严格区分字符大小写,file1FileFILE1 是不同的文件。
2、文件名可使用除 / 外的任意字符,不建议使用特殊字符,/ 可以代指根目录,也可以作为路径分隔符。
3、文件名长度最长不能超过 255 个字符。
4、所有以 . 开头的文件,均为隐藏文件。

可通过 ls -a 查看目录下的隐藏文件。

路径

绝对路径:从根目录起始的路径。
相对路径:从当前位置起始的路径。

当前所在路径

我们可以通过 cd 命令来切换当前所在的路径,cdcurrent directory 的缩写,即当前目录,当前所在的路径也称为工作目录(working directory)。
如果我们要查看当前所在的路径,可使用 pwd 命令,如下:

[root@zze ~]# pwd
/root

pwd 实际上是 print working directory 的缩写。

当前位置的表示方式

1、通过 ./ 即可访问当前目录,如:

[root@zze ~]# ls ./
anaconda-ks.cfg  download  install.log  install.log.syslog

. 表示的是当前路径,而 .. 表示的是当前路径的上级路径。

2、直接省略路径地址则默认使用的就是当前路径:

[root@zze ~]# ls
anaconda-ks.cfg  download  install.log  install.log.syslog

LSB协议

对于 linux 而言,所有路径的起始点就是根,而不论哪个 linux 发行版的根目录下的一级目录是相同的如下:

[root@zze ~]# ls /
bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var

这是因为所有 linux 发行版都遵循 LSB 协议,全称 Linux Standard Base。

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.zze.xyz/archives/linux-base-2.html

Buy me a cup of coffee ☕.