本文为作者计算机三级linux学习笔记
欢迎交流讨论,喜欢的话点个赞吧
欢迎去看我的主页
: NicholasYe’s Hompage.
cd /nicholas/local
ls -l
可以显示详细信息,ls -a
可以显示包括隐藏文件的所有文件w [选项] [用户名]
who命令:只能显示当前登录的用户信息 who [选项] [file]
echo命令 echo [选项] [输出内容]
date命令 date [选项]
passwd命令 passwd [选项] 用户名
rpm -ivh xxx
rpm -Uvh xxx
rpm -e xxx
rpm -q xxx
和rpm -qa
查询所有shell脚本主要有三种方式:
利用chmod命令修改脚本文件的权限为可执行
以脚本名作为参数传递给shell程序
运行bash程序,以输出重定向的方式让bash从给定文件中读入命令行
文件名的扩展称为通配(Globbing),通配定义了一整套使用特殊字符的规则。
符号 | 含义 |
---|---|
* | 匹配任意字符的0次或多次出现 |
? | 匹配任意单个字符 |
[ ] | 匹配该字符组所限定的任何一个字符 |
[^ ] 或 [! ] | 匹配不在该字符组的任何一个字符组 |
{string1, string2,……} | 匹配其中一个制定的字符串 |
举几个例子吧:
ls -l [!ch]*
可以显示非c和h字符开头的所有文件,这里请细心琢磨琢磨上课去啦———>上课回来啦
单引号
在输出字符的时候,计算机无法辨别字符是程序语言还是普通语言,所以用引号可以帮助计算机辨别语言种类
如echo 'It is warm(and sunny);come over & visit'
计算机就不会误认为"(" 、 “;” 、 “&” 等符号。
双引号
可是在程序中我们有时候需要保留部分有特殊含义的符号,如:
符号 | 意义 |
---|---|
$ | 代表引用变量的值 |
\ | 转义字符 |
` | 引用命令 |
在双引号中,这些符号会被正常识别为特殊符号,看这个例子就懂啦
其实输入/输出方向就是数据的流动方向
bash < sh01
或者 wc -l 可以统计abc文件中的行数。
wc -l < 只会在遇到END后才会结束。
顺序执行 ;
如ls ; date; cd/user; pwd
会依次执行,命令之间没有任何逻辑关系,哪条命令错了也不会影响到下一条命令
逻辑与 &&
如果使用“&&”连接多条命令,那么这些命令之间就有逻辑关系了。只有第一条命令正确执行了,第二条命令才会执行。cp /root/test && rm /root/test
逻辑或 ||
只有第一条命令执行错误了,第二条命令才会执行。
懂了没懂了没懂了没/doge
|
&
#
这章作者先暂时跳过,shell编程是独立且庞大的一章,作者会专门写一篇文章学习shell编程。
Linux系统支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响
每一个用户都有一个唯一的用户名和密码。用户组是建立一个组,赋予这个组不同的权限,再将用户放置在组中,以达到赋予不同用户不同权限的功能。
cat /etc/passwd
后可以查看所有用户名与ID对应关系cat /etc/group
后可以查看ID与用户组对应关系首先通过 cat /etc/passwd
打开文件
用户名:密码:UID:GID:描述性信息:主目录:默认shell
shadow文件储存的是用户的密码信息,如果需要打开该文件,需要通过 su root
进入管理员模式,才能正常查看该文件。
通过 cat /etc/shadow
打开文件
group文件储存的是用户组配置文件,可以通过 cat /etc/group
命令来打开
组名:密码:GID:该用户组的用户列表
同shadow文件,gshadow文件存储的是组用户信息。group+shadow嘛,简单!
讲完如何查看用户的信息,那么下面自然而然讲的就是如何管理用户和用户组啦。
命令:useradd [选项] 用户名
选项 | 含义 |
---|---|
-u |
手动指定UID |
-d |
主目录必须要写绝对目录 |
-c |
手动指定/etc/passwd文件中各用户信息中字段5的描述性内容 |
-g |
手动制定用户的初始组 |
-G |
指定用户的附加组 |
-s shell |
手动指定用户的登录shell。一般默认为/bin/bash |
-r |
创建系统用户 |
注意:在创建用户的时候,系统已经帮用户设置了许多默认值,如:
无敌版:
useradd -u 550 -g student -G root -d /home/student -c "test user" -s /bin/bash student
所以这段代码是什么意思呢?请读者自行理解/doge
用vim打开文件并修改: vim /etc/default/useradd
参数 | 含义 |
---|---|
GROUP=100 | 用于建立用户的默认组 |
Home=/home | 用户主目录的默认位置 |
INACTIVE=-1 | 密码过期后的宽限天数(-1指不会过期) |
EXPIRE= | 密码失效时间 |
SHELL=/bin/bash | 新建立用户的默认bash |
SKEL=/etc/skel | 新建用户默认主目录的配置信息文件 |
CREATE_MAIL_SPOOL=yes | 指的是给新建用户建立邮箱 |
这些值都可以通过vim编辑器进行修改
/etc/login.def
中查看到使用useradd命令创建新用户时,并没有给用户设置密码,所以无法正常登录,
通过命令 passwd [选项] 用户名
可以给账户设置密码
选项 | 含义 |
---|---|
-S |
查询用户密码的状态 |
-l |
暂时锁定用户(仅root用户) |
-u |
解锁用户(与-l相对应) |
-x |
设置该用户密码的有效期 |
-i |
设置用户密码失效日期 |
--stdin |
可以将通过管道输出的数据作为用户的密码 |
使用 usermod [选项] 用户名
命令可以修改已存在的用户,也可以用vim编辑器修改(/etc/passwd /etc/shadow /etc/group /etc/gshadow)文件。
注意:需要分清useradd与usermod两个命令,前者用于添加新用户,后者针对已存在的用户。
选项 | 含义 |
---|---|
-c |
修改用户的说明信息 |
-d |
修改用户的主目录 |
-e |
修改用户的失效时期 |
-g |
修改用户的初始组 |
-u |
修改用户的ID |
-G |
修改用户的附加组 |
-l |
修改用户名称 |
-s shell |
修改用户的登录shell,默认的是/bin/bash |
使用 chage [选项] 命令
可以修改用户密码信息
选项 | 含义 |
---|---|
-l |
列出用户的详细密码状态 |
-m |
修改密码最短保留天数 |
-M |
修改密码有效期 |
-E |
修改账号失效日期 |
既然可以用vim直接编辑,为何还要用chage命令呢?
因为chage命令可以让新建的用户在首次登录系统时立即修改密码
代码如下:
# useradd student //创建用户student
# echo "student" | passwd --stdin student //设置用户的初始密码
# chage -d 0 student //将用户的创建日期改为1970年1月1日,这样用户登录后就必须修改密码
使用 userdel -r 用户名
可以删除用户的同时和用户的家目录
使用 id 用户名
可以查看用的UID、GID和附加组的信息
使用 su [选项] 用户名
来切换用户
选项 | 含义 |
---|---|
-l |
完整切换工作环境 |
-p |
切换为指定用户的身份,但不改变工作环境 |
-c |
切换并只执行一次命令,执行完自动切回 |
su
命令的时候,有 -
和没有 -
是完全不同的,-
选项表示在切换用户身份的同时,连当前使用的环境变量也切换成指定用户的。groupadd [选项] 组名
来添加用户组groupmod [选项] 组名
来修改用户组的相关信息groupdel 组名
来删除用户组使用 gpasswd [选项] 组名
来给组设置一个组管理员
选项 | 含义 |
---|---|
-A user1 |
将群组的控制权交给user1(仅root) |
-M user1 |
将user1等用户加入此组(仅root) |
-r |
移除组的密码 |
-R |
让组的密码失效 |
-a user |
将user用户加入组 |
-d user |
将user用户从组中移除 |
为了方便管理文件和目录,Linux系统将他们组织成一个分层的结构,有条不紊地管理着数据。
文件系统的基本概念主要分三部分:
说明目录或文件位置的方法有两种:
/etc/login.defs
etc/login.defs
注意:Linux系统不以文件的扩展名来区分文件类型
例如:dog.exe只是一个文件,其扩展名.exe并不代表此文件就一定是可执行文件
car [选项] 文件名
,这个命令用于显示文件的内容。或者 car 文件1 文件2 > 文件3
用于连接、合并文件。选项 | 含义 |
---|---|
-n |
对输出的所有行进行编号 |
-b |
此选项表示只对非空行进行编号 |
-s |
当遇到多行空白行时,替换为一行的空白行 |
more [选项] 文件名
,可以逐页阅读文件中的内容选项 | 含义 |
---|---|
-c或-p |
不滚屏,先清屏后再显示内容 |
-s |
当遇到多行空白行时,替换为一行的空白行 |
+n |
从第n行开始显示文件内容(n代表数字) |
-n |
一次显示的行数(n代表数字) |
head [选项] 文件名
,可以显示指定的文件前若干行的内容tail [选项] 文件名
,可以显示指定的文件末尾若干行的内容选项 | 含义 |
---|---|
-n k |
显示文件前k行的内容 |
-c k |
显示文件前k个字节的内容 |
-v |
显示文件名(head) |
-f |
输出文件变化后增加的数据(tail) |
时间参数:
touch命令的基本格式是 touch [选项] 文件名
选项 | 含义 |
---|---|
-a |
只修改文件的访问时间 |
-c |
修改文件的三个时间参数 |
-m |
只修改文件的数据修改时间 |
-t |
该选项可以跟欲修订的时间(格式为YYYYMMDDhhmm ) |
grep [选项] 模式 文件名
,可以从文件中找到包含指定信息的那些行,这里的模式,要么是字符(串),要么是正则表达式。选项 | 含义 |
---|---|
-F |
将查找模式解释成单纯的字符串 |
-E |
将查找模式解释成正则表达式 |
-c |
仅列出文件中包含模式的行数 |
-i |
忽略模式中字母的大小写 |
-n |
在每一行的最前面列出行号 |
-v |
列出没有匹配模式的行 |
正则表达式是描述一组字符串的一个模式,通过使用操作符,将较小的表达式组合成一个新的表达式
模式 | 含义 |
---|---|
c* |
将匹配0个或多个字符c |
. |
将匹配任何一个字符,而且只能是一个字符 |
[xyz] |
匹配方括号中的任意一个字符 |
[^xyz] |
匹配除方括号中字符外的所有字符 |
^ |
行首定位符 |
$ |
行尾定位符 |
sed [选项] sed 编辑命令 文件名
,sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序,文件的内容并没有改变,除非使用重定向存储输出。选项 | 含义 |
---|---|
-n |
只显示匹配处理的行 |
-e |
执行多个编辑命令时使用 |
-i |
直接在文件中进行修改,而不是输出到显示器 |
-r |
支持扩展正则表达式 |
-f |
从脚本文件中读取内容并执行 |
编辑命令 | 含义 |
---|---|
p |
打印匹配行(print) |
d |
删除指定行(delete) |
a |
在匹配行后面追加(append) |
i |
在匹配行前面插入(insert) |
c |
整行替换 |
r |
读取文件的内容(read) |
w |
将文本写入文件(write) |
s |
字符串替换(匹配正则表达式) |
sed -n '3,5p' test03
显示test03文件中第三、五行在显示屏上sed '2a drink tea' test03
在test03文件第二行最后加上drink teaawk [选项] '匹配规则{执行命令}' 文件名
,该命令也是逐行扫描文件,寻找含有目标文本的行,如果匹配成功,则会在该行上执行用户想要的操作。cp [选项] 源文件 目标文件
,该命令主要用来复制文件和目录,同时借助某些选项可以复制整个目录。选项 | 含义 |
---|---|
-a |
相当于-d,-p,-r选项的合集 |
-i |
如果目标文件已存在,则会询问是否覆盖 |
-l |
把目标文件建立为源文件的硬链接文件(不复制) |
-s |
把目标文件建立为源文件的软链接文件(不复制) |
-p |
复制后目标文件保留源文件的属性 |
-r |
递归复制,用于复制目录 |
-u |
若目标文件与源文件有差异,可以更新目标文件 |
rm [选项] 文件或目录
,该命令可以永久性的删除文件系统中制定的文件或目录选项 | 含义 |
---|---|
-f |
强制删除,无提示 |
-i |
询问删除,有提示 |
-r |
递归删除,用于删除目录 |
出现啦,
rm -f
删库跑路啦/doge
mv [选项] 源文件 目标文件
,该命令既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名选项 | 含义 |
---|---|
-f |
强制覆盖 |
-i |
交互移动 |
-n |
如果目标文件存在则不会覆盖移动 |
-v |
显示文件或目录的移动过程 |
-u |
若目标文件已经存在, 则对目标文件进行升级 |
比如:mv test03 test 3
就是直接修改文件名称
sort [选项] 文件名
,该命令可以依据不同的数据类型来进行排序选项 | 含义 |
---|---|
-f |
忽略大小写 |
-b |
忽略每行前面的空白部分 |
-n |
以数值型进行排序 |
-r |
反向排序 |
-u |
删除重复行 |
-t |
指定分隔符 |
-k [n,m] |
从第n到第m个字段排序 |
wc [选项] 文件名
选项 | 含义 |
---|---|
-l |
只统计行数 |
-w |
只统计单词数 |
-m |
只统计字符数 |
mkdir [选项] 目录名
,该命令可用于创建新目录选项 | 含义 |
---|---|
-m |
用于手动配置所创建目录的权限 |
-p |
递归创建所有的目录 |
rmdir [-p] 目录名
,该命令用于删除空目录与上一个命令相同,-p
指的是递归删除所有的目录,因此若只需要删除一个目录,可以不添加 -p
cd [相对路径或绝对路径]
,是change directory对的缩写,用来切换工作目录特殊符号 | 作用 |
---|---|
~ |
当前登录用户的主目录 |
- |
代表上次所在目录 |
. |
代表当前目录 |
.. |
代表上级目录 |
ls [选项] 目录名称
,主要功能是显示当下目录的内容。选项 | 含义 |
---|---|
-a |
显示所有文件,包括隐藏文件 |
-d |
仅列出目录本身,而不列出目录内的文件数据 |
-F |
在文件或目录名后加上文件类型的指示符号 |
-h |
以易读的方式显示文件或目录大小 |
-l |
用长格式列出文件和目录信息 |
-n |
以UID和GID分别代替文件用户名和群组名显示出来 |
-r |
排序结果反向输出 |
-R |
连同子目录一同输出 |
-S |
以文件容量大小排序 |
-t |
以时间先后排序 |
ls -ail
命令最为常用细心的大家一定发现了,输入命令
ls -l
后的第一列会有一些字符,这些字符其实指的是文件类型和不同的用户对文件所拥有的权限,具体的字符含义如下
第一列字符 | 含义 | 其他列字符 | 含义 |
---|---|---|---|
- |
普通文件 | r |
读 |
d |
目录 | w |
写 |
l |
链接文件 | x |
可执行 |
b |
块设备文件 | ||
c |
字符设备文件 |
想要了解清楚ln命令,首先要了解ext4文件系统
ls -l
显示的信息)inode默认128字节,用来记录文件的权限(r,w,x)、文件的所有者和属组、文件的大小、文件的状态修改时间(ctime)、访问时间(atime)、数据修改时间(mtime)、文件数据真正保存的block编号。每一个文件需要占用一个inode。
block默认4KB,用于实际的数据存储。一个文件的内容可以存在多个block中,但block只能存放同一个文件的内容,不能放入其他文件的数据。
每一个文件独自占用一个inode,文件内容由inode来指向;如果想要读取文件内容,就必须借助目录中记录的文件名找到该文件的inode,才能找到文件内容所在的block。
整体流程:文件——>inode——>block——>文件数据
而根据Linux系统储存文件的特点,链接的方式分为以下两种:
软链接
类似于windows的快捷方式,即产生一个特殊的文件,该文件用于指向另一个文件
硬链接
给文件的inode分配多个文件名,通过任何一个文件名,都可以找到此文件的inode
ln [选项] 源文件 目标文件
-s
创建软链接文件,不加则创建硬链接文件硬链接特点:
软链接特点:(与windows的快捷方式一模一样)
所谓权限管理,其实就指对不同的用户,设置不同的文件访问权限,包括对文件的读、写、删除等。
Linux系统最常见的文件权限有3种,即对文件的读(r)、写(w)和执行(x)权限。在linux系统中,每个文件都明确规定了不同身份用户的访问权限,通过ls命令可以看到。
那么,
r w x
三个权限的具体含义是什么呢?
注意:同一权限对文件和目录的作用是不同的
权限 | 对文件的作用 | 对目录的作用 |
---|---|---|
读权限 r | 可以读取此文件中的实际内容 | 可以读取目录结构列表 |
写权限 w | 可以编辑、新增或者修改文件中的内容 | 可以在目录中建立、删除或者更名文件与目录 |
执行权限 x | 表示该文件具有被系统执行的权限 | 表示用户可以进入目录 |
文件的基本权限由9个字符组成,如 rwxrw-r-x
就是由九位字母组成。可以使用数字来代表各个权限。其中:r代表4,w代表2,x代表1。那么,上式中的 rwxrw-r-x
就可以完美的转换为 765
。由此,通过一串数字,我们就可以更改文件的权限,如 chmod 777 study.exe
chmod 权限值 文件名
,如果加选项 -R
表示连同子目录中的所有文件,也都修改为设定的权限。Linux系统通过使用umask默认权限来给新建的文件和目录赋予初始权限的。
那么怎么查看umask默认权限的值呢?
-------w-
那么,就有:文件(或目录)的初始权限=文件(或目录)的最大默认权限-umask权限
,而文件与目录的最大初始权限又是不同的。
种类 | 字母符号 | 数字 |
---|---|---|
文件 | rw-rw-rw- |
666 |
目录 | rwxrwxrwx |
777 |
umask xxx
就可以修改,但这样的修改是临时性的,一旦重启或者重新登录就会失效。chown 所有者:所属组 文件或目录
,主要用于修改文件(或目录)的所有者,也可以用来修改文件(或目录)的所属组。-R
选项表示连同子目录的所有文件,都更改所有者chgrp 所属组 文件名(目录名)
,用于修改文件(或目录)的所属组。-R
选项表示连同子目录的所有文件,都更改所属组。这章终于结束了5555555555
ps [选项]
,此命令可以查看系统中所有运行进程的详细信息。推荐的选项 | 作用 |
---|---|
-aux |
查看系统中所有的进程 |
-le |
查看系统中所有的进程及其父进程的PID与进程优先级 |
-l |
只能查看当前shell产生的进程 |
ps -aux
各个字段的含义如下:
字段 | 含义 |
---|---|
USER |
进程是由哪个用户产生的 |
PID |
进程的ID |
%CPU |
进程的CPU使用率 |
%MEM |
进程的物理内存使用率 |
VSZ |
进程占用虚拟内存的大小 |
RSS |
进程占用实际物理内存的大小 |
TTY |
进程是在哪个终端运行的 |
STAT |
进程的状态: S 睡眠,R 正在运行,T 停止,< 高优先级,N 低优先级,L 锁入内存,l 具有多线程,+ 位于后台 |
START |
进程启用的时间 |
TIME |
进程占用CPU的运算时间 |
COMMAND |
产生进程的命令名 |
ps -le
字段 | 含义 |
---|---|
F |
进程标志,说明进程的权限(1是可复制不可执行,4是使用超级用户权限) |
S |
进程的状态 |
UID |
运行进程的用户的ID |
PID |
进程的ID |
PPID |
父进程的ID |
C |
进程的CPU占用率 |
PRI |
进程的优先级,数值越小,进程的优先级越高,越早被CPU执行 |
NI |
进程的优先级,数值越小,进程越早被执行 |
ADDR |
进程所在的位置 |
SZ |
进程占用的内存大小 |
WCHAN |
进程是否运行,- 代表正在运行 |
ps -l
就足够了。pstree [选项] [PID或用户名]
,用于以树形结构显示程序和进程之间的关系。选项 | 含义 |
---|---|
-a |
显示启动每个进程对应的完整指令 |
-c |
显示的进程中包含子进程和父进程 |
-n |
根据进程PID号来排序输出 |
-p |
显示进程的PID号 |
-u |
显示进程对应的用户名称 |
用pstree显示用户的所有进程并显示UID号:
top [选项]
,主要用来动态地持续监听进程的运行状态。该命令还提供一个交互界面,用户可以根据需要,人性化地定制自己的输出。选项 | 含义 |
---|---|
-d 秒 |
指定top命令每隔几秒更新 |
-b |
使用批处理模式输出 |
-n 次数 |
指定top命令执行的次数 |
-p 进程PID |
仅查看指定ID的进程 |
-s |
使top命令在安全模式中运行 |
-u 用户名 |
只监听某个用户的进程 |
是不是很像windows管理器的呢 /doge
在这个界面下,还可以使用如下按键进行交互操作:
按键 | 作用 |
---|---|
P |
按照CPU的占用率排序 |
M |
按照内存的占用率排序 |
N |
安装PID排序 |
T |
按照CPU的累计运算时间排序 |
q |
退出top命令 |
-b
和-n
选项了,具体如下:top -b -n 1 > top.log
,就可以把结果保存到top.log
这个文件中,就可以看到所有的进程了。lsof [选项]
,就是列举系统中已经被打开的文件,通过该命令可以根据文件找到对应的进程信息,也可因此找到进程打开的文件。选项 | 含义 |
---|---|
-c 字符串 |
只列出字符串开头的进程打开的文件 |
+d 目录名 |
列出某个目录中所有被进程调用的文件 |
-u 用户名 |
只列出某个用户的进程打开的文件 |
-p PID |
列出某个用户的进程打开的文件 |
进程的管理主要是指进程的关闭与重启。进程的关闭要依赖进程的信号(Signal)。可以用命令 kill -l
来查询。
信号代码 | 信号名称 | 说明 |
---|---|---|
1 | SIGHUP | 使进程立即关闭,重新读取配置文件之后重启 |
2 | SIGINT | 程序终止信号,用于终止前台进程 |
8 | SIGFPE | 在发生致命的算数错误时发出 |
9 | SIGKILL | 立即结束程序的运行(一般用于强制终止进程) |
14 | SIGALRM | 时钟定时信号,计算的是实际的时钟或时钟时间 |
15 | SIGTERM | 正常结束进程的信号,kill命令的默认信号 |
18 | SIGCONT | 该信号可以让暂停的进程恢复执行,该信号不能被阻断 |
19 | SIGSTOP | 该信号可以暂停前台进程,该信号不能被阻断 |
kill [-信号] PID
,用来向进程发送一个用户指定的信号。killall [选项] [-信号] 进程名
,与kill
命令不同的是,killall
命令不再依靠PID来杀死单个进程,而是通过程序的进程名来杀死一类进程。选项 | 含义 |
---|---|
-i | 交互式询问是否杀死进程 |
-I | 忽略进程名的大小写 |
pkill [-信号] 进程名
,但与killall
命令不同的是,pkill
可以按章终端号来踢出登录用户,命令的基本格式是 pkill [-信号] [-t 终端号] 进程名
。通过命令 w
查看本机已登录的用户,并用命令 pkill -9 -t pts/0
结束另外一个用户的进程:
Linux系统中通常运行着非常多的进程,但是CPU在一个时钟周期内只能运算几条指令,那么,谁应该先运算谁应该后运算呢?这就需要由进程的优先级来决定了
PRI
(Priority) 和 NI
(Nice)。ps -le
可以查看进程的优先级PRI(最终值)=PRI(原始值)+NI
修改NI值时有几个注意事项:
nice [-n NI值] 命令
,该命令可以给要启动的进程赋予NI值,但是不能修改已运行进程的NI值。硬盘可分为机械硬盘(Hard Disk Drive)和固态硬盘(Solid State Disk)。
分区号 | 分区类型 |
---|---|
0x5或(0xf) | 可扩展分区 |
0x82 | Linux交换区 |
0x83 | 普通Linux分区 |
0x8e | Linux逻辑卷管理分区 |
0xfd | Linux的RAID分区 |
硬盘分区的作用:
该命令的常见格式有以下两种:
mount -l
用于显示系统中已挂载的设备信息,-l
会额外显示出卷标名字mount -a
自动检查/etc/fstab
文件中有无银疏漏而未被挂载的设备文件,如果有,则进行自动挂载操作。df [选项] [目录或文件名]
,用于显示Linux系统中个文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等。选项 | 含义 |
---|---|
-a |
显示所有文件系统信息 |
-m |
以MB为单位显示容量 |
-k |
以KB为单位显示容量 |
-h |
使用KB、MB或GB等单位自行显示容量 |
-T |
显示该分区的文件系统名称 |
-i |
不显示硬盘容量而显示inode的数量 |
Monuted on
: 文件的挂载点,也就是硬盘挂载的目录位置
du [选项] [目录或文件名]
,是用来统计目录或文件所占磁盘空间容量的。选项 | 含义 |
---|---|
-a |
显示所有子目录和子文件的磁盘占用量 |
-h |
使用习惯单位显示磁盘占用量 |
-s |
统计总磁盘的占用量 |
注意:使用
du
命令和df
命令去统计分区的使用情况时,得到的数据是不一样的。du
命令是通过搜索文件来计算每个文件的磁盘占用量,然后累加的;df
命令记录的是通过文件系统获取文件的磁盘占用量,可以看得到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了。
fsck [选项] 分区设备文件名
,主要用来检查文件系统并尝试修复出现的错误。选项 | 含义 |
---|---|
-a |
自动修复文件系统,无提示信息 |
-r |
采取交互式的修复模式 |
-A |
按照/etc/fstab 配置文件的内容检查文件内罗列的文件系统 |
-t 文件系统类型 |
指定要检查的文件系统类型 |
-C |
显示检查分区的进度条 |
-f |
强制检测所有磁盘 |
-y |
自动修复(部分文件系统仅支持-y 指令) |
(R0一时爽,数据火葬场)
由两块及以上硬盘组成,每一组数据差分储存到不同硬盘之中
由两块硬盘组成,一个硬盘作为另外一个硬盘的复制盘
(我个人认为性价比最高的存储方式)
由三块及以上的相同硬盘组成,一块硬盘作为奇偶校验值,其他盘用于存储数据,当任何一块盘损坏时,都可以用奇偶校验值进行恢复。
通常,联网操作是通过机器上的PCI设备,即网络接口卡来实现的。通过命令lspci
可以验证给出的PCI设备是否能被内核检测到。
VM上的显示的接口很杂乱,为此,博主用树莓派上的Linux系统来展示
常用的Linux接口名称和类型:
名称 | 类型 |
---|---|
eth0 | 以太网 |
lo | (虚拟)回环设备 |
ppp0 | 使用PPP协议的串口设备 |
tr0 | 令牌环 |
fddi0 | 光纤 |
输入命令 ifcondig -a
可以检测所有目前已被识别的网络接口信息
啊 这章好难 书上写的好乱 我跳过了
sudo yum install openssh*
安装OpenSSH。# sudo firewall -cmd --zone=public -add-port=22 /tcp --permanent
# sudo service firewall restart
OpenSSH的主配置文件为 /etc/ssh/sshd_config
,可以通过Vim编辑器进行编辑,下面列出一些常见的配置选项:
配置选项 | 配置方法 |
---|---|
设置SSH的端口号为22 | Port=22 |
启用SHH版本2协议 | Protocol 2 |
设置服务器监听的地址 | ListenAddress 192.168.0.222 |
设置IPV6地址 | ListenAddress |
拒绝访问的用户(用空格隔开) | DenyUsers Kobe James |
允许访问的用户(用空格隔开) | AllowUsers root Nicholas |
禁止root用户登录 | PermitRootLogin no |
用户登录需要密码认证 | PermitEmptyPasswords no |
启用口令认证方式 | PasswordAuthentication yes |
是否显示登录提示信息 | PrintMotd yes |
是否使用DNS解析 | UseDNS yes |
service sshd status
可以查看SSH服务是否正在运行,如果没有正常运行,可以通过指令 service sshd start
开启或者 service sshd restart
重启。OpenSSH采用密钥的方式对数据进行加密,在正式开始传输数据之前,双方先要交换密钥,当收到对方的数据时,再利用密钥和相应的程序对数据进行解密。
使用ssh
命令登录的时候一般格式是 ssh [user@] host [选项]
,使用ssh以root身份登录远程主机,执行ssh远程登录命令后,需要输入登录密码。在终端输入exit
或logout
退出登录,返回本机,退出成功后,终端会提示与远程主机断开连接。
选项 | 含义 |
---|---|
-p port |
远程服务器监听的端口 |
-b |
指定连接的源IP地址 |
-v |
调试模式 |
-C |
压缩方式 |
-X |
支持x11转发 |
-t |
强制伪tty分配 |
scp [user@host1:]file1 [user@host2]file2
,第一个参数是源文件,第二个参数是目标文件。scp username@servername:/path/test.txt
scp -r username@sername:/etc/github/(远程目录) /etc/download/(本地目录)
scp /path/test.txt username@servername:/path
scp -r /etc/upload/(本地目录) username@servername:/etc/github/(远程目录)
好的,就到这里结束啦,开心~
一路上还是挺累的,又是上课又是做项目的,也是断断续续学完的
但是还有Vim编辑和shell编程还没学,我会单独写两篇Blog的
希望能早点回学校吧,图书馆借的书没有带回来,shell是学不了了555
路还很长,继续加油吧╰( ̄▽ ̄)╭
请在转载文章过程中明确标注文章出处!尊重原创,尊重知识产权,谢谢!