本篇笔记源于《鸟哥的Linux私房菜-基础篇》第四版,仅用作记录。无排版。
- Linux是一个操作系统最底层的核心及其提供的核心工具。
- Kernel+softwares+tools+可完全安装程序=Linux distribution
- Linux核心版本与distribution的版本并不同,Distribution版本指如RHEL、Ubuntu等。
- Linux核心版本一般指操作系统的核心组件。用uname -r查看。
“我用的Linux是CentOS这个distribution,版本为7.x,请问…”
- 各个组件或装置在Linux里都是一个文件。
- BIOS是一个写入到主板上的一个软件程序,CMOS是记录各项硬件参数且嵌入到主板上的储存器。在开机的时候,BIOS是计算机系统主动执行的第一个程序。
X window与文本模式切换
- 文本模式也称为终端机接口,terminal或console
- Linux预设的情况下会提供六个terminal来让使用者登入,切换方式为Ctrl+Alt+F1~F6
- 系统会将F1-F6命名为tty1~tty6的操作接口环境
- Ctrl+Alt+F1:图形接口桌面
- Ctrl+Alt+F2~F6文字接口登入
-
root123:目前用户的账号;
-
@后面的localhost:主机名;
-
~:目前所在的目录;
-
$:提示字符,一般身份用户的提示字符;
-
#:这个为默认root的提示字符;
-
文本模式登入后取得的程序成为壳shell
-
Linux的默认壳程序是bash
-
Linux严格区分大小写
Linux指令分类:Linux指令分类
- Tab键具有命令补全和文件补齐的功能
- 在command后面按两下tab键,则命令补全
- 在选项或参数后面按两下就是文件补齐
- 若有bash-completion软件,则有些指令使用tab后,是选项/参数的补齐功能
- Ctrl+C中断目前程序
- Ctrl+D键盘输入结束EOF(end of file/input)
- Shift+page up往前翻页,shift+page down往后
- 命令 --help用在协助你查询你曾经用过的指令所具备的选项和参数
- 如果要使用从来没有用过的指令或者文件的格式时,就用man
- Man是manual(操作说明)的简写
- 进入man指令的功能(称为man page)后,按下空格键往下翻页page up/page
- down也行 ,按下q离开man环境。可以查询命令的用法和相关的参数说明。
- 在上面图片中,开头第一行,
- MAN(1)的MAN是指令的名称,(1)中的1是一种代号,方形框里面就是具体含义。翻译过来具体含义如下表。1,5,8这三个数字的含义特别重要!!
代号 | 代表内容 |
---|---|
1 | 用户在shell环境中可以操作的指令或可执行文件 |
2 | 系统核心可呼叫的函数与工具等 |
3 | 一些常用的函数与函式库大部分为C的函式库 |
4 | 装置文件的说明,通常在/dev下的文件 |
5 | 配置文件或,某些文件的格式 |
6 | 游戏 |
7 | 惯例与协议等 |
8 | 系统管理员可用的管理指令 |
9 | 和kernel有关的文件 |
Man page分为以下几部分对指令进行讲解:
代号 | 内容 |
---|---|
NAME | 简短的指令、数据名称说明 |
SYNOPSIS | 简短的指令下达语法简介 |
DESCRIPTION | 较为完整的说明(建议看看) |
OPTIONS | 针对SYNOPSIS部分中,有列举的所有可用的选项说明 |
COMMANDS | 当这个程序在执行的时候,可在此程序中下达的指令 |
FILES | 这个程序或数据所使用或参考或连结到某些文件 |
SEE ALSO | 可以参考的,跟这个指令或数据相关的其他说明 |
EXAMPLE | 一些可以参考的范例 |
- 按下/后,光标会在窗口最下方,然后输入要搜寻的关键字,向下搜寻
- 按下?后,向上搜寻
- 这些man page的信息通常,一般存储在/usr/share/man目录里。
man 1 man 使用man(1)的文件数据,这个效果相当于man man,当使用man man的时候,因为先搜寻到说明文档会先被显示出来。
man 7 man 使用man(7)的文件数据
- 在Windows(非NT主机系统)系统中,由于是单人假多任务的情况,所以直接关系对别人是没有影响的。
- 但在Linux中,在你看不到的屏幕后面可能有很多人同时在你的主机上工作,如果直接按下电源关电脑,可能导致其他人数据中断。此外,不正常关机,可能造成文件系统的损坏。因为有些数据回来不及回写,有些文件就会有问题。
- 查看目前谁在线:who
- 查看网络联机状态netstat -a
- 查看正在执行的程序ps -aux
- 只有root才能进行shutdown,reboot等指令
- su root进入root状态
- sync将数据同步写入硬盘
- shutdown关机指令
- reboot\halt\poweroff重新启动,关机
离开root身份,使用exit即可回到一般用户身份。
Linux文件权限与目录设置
- Linux一般将文件的可存取的身份分为owner/group/others,并且三种身份都有read/write/execute等权限。
- 群组的概念相当于部门下的团队,各个团队(群组)有自己的客户数据,只有团队(群组)内的成员可以浏览属于自己团队的数据。部门经理想要监督各个团队就设置一个经理的账号,开放进入这两个团队(群组)的权限,就可以进行监督
ls list
- 查看文件指令
- 参数-al查看列出所有文件的详细的权限和属性(包含隐藏文件,文件名第一个字符为“.”)
红色框从左往右
文件类型权限 连结数 文件拥有者 文件所属群组 文件大小 文件最后被修改时间 文件名
[- ] [r w - ] [r - -] [ r - -]
文件类型 文件拥有者权限 文件所属群组权限 其他人权限(从左往右)
1、一条横线的就是无权限
2、r是可读,读取文件实际内容
W可写,可以编辑,新增或修改该文件,但不能删除
X可执行,可被系统执行
在Linux里,文件能不能被执行,是由x权限决定的
顺序不会改变,没有就是减号
3、文件类型:
d是目录
-(减号)是文件
l连结档link file
b是装置文件的可存储的接口设备
c是装置文件里面的串行端口设备,如键盘、鼠标
4、连结点后面文件系统介绍
5、文件大小默认为bytes
6、对于目录来说,文件权限只有可读r没有可执行x的话,是不可以进入到这个目录的。
7、/etc/shadow这是一个账号管理的配置文件,该文件记录系统中所有的账号数据。该文件的权限为----------,root账号基本不受系统权限的限制。
如何修改文件属性与权限
chgrp:改变文件所属群组
chown:改变文件拥有者
chmod:改变文件的权限,SUID、SGID、SBIT等特性
1、chgrp:change group
要改变的组名必须在/etc/group文件内存在,否则会显示错误
2、chown:change owner
要该目录下的所有次目录或者文件同时更改文件拥有者,直接加上-R
-R是进行递归(recursive)
例子,复制某文件给某人的时候,需要更改文件拥有者
因为复制(cp)行为会复制执行者的属性和权限,当复制的文件没有修改的权限,就会复制了个寂寞。
3、chmod:
使用数字或符号进行权限的变更权限
A.使用数字改变文件权限
各个权限的分数:r4,w2,x1
如,-rwxrwx—
Owner=rwx=4+2+1=7
Group=rwx=4+2+1=7
Others=—=0+0+0=0
所以,指令输入为:chmod 770 文件名
B.使用符号改变文件权限
user
group
others
all
chomd u=rwx,go=rx 文件名
加减一般是在未知文件权限的情况下使用是很方便的
目录与文件权限
-
目录主要记录文件名列表,所以rwx的意义又有一些不一样 r,read contents in directory.表示具有读取目录结构列表的权限,可以读取
该目录文件下的文件名数据。 -
w,modify contents of
directory。具有移动该目录列表的权限。建立新的文件与目录,删除已经存在的文件与目录(无论该文件的权限是什么),改名,挪动目录内的文件,目录位置 -
X,用户能否进入该目录成为工作目录。
-
对于一般文件,rwx主要针对文件的内容来设置权限;对于目录来说,rwx是针对目录内的文件名列表来设计权限。目录的X相当于打开目录(门)的“钥匙”。
-
某目录一般用户权限设置为r–,意思就是可以查询目录下的文件名列表(只看得到文件名),但不可以切换到这个目录。如果目录不具备X权限,就无法切换到该目录下,也无法执行该目录下任何指令,即使具有RW权限。
-
但W的权限不可以随便设置。
Linux文件种类
1、正规文件。第一个字符为-的,一般是纯文本文档(ASCII)、二进制文件binary、数据格式文件(data)
2、目录。d
3、连结档l(英文L的小写) 类似Windows下的快捷方式
4、设备与装置文件(device)。系统周边以及存储相关的,通常集中在/dev文件目录下。通常又分为两种,区块(block)设备档和字符设备文件。区块设备档是一些存储数据,来提供系统随机存取的接口设备,如硬盘,软盘,第一个字符是b。字符设备文件,是一些串行端口的接口设备,如鼠标、键盘的一次性读取,不可中断输出的,第一个字符为c
5、数据接口文件(sockets),网络上的数据承接。启动一个程序来监听客户端的要求,而客户端可以通过这个sockets来进行数据沟通,第一个字符为s
6、数据输送文件(FIFO,pipe),解决多个程序同时存取一个文件所造成的错误问题,第一个字符为p
Linux文件扩展名
- Linux中,从扩展名是不能了解文件是否可以执行的,要从权限那里了解。
- Linux中扩展名只是用于了解文件用途
- .sh后缀是脚本或者批处理文件,因为批处理文件是用shell写成的