本文为《Ubuntu Linux操作系统使用教程》(人民邮电出版社)的个人学习笔记。
第一章——系统介绍
Linux、GNU、GPL的关系,Linux的主要发行版本、Linux系统特性及与Windows的区别,略
第二章——系统部署
- 系统安装——略,参考虚拟机安装与双系统(win10+ubuntu)安装及其他
- Grub程序简介——Grub是个启动引导程序
- Grub的配置——设置默认启动系那个等,
sudo gedit /etc/default/grub
(使用gedit来编辑对应文件);修改文件保存后使用sudo update-grub
更新 - Grub的修复——安装新系统后覆盖了Grub引导程序则需要修复;从U盘启动ubuntu——参考ubuntu安装部分——然后执行以下命令:
具体含义不多解释,我也没用过,参考书籍P19(2017版)grub find /boot/grub/stage1 root (hdx,y) setup (hd0) quit
- Grub的配置——设置默认启动系那个等,
- Linux初始化、硬件设备设置、桌面环境等,图形操作,简单略。
第三章——应用管理
office、浏览器、多媒体、收发邮件、打印机等使用,简单略。
第四章——基本命令
1.结合个人的理解
在Linux中一切皆文件,Linux支持多用户,用户是文件的使用者,对任何一个文件,其使用者有三类——属主、属组用户与其他用户(当然在这三类用户之上还有一个超级用户root,root用户拥有所有文件的所有权限),每一类用户都拥有对该文件执行不同操作的权限。对文件执行操作的权限有三个r
,w
,x
,分别为读(Read)、写(Write)、执行(eXecute)权限。
对不同类型的文件(上章介绍了有七种类型文件),这三种权限含义有一定差别——
- 对于目录文件,读权限意味着可以列出当前目录下所有的子目录与文件的权限,写意味着可以新建、删除文件的权限,执行权限意味着可以进入该目录(cd命令进入该目录),所以执行权限是最基本的权限;
- 对于普通文件,读权限意味着可以读取文件内容,写权限意味着可以向文件写入内容,执行权限意味着可以执行该文件——普通文件中的可执行文件(即机器二进制指令等)要被用户调用,需要该用户有执行权限;而一般的不是可执行文件其执行权限没有意义。
用户对文件的权限可通过ls -l
列出文件时查看,-l
参数指定列出文件的详细信息,其列出的第一项为10个字母串,比如drwxr-xr--
,第一个字母表示文件类型,如下常用命令中说明的七种类型;接下来三个字母表示属主用户权限,之后三个是属组用户权限,之后是其他用户权限。更改文件的属主、属组可以参考常用命令,管理用户(增、删、分组)可以参考第五章命令。
2.常用命令列表(记忆)
-
man 命令——查看命令行手册,
man 命令
查看命令的用法 -
目录操作
-
创建目录——
mkdir
-
删除目录——
rmdir
-
修改创建文件——
touch
-
删除文件——
rm
-
移动——
mv
-
复制——
cp
-
跳转目录——
cd
(打印当前目录pwd
)
-
-
文件查看——
ls
,cat
,head
,tail
,more
,less
-
权限管理
- 权限表示——九个字符,三个八进制数,九个二进制数——权限对目录与文件意义
- 改变权限——
chmod
权限数字 文件名 - 用户组增删权限、赋予权限——
chmod [u/g/o/a][+/-,=][r/w/x] 文件名
——chmod g+w file
给其他用户增加对file文件的写权限(另有-
的用法减去权限);chmod u=rwx file
给属主用户权限设为rwx;chmod g=u file
给属组用户权限设为与属主用户相同 - 只有root用户与文件所有者才有更改权限的资格
- 更改所有权、更改组(该权限只有root用户有)——
chown
,chgrp
-
链接文件——创建链接:
ln -s file file-link
共有七种文件类型——
- 普通文件(-);
- 目录(d);
- 字符设备文件(c);
- 块设备文件(b);
- 本地域套接口(s);
- 有名管道(p);
- 符号链接(l)
-
文件重定向——
- 输入重定向——
<
即时输入;<<
块输入; - 输出重定向——
>
覆盖输出;>>
追加输出
- 输入重定向——
-
文件查找
- 文件查找——
find 路径 -name 文件名 -type 文件类型
,前面文件类型符号,如果是普通文件不需指定这个参数 - 命令查找——which 命令
- 文件查找——
-
管道——重定向的拓展,将一个命令的输出作为另一个命令的输入——如
ls|grep ay
,列出当前目录下文件名,并将其作为后一个命令的输入;后一个命令查找这些文件名中含有字符ay的
多使用man查看命令用法!
一点个人理解补充——
比如用一个一般用户执行以下命令useradd alice
添加一个用户alice(当然按照常理也知道添加用户不是一个一般用户可以执行的操作)发现无法执行,执行which useradd
来查看该命令在那个文件夹下(在/usr/sbin/
下),然后ls -l /usr/sbin/useradd
查看该可执行文件权限,为rwxr-xr-x
说明即使是一般用户也有执行权限,但却不能执行。观察执行该命令时的报错——
useradd:Permission denied
useradd:无法锁定 /etc/passwd,请稍后再试
可以发现是跟/etc/passwd
文件的权限相关,使用ls -l /etc/passwd
查看其文件权限为rw-r--r--
说明该文件对于一般用户只有读权限。实际上这里是因为useradd
命令执行中需要向/etc/passwd
添加内容(/etc/passwd
是系统保存用户的账号、密码、id、分组等信息的配置文件),而一般用户对该文件没有写权限。Linux中一切皆文件,执行的命令也是文件,所以某个命令无权限执行实际上是无权限执行该命令的脚本,或者是该命令执行过程中需要改动一个该用户无权限改动的文件等。
第五章——用户管理
- 添加用户——
sudo useradd [-g 组id] -m 新用户名
——m表示创建主目录,不创建无法使用图形界面 - 更改密码——
sudo passwd 用户名
- 查看用户名与组名——
id 用户名
- 删除用户——
sudo userdel 用户名
——加参数-r
表示同时删除用户主目录,确定主目录中没有重要文件 - 添加组——
sudo groupadd [-g gid] 组名
- 删除组——
sudo groupdel 组名
- 将用户添加到组——
sudo usermod -g 组名 用户名
- 切换当前用户——
/bin/su 用户名
——不带用户名切换到root用户;ubuntu中不能切换到root用户,只能用sudo
来借用root用户权限 - 切换回原用户——
exit
——su
切换只切换用户,没切换环境 - 切换其他用户身份执行——
sudo [-u 用户名] 执行的命令
——不给出用户名则切换为root用户执行,/etc/sudoers
文件决定每个用户可在哪些机器上切换到哪些用户执行哪些命令 - 查看用户与分组——
cat /etc/passwd
与cat /etc/group
- 打印历史命令——
history [n]
——n表示最近n条命令
第六章——进程管理
- 显示进程——
ps aux
——显示所有进程ps lax
——显示所有进程,字段不一样,有父进程与谦让度信息top
——实时(其实是3s刷新一次)显示占用CPIU与内存前几的- 显示进程字段——USER创建用户;PID进程ID;%CPU、%MEM为CPU与内存占用百分比;VSZ占用虚拟内存大小;RSS内存中页数量(一页通常为4K);TTY终端id号;STAT进程状态(R运行,D休眠,S睡眠,T终止,Z僵尸进程,附加标志:<,N,L,s);START启动时间;TIME占用CPU时间;COMMAND命令和参数
- 杀死进程——
kill pid
——杀死id为pid的进程,只是向pid进程发送了一个EXIT信号,大部分情况下退出;但是进程可能捕捉到这个信号并忽略(如果不捕捉系统默认进程退出),比如命令行执行命令时默认ctrl+c是向当前命令进程发送一个INT(中断)信号,但是执行bc
命令时其捕捉并忽略了该信号kill 信号 pid
——向pid进程发送信号,(kill -l
列出可向进程发出的信号,这些信号都是以SIG开头,使用时大小写不敏感,且前面的SIG可省略)sudo kill -KILL pid
或者sudo kill -SIGKILL pid
或者sudo kill -9 pid
,内核级别“杀死”进程,该信号不可能被捕捉,所以绝大部分情况能杀死进程;还不行只能重启了killall -HUP pname
杀死名称为pname的进程
- 设置进程的优先级
nice -n 谦让度 执行的命令
——设置执行的命令的谦让度,这里谦让度为相对的数值(相对于父进程),谦让度越高优先级越低renice 谦让度 -p pid
——重新设置进程的谦让度,这里谦让度为绝对的数值- 谦让度为-20~19的整数,只可提高谦让度降低其优先级,不可降低谦让度提高优先级(防止出现子进程优先级高于父进程的情况);但是使用root权限可以提高其优先级
PROC
文件系统——在运行时在/proc
目录(该目录只存在于内存中,计算机外存上没有该目录)下有数字命名的文件夹,保存进程相关信息,文件夹名称即为进程id,通过改变这里的相关文件即可改变进程行为(这里相当于进程也是文件了,这个查阅相关专业书籍);ps
命令即是访问该文件获取进程信息的
第七章——磁盘管理
- 查看分区——设备信息文件保存在/dev目录下,SCSI硬盘文件在目录下为名称是sd的文件,第一块硬盘为sda,第二块为sdb以此类推;硬盘上的分区为sda1,sda2等,1~4为主分区,5之后为逻辑分区;可用
ls /etc/|grep sd
查看硬盘分区信息 - 磁盘分区——
fdisk
,该命令是交互式命令行操作,输入相应命令执行分区(n
)、打印分区类型(print
)、更改分区类型(type
),查看可用命令(m
)、查看分区类型编号(L
)等,每一个命令执行过程可能需要询问用户相应命令执行过程中的参数(比如分区从哪个扇面开始、是否为主分区等);完成分区后需要输入write
命令写入磁盘才能生效,之后q
退出fdisk
交互命令——直接使用安装U盘可视化分区更简单 - 查看各磁盘空间域使用情况——
df
- 查看各目录大小——
du
第八章——软件包管理
- RPM(Red Hat Package Manager)与DEB(Debian)——都是软件包管理工具
- APT软件包管理工具——是目前最成熟的软件包管理工具,可自动下载、安装软件以及解决其依赖项(软件下载源在
/etc/apt/sources.list
文件指定,可查看该文件看有哪些下载源以及修改添加自定义的下载源);主要有apt-get
命令和apt-cache
命令,使用sudo
加以下命令:apt-get install 软件名
——安装apt-get upgrade 软件名
——更新已有软件apt-get remove 软件名
——卸载已安装软件apt-get purge 软件名
——卸载并清除配置文件apt-get source 软件名
——获取软件源码apt-get clean 软件名
——清理已下载包文件
第九章——任务计划
at
——设置单次的定时任务,如at 16:00
——enter之后输入要执行的命令,会在当天16:00执行at now +5 minutes
——会在五分钟后执行at 17:00 -f ~/alarm
——会在17:00执行当前目录下的alarm脚本at 3:00 12/09/2019
——之后输入在该时间点执行的命令atq
——列出当前所有的一次性定时任务atrm n
——清除序号为内的单次定时任务
- crontab——在
/etc/crontab
文件中添加系统管理相关的定时任务,保存文件即有效;在/etc/cron.d/
目录下添加应用程序的定时任务,定时任务文件与应用程序同名配置方法与系统定时任务一样;在var/spool/cron/crontabs/
目录下简历用户的定时任务配置文件,方法如下:crontab filename
——将filename文件安装为用户的crontab文件(每次更改后都要重新安装以生效)crontab -e
——编辑用户的crontab文件crontab -l
——列出用户的crontab文件中内容crontab -r
——删除用户的crontab文件- 关于crontab文件的编辑——一般在文件开始几行注释会说明(如/etc/cron文件中),一般一行一个任务,每个任务每一列分别设置
m h dom mon dow user command
(即分钟、小时、每月第几天、第几个月、每周星期几、执行任务的用户身份、执行的命令),如0 0 * * * root (tar czf /media/disk/passwd.tar.gz /etc/passwd)
即每天0点0分以root身份打包/etc/passwd文件为disk盘上的passwd.tar.gz文件备份
第十章——网络管理
不太理解,参考原书籍或其他文章。