获取CentOS的发行版
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
终端
描述:用户与主机交互,必然用到的设备。
终端分为两种:
- 物理终端:直接接入本机的显示器和键盘设备。
- 虚拟终端:附加在物理终端之上以软件方式虚拟实现的终端,CentOS 6 默认启动 6 个虚拟终端。
虚拟终端中又有图形终端,指的是附加在物理终端之上的以软件方式虚拟实现的终端,但额外会提供桌面环境。如使用桌面版 linux 时在桌面右击菜单中选择open in terminal
项打开的界面。 - 模拟终端:图形界面下打开的命令行接口,基于 ssh 或 telnet 协议等远程打开的桌面。
虚拟终端可通过快捷键
Ctrl + Alt + F[1-6]
快速在 6 个虚拟终端间切换。
查看当前的终端设备类型
可通过执行命令 tty
来输出的当前终端的设备文件路径来区分当前使用的终端类型。
如虚拟终端下的设备文件路径为 /dev/tty[1-6]
,而模拟终端的设备文件路径为 /dev/pts/[0-n]
。
交互式接口
描述:启动终端后,在终端设备附加一个交互式的应用程序。
交互式接口可分为 2 类:
- GUI(图形用户界面)
基于 X protocol 的远程显示,在 X protocol 的基础上提供一个 window manager,再提供一个 destop,这就是 GUI。
desktop 常用有如下几种:
a、GNOME,C 语言研发,图形开发库使用 gtk。
b、KDE,C++ 语言研发,图形开发库使用 qt。
c、XFCE,一个轻量级桌面,适用于资源不足或仅用于简单显示的情况。 - 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'
要注意的是,whereis
和 which
命令只可查看到外部命令的信息,如下:
[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、文件名严格区分字符大小写,file1
、File
、FILE1
是不同的文件。
2、文件名可使用除 /
外的任意字符,不建议使用特殊字符,/
可以代指根目录,也可以作为路径分隔符。
3、文件名长度最长不能超过 255 个字符。
4、所有以 .
开头的文件,均为隐藏文件。
可通过
ls -a
查看目录下的隐藏文件。
路径
绝对路径:从根目录起始的路径。
相对路径:从当前位置起始的路径。
当前所在路径
我们可以通过 cd
命令来切换当前所在的路径,cd
为 current 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。
评论区