Linux入门之路
文章目录
登入 linux
在安装时,我门选择了rhel7 ,且有安装GUI,所以使用时会有图形界面的产生,不过也有纯文本的环境可以切换~
- 通常我们也称文本模式为终端机接口, terminal 或 console
- Linux 预设的情况下会提供六个 Terminal 来让使用者登入, 切换的方式为使用:[Ctrl] + [Alt] + [F1]~[F6]的组合按钮
- 系统会将[F1] ~ [F6]命名为 tty1 ~ tty6 的操作接口环境
- 如何回到刚刚的有图形的窗口接口?按下[Ctrl] + [Alt] + [F1]
登陆,打开终端:
最左边的 feng显示的是『目前用户的账号』,而@之后接的 server则是『主机名』,至于最右边的~
则指的是 『目前所在的目录』,那个$
则是我们常常讲的『提示字符』
提示:
那个~
符号代表的是『用户的家目录』的意思,他是个『变量!』
举例来说,root 的家目录在/root, 所以 ~
就代表/root 的意思
在 Linux 当中,默认 root 的提示字符为 # ,而一般身份用户的提示字符为 $
文本模式下指令的下达
我们都是透过『程序』在跟系统作沟通的,上面提到的窗口管理员或文本模式都是一组或一 只程序在负责我们所想要完成的任务。
文本模式登入后所取得的程序被称为壳(Shell),这是因为这支程序负责最外面跟使用者(我们)沟通,所以才被戏称为壳程序!
下达指令
指令详细说明:
- 一行指令中第一个输入的部分绝对是『指令(command)』或『可执行文件案(例如批次脚本,script)』
- command 为指令的名称,例如变换工作目录的指令为 cd 等等
- 中刮号[]并不存在于实际的指令中,而加入选项设定时,通常选项前会带 - 号,例如 -h;有时候会使用选 项的完整全名,则选项前带有 – 符号,例如 --help
- parameter1 parameter2… 为依附在选项后面的参数,或者是 command 的参数
- 以空格来区分这些内容,但不论几个空格,shell都看作一格
- 执行就是[Enter]键
- 指令太长的时候,可以使用反斜杠 () 来跳脱[Enter]符号,使指令连续到下一行
- 英文大小写字母在Linux系统中时不一样的
重要的几个热键
- [Tab]按键
- 具有『命令补全』与『文件补齐』的功能
- 试验下,输入mk加两次tab键
所有以 mk为开头的指令都被显示出来~
记住:
[Tab] 接在一串指令的第一个字的后面,则为『命令补全』!
[Tab] 接在一串指令的第二个字以后时,则为『文件补齐』!
- [ctrl]+c按键
- 想让当前的程序『停掉』的话,可以输入[ctrl]+c是中断目前程序
- [ctrl]-d按键
- 键盘输入结束的意思
Linux系统目录
在 Linux 或 Unix 操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。
执行命令后可看到这些目录
文件系统的最顶层是由根目录开始的,系统使用 / 来表示根目录。在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含子目录文件。如此反复就可以构成一个庞大的文件系统。
在Linux文件系统中有两个特殊的目录,一个用户所在的工作目录,也叫当前目录,可以使用一个点 . 来表示;另一个是当前目录的上一级目录,也叫父目录,可以使用两个点 … 来表示。
- . :代表当前的目录,也可以使用 ./ 来表示;
- … :代表上一层目录,也可以 …/ 来代表。
如果一个目录或文件名以一个点 . 开始,表示这个目录或文件是一个隐藏目录或文件(如:.bashrc)。即以默认方式查找时,不显示该目录或文件。
常见一级目录及功能
/bin 、 /sbin——存放基本命令
/boot——存放启动文件
/dev ——存放各种设备文件
/etc——存放各种配置文件
/usr——存放共用的、只读的用户数据
/root ——管理员root的家目录
/home——各种普通用户的家目录
/tmp——存放各种临时文件
/var——存放经常变化的数据或文件,日志也在
/proc ——存放内存中的映射数据,不占用内存
Linux 文件权限概念
Linux 文件属性
将登录用户的身份切换成root之后,执行ls -al
命令:
ls 是『list』的意思,重点在显示文件的文件名与相关属性。而选项『-al』则表示列出所有的文件详细的权限与属性 (包含隐藏文件,就是文件名第一个字符为『 . 』的文件)
上图说明下文件属性:
-
第一栏代表这个文件的类型与权限(permission):
- 栏中存在10个字符
- 第一个是文件类型
- 当为[ d ]则是目录,当为[ - ]则是文件,若是[ l ]则表示为连结档(link file),若是[ b ]则表示为装置文件里面的可供储存的接口设备,若是[ c ]则表示为装置文件里面的串行端口设备
- 第二至四位说明的是文件拥有者的权限(r:读,w:写,x:执行,如果没有权限给减号
-
就行) - 第五到七位说明的是文件所属群组的权限,(rwx的含义与上面一样)
- 第八到十位说明其他人的权限(rwx含义与上面一样)
- 第一个是文件类型
- 栏中存在10个字符
-
第二栏表示有多少档名连结到此节点(i-node):
- 每个文件都会将他的权限与属性记录到文件系统的 i-node 中,不过,我们使用的目录树却是使用文件名来记录, 因此每个档名就会连结到一个 i-node ;这个属性记录的,就是有多少不同的档名连结 到相同的一个 i-node 号码
-
第三栏表示这个文件(或目录)的『拥有者账号』
-
第四栏表示这个文件的所属群组
- 如,AA和BB是一组,AA有拥有这个文件可读可写可执行,那BB可以如何操作呢?那根据第一栏中第五至七位的权限来决定嘛~
-
第五栏为这个文件的容量大小,默认单位为 bytes
-
第六栏为这个文件的建档日期或者是最近的修改日期
-
第七栏为这个文件的档名
- 比较特殊的是:如果档名之前多一个『 . 』,则代表这个文件为『隐藏文件』
- 使用『ls』及『ls -a』这两个指令,就可以看到隐藏文件和普通文件的区别了
与Windows 系统不一样的是,在 Linux 系统当中,每一个文件都多加了很多的属性进来,尤其是群组的概念,这样有什么用途呢? 其实,最大的用途是在『数据安全性』!
因此,在你修改你的 linux 文件与目录的属性之前,一定要先搞清楚, 什么数据是可变的,什么是不可变的!
如何改变文件属性与权限
几个常用的群组,拥有者和各种身份的权限修改的命令
chgrp
:改变文件所属群组chown
:改变文件拥有者chmod
:改变文件权限,SUID,SGID,SBIT…的特性
实验一:那么在你的家目录内有一个名为 initial-setup-ks.cfg 的文件, 如何将 该文件的群组改变一下呢?假设你已经知道在/etc/group 里面已经存在一个名为 users 的群组, 但是 testing 这个群组名字就不存在/etc/group 当中了,此时改变群组成为 users 与 testing会发生什么?
先试试将Group名改成users:
改了以后显示一下改成功与否~
再试试改为testing,发现,,无效组:testing
所以!请记得,要被改变的组名必须要在/etc/group 文件内存在才行,否则就会显示错误!
实验二:改变一个文件的拥有者呢?
一样要注意的是, 用户必须是已经存在系统中的账号,也就是在/etc/passwd 这个文件中有纪录的用户名称才能改变。
chown 还可以顺便直