目录
- 一、Terminal
- 二、shell
- 三、命令
- 四、程序与进程
- 五、路径
- 六、软件
- 七、配置方式
- 八、隐藏文件
- 九、文件权限
- 1、文件类型
- Linux七大基本文件
- 2、文件权限
- 与文件权限有关的命令
- 十、用户
一、Terminal
终端(terminal ) = tty (Teletypewriter,电传打印机),作用是提供一个命令的输入输出环境,在linux操作系统下使用组合键ctrl + alt + T
打开的就是终端,可以认为terminal
和tty
是同义词。
二、shell
shell是一种人机交互的接口。shell有壳的意思,是指“提供使用者使用界面”的软件,是—种命令解析器,是Linux内核的一个壳,负责外界与Linux内核的交互。
windows的cmd
就是一种shell。所以shell并不只是指命令语言-Bash/zsh。其实GUI本身也是—种shell。
用户在shell中提交命令,shell负责接收用户的命令,并扮演命令解析器的角色。
当打开一个Terminal时,操作系统会将Terminal和shell关联起来,在Terminal中输入命令的时候,Shell就负责解释命令。
这一部分后面会深入学习,现在只做了解
shell学习
三、命令
命令是人和计算机交互的基本单位,人使用命令将要做什么事传达给计算机,计算机做出解析,并做出回应。
(1)语法结构
和人说话一样,命令的主要结构也可以看做为主谓宾的简单句和复杂句
命令 [选项][选项参数]…[参数]…
按照英语语系语法:
主谓宾定状补,命令省略主语
谓语动词也就是命令主体
参数是该命令要处理或修改的事物,是宾语
选项是命令执行的方式,属于定状补的成分,一般以--
(加全称)或者-
(简称)开始 eg:ls -a
ls --all
(展示全部根目录下的东西)
需要注意的是:命令的空格是各个成分的分隔符
(2)命令细节
Linux命令由以下几个部分组成:命令名,分隔符,选项和操作对象组成。
1、命令名
命令名标识了命令的功能,如cp,rm,mv,rename,fdisk等等,都能很轻易的看出该命令的功能,还有一些命令,有二级子命令,如apt-get install | remove
,install
和remove
就是apt-get
的子命令。
(命令我们后面慢慢学,不懂没关系,学完再回来看一遍会更加理解知识点)
2、分隔符
分隔符通常为空格,连续的多个空格会被视为一个空格。
一些特殊的符号也属于分隔符,例如管道|
,重定向>
,<<
,<
,>>
后台运行&
,序列执行&&
、**
都是特殊的分隔符,在使用这些特殊符号的时候,不需要额外加空格,但为了使命令更易读,通常会加上空格。
3、选项
命令的选项通常用-
连接,通常为一个字母,是选项的首字母。大多数命令都可以使用-h
来查看该命令的帮助。
命令的选项也可以使用--
来引导,接的是选项的全程,效果与—连接单个字母是一样的--help
。
(3)操作对象
操作对象为该命令动作的承受着。
(4)格式约定
使用[]
来标记可以选择的选项
使用|
来表示不能同时使用的参数
选项通常紧跟命令名,当然,在很多时候可以省略命令的选项而使用默认参数
四、程序与进程
执行命令的时候,每一个命令,其实对应的就是系统中的一个程序。
下图使用which
命令查找cp
命令的位置,并使用ll
和file
命令查看cp命令的具体信息:
cp(英文全拼:copy file)命令主要用于复制文件或目录
通过ll
和file
命令可以看出文件cp是一个可执行的二进制文件,也就是平时所说的程序。
那么什么是程序呢?
计算机程序是指一组指示计算机执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。
什么又是进程呢?
进程是程序在内存中的镜像。
五、路径
绝对路径:绝对路径的起始点为根目录/
,例如/usr/bin/cp
就是一个绝对路径。
相对路径:相对路径的起始点为当前路径.
,假如用户当前目录为/home/suyelu/
,那么同样的文件cp,其相对路径为../. ./usr/bin/cp
。
相对路径和绝对路径在使用上各有差异,在使用时需要考虑实际的情况选择。
远程路径:在很多时候,会需要访问本机之外的资源,这个时候远程路径就有了用武之地了。
远程路径的一般表示方法为:协议://用户名:密码@位置/路径:端口
远程路径根据应用的不同,具体表示方法和所需要的参数都不太一致
路径相关的命令
cd #到...的指令,比如cd qqq就是到qqq文件去
ls #展示当前路径下的内容
pwd #打印工作目录
特殊路径~
家目录-
上次工作目录
前面先写个头,再按tab
键可以自动补全路径
六、软件
在Linux中,软件并没有像注册表这样的概念。
注册表:是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。安装软件。理论上只需要拷贝相关文件,并执行其主程序就可以。
通常,一个软件包含的内容会分别被拷贝到同级别的bin lib share和/etc目录下。bin
:存放程序的可执行文件。在系统环境变量中将该路径添加进去,就可以直接执行程序.lib
:库文件集中存放,方便共享。share
:存放程序需要的其他资源。/etc
:配置文件存放路径,大部分的程序的配置文件都可以在这个路径下找到。
七、配置方式
在Linux中,所有的配置操作都可以使用纯文本的配置文件来配置,为了方便使用,有很多程序都会提供命令接口供用户更加便捷来个性化的配置自己的系统。
/etc /network/interface
文件为Ubuntu的网络配置文件,通过修改该文件,并重启网络,就可以实现网络的配置工作。
也可以直接使用ifconfig
命令来直接修改网络配置:
ifconfig ethe 172.17.211.175
这条命令将把设备etho的ip地址更新为172.17.211.175。
对于interfaces文件中的其他所有配置,都可以使用命令来修改
八、隐藏文件
在Linux也有隐藏文件,与Windows不同的是,如果想查看隐藏文件不需要去文件夹选项中修改配置,让系统在显示文件的时候显示被隐藏的文件或者文件夹。
Linux的隐藏文件都是以.
开头的,也就是说所有以.
开头的文件都会被系统识别为隐藏文件。
如图,使用ls
命令添加-a
选项,就可以显示隐藏文件。这里有两个特殊的目录.
和..
,分别为当前目录和父目录。
九、文件权限
linux下一切皆文件
使用ll
命令可以查看当前文件夹下所有文件的详细信息。ll
等效于ls -al
该命令主要输出了七列内容,分别为:
权限、文件数、所属用户、所属群组、文件大小、修改时间(三列:月;日;时)、文件名。
第一列权限
主要可以分为以下四个部分:文件类型,所属用户权限,所属组权限,其他用户权限。
以刚才执行l的结果中的../
目录的权限为例:
1、文件类型
第一部分文件类型为d
,代表这个文件是一个目录(directory),目录是一种特殊的文件;
Linux七大基本文件
1、普通文件:-
regular file
2、套接字文件:s
socket,网络编程里用,基于网络实现声音图像的输出输入
3、管道:p
pipe,管道命令使用“|”这个界定符号,用于两个命令中间,把前一个命令的标准输出作为下一个命令的标准输入
4、链接文件:l
link ,软链接与硬链接
5、字符文件:c
character,字符设备串口设备,键盘,鼠标等
6、块文件:b
block, 块设备存储数据以供系统存取的接口设备,也就是硬盘 ,大小为4096
7、目录:d
directory
对于普通文件又可以分为以下三种:
1、纯文本文件
纯文本文件使用ASCIlI编码,这是Linux系统中最常见的一种文件类型,之所以成为纯文本文件,是因为这种类型的文件是可以直接读取的内容,在Linux,几乎所有的配置文件都属于这种类型。
2、二进制文件
二进制文件是系统中的可执行文件(不包括脚本),计算机只能认识并执行二进制文件。二进制文件不能使用cat等命令直接读出。
3、数据格式的文件
在一些程序运行过程中,需要读取特定格式的文件,这种文件被称为数据文件(datafile)。这种文件通常也不能使用cat命令读出。例如:/var/log/wtmp
文件。
2、文件权限
第二部分所属用户权限为rwx
,代表该文件拥有者拥有可读(read),可写(write),可执行(execute)的权限;
第三部分所属群组权限为r-x
,代表与该文件拥有者在一个群组的用户具有可读,可执行的权限,在这里-
顶替了w
的位置,代表没有写权限;
第四部分其他用户权限同样为可读,可执行。
需要注意的是rwx
的顺序是固定的
文件的权限包含三组(u用户,g群组,o其他用户),每一组又都包含三组具体的权限(r读,w写,x执行)。
对于文件权限,也可以用下面的方式来表示:
也就是权限的每一组都由三个十进制的数字表示,该组的的权限就可以简单的用着三个十进制的数字相加得到。
一个权限为rwxr-xr-x
的文件,则它的权限可以使用755
来表示。
与文件权限有关的命令
chmod #更改文件权限
chown #更改文件所属用户
chgrp #更改文件所属组
1、chmod的用法
chmod a+x file #给file文件的ugo者斌予执行的权限
chmod o-x file #将file文件o减去执行权限
chmod 755 file #设置file文件的权限为rwxr-xr-x
chmod u=rwx,go=rx file #设置file文件的权限为rwxr-xr-X
2、chown的用法
chown suyelu:haizei file #修改file的所属用户是suyelu,所属组为haizei
chown -R suyelu:haizei directory #修改目录directory及目录下的所有文件的所属用户是suyelu,所属组为haizei
chown suyelu file #修改file的所属用户为suyelu
涉及到用户的创建、修改等内容以后学习
3、chgrp的用法
chgrp root file #修改file所属的组为root
使用上述chgrp命令,改变所属组(每个组的权限是不一样的)
十、用户
Linux有两类用户,分别是root和普通用户。
1、超级管理员:root
root拥有系统的完全控制权,所以在使用Linux系统的时候,需要慎重使用root用户,更多的自由与权限同样也意味着更大的风险。实际上,有很多Linux系统在默认情况下是不开放root用户的,这是出于安全方面的考虑。
2、普通用户
普通用户拥有的权限就没有root用户那么大了,它只能做系统允许做的事。普通用户可以执行大部分的命令,但是root专有的命令却不能执行。
二者切换:
按ctrl + c
退出或者输入exit
or logout
在使用过程中,可以使用su
命令来切换用户。此外,w命令用于显示目前登入系统的用户信息
TTY是虚拟终端的意思
可在命令后加参数:
-f 开启或关闭显示用户从何处登入系统。
-h 不显示各栏位的标题信息列。
-l 使用详细格式列表,此为预设值。
-s 使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。
-u 忽略执行程序的名称,以及该程序耗费CPU时间的信息。
-V 显示版本信息。