Linux 复习笔记

复习、复习、复习,当个好学生。

Linux

  • 开源 GNU

  • 类 Unix 系统

  • 多用户、多线程、多任务

  • 衍生出很多发行版本,用过fedora、arch、centos、ubuntu等等,不过感觉最好的还是ubuntu,主要是网站对国内用户很友好,桌面端、服务器端、iot端都有相应的版本。仁者见仁!

  • 搞过LFS, 深刻理解一切即文件

Linux 系统启动过程

  • 内核引导 – BIOS, 基本输入输出系统完成硬件检测后,交由BIOS中设置的启动设备,一般即为硬盘,交给内核接管整个硬件

  • 运行init – 进程的起点,也是后面进程所依赖的,此过程中得进程包含一个运行级别,级别不同,其功能效果也不同。

  • 系统初始化 – 也即准备整个系统运行的初始环境吧。

  • 建立终端 – 也即开发访问路径给用户。

  • 用户登录 — 命令行登录、ssh登录、图形界面登录

大致知道个流程即可,如果有深入学习操作系统,再去了解吧,可能永远不会!

附带一个关机命令,虽说要保持24*7小时不间断运行,但是个人使用学习时,难免会重启,不过我也在想,那服务器更新了,一定不能重新吗?我估计也不是,估计还是会停机重启维护,这个有点偏运维了。所以说docker才是未来呀。

同步内存中的数据到硬盘,第一次知道,以前直接关。 sync

  • shutdown 关机,但是要附带参数

  • reboot 重启 等价于 shutdown -r now

  • halt 关机

Linux中的文件系统

当初搞LFS的时候,就接触了这个,Linux的文件系统遵循分层结构:LSB(Linux Standard Base),约定大于配置,国外的东西总有一种指导思想,以前mysql、nginx安装位置的时候总是摸不着头脑,现在发现大家的软件包都准循着规范,大体就能知道配置、数据、主目录所在,不会像以前,摸不着头脑,说实话,这也是一种默契的体现吧。不过感觉我所接触到的团队都没意识到这个的重要性,都喜欢写文档标注。

我就根据记忆回顾几个重要的吧。

  • /boot linux启动流程中,会有的一个重要文件夹,不能动这个文件夹的东西,会影响到整个系统的稳定。

  • /etc 配置文件

  • /mnt 挂在目录,linux中,一切都是文件

  • /bin 命令所在目录

  • /home 用户所在的主目录,里面具体分用户,root用户有根目录的 /root

  • /dev 硬盘设备文件

  • /media 媒体文件

  • /opt 软件包可选安装目录,一般用户安装用户自己的应用。

主要记录下 /usr 以及 /var

usr: universal shared, read-only data(通用共享,只读数据)

/usr/local: 一般为第三方应用安装目录,例如nginx、mysql、docker等等,所以安装的就在这里找

var: variable data files(可变数据文件),一般查日志

/var/log: 日志文件存放目录

安装自己应用在 /opt 中,查找第三方应用/usr/local, 配置文件/etc, 日志/var/log,这些常用,其他的一般用不到。

文件的基本属性

通过ls查询出来的文件列表,最前面一些列为此文件的基本属性

  • 第一个字符,为d代表文件夹,为-代表文件

  • 后面3个字符一组,共三组,分别是owner、group、other,感觉这个不要翻译成中文,不然反而迷惑。用户、用户所属组、其他用户所有的权限

  • 3个字符,rwx, r代表可写,w代表可读,x代表可执行,如果为-,代表没权限

drwxrwxrwx 代表:这是个目录,ower,group,other都有rwx权限 -rwxrx—- 代表:这是个文件,ower有rwx权限,group以及other无任何权限

还是借用一张图片吧:

图片.png
Figure 1. 图片.png

修改文件的归属以及属性

可以修改文件的所有权,使用chown,change owner,改变文件的拥有者,可以修改文件的rwx权限,使用chmod,change model

chown:

chown [-R] group:owner filename

  • -R: 如果是文件夹,-R代表递归,将其下所有文件的所有者都改为 group:owner

chmod

一次性修改owner/group/other 的权限

chmod [-R] xyz filename

xyz分别对应 ower、group、other各自的权限之和

r: 4 w: 2 x: 1

chmod 777 filename

第一个7代表owner的权限,x = 4 + 2 + 1 = r + w + x 第二个7代表group的权限,同理 第三个7代表other的权限,同理

注: 7 为权限值相加,对应修改即可

修改指定 owner 、group 、other的权限

+:代表增加权限 -:代表删除权限 =:代表赋值权限 u: 代表owner的权限 g:代表group的权限 o:代表other的权限 a:代表3个所有

filename // other 赋值x权限 chmod o=x filename

注:其他对象,其他权限,更改对应值即可。

文件的操作

  • ls(英文全拼:list files): 列出目录及文件名

  • cd(英文全拼:change directory):切换目录

  • pwd(英文全拼:print work directory):显示目前的目录

  • mkdir(英文全拼:make directory):创建一个新的目录

  • rmdir(英文全拼:remove directory):删除一个空的目录

  • cp(英文全拼:copy file): 复制文件或目录

  • rm(英文全拼:remove): 删除文件或目录

  • mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称

用户管理

用户创建修改删除

创建用户以及其主目录

useradd -d /home/username -m username

删除用户及其主目录

userdel -r username

修改用户

usermod -g groupname username

其他属性自查,一般多用于修改所属组

切换所属组:

newgrp groupname

修改密码

修改自己密码:

passwd

修改他人密码(root用户): passwd username

限制用户登录(设置密码为空,或者限制账户登录)

设置空密码 passwd -d username

锁定账号 passwd -l username

新增组 groupadd groupname

修改组 groupmod groupname

删除组 groupdel groupname

账号密码操作,本质是新增文件记录

  • /etc/passwd: 用户信息列表

  • /etc/group: 组信息

  • /etc/shadow: 密码

磁盘管理

  • df: disk full,查看磁盘整体情况,常用 df -h / 查看磁盘占用情况

  • du: disk use, 查看磁盘使用情况

  • fdisk: 操作磁盘,一般用于分区、格式化等等

vi/vim

三种模式:命令行模式、输入模式、底部命令行模式

命令行模式:不能对文件进行编辑,可以通过 a/i 字母命令进入输入模式 输入模式:可以修改文件内容,其中也包含很多快捷键进行文本操作 底部命令模式:通过输出:冒号,进入,可以输入命令,常见 q 退出 w 保存。

常用复制、粘贴、删除命令

dd: 删除光标所在行 yy: 复制光标所在行 p/P: 粘贴光标所在行下方/上方 u: 复原前一个动作 ctrl + r: 重做上一个动作 . : 重复上一个动作