Linux——入门
前言:大佬写博客给别人看,菜鸟写博客给自己看,我是菜鸟
本篇涵盖:
①:初识Linux基础指令以及用法(只谈常用的)
②:补足一些有关Linux的常识
一、Linux基础指令及用法
容易记住的:
ls-la:l 显示当前目录中文件详细信息;a 显示隐含文件
pwd:显示用户当前目录
cd 目录名:进入指定目录
touch 文件:创建一个文件
mkdir 目录:创建一个目录
mkdir -p 目录/目录1/目录2: 递归创建多个目录
rm -rf 文件名/目录名:删除所有文件或目录,r递归,f强制
容易忘记/记错的:
cat -[选项] 文件:查看目标文件内容
-n:对输出的所有行编号
-s:不输出多行空行
演示:
cat test.c 查看:
cat -ns test 查看:
cp -rf 目标路径/指定目录 目标路径/目录名:复制目录到目标路径并重新命名
cp 目标路径/文件 目标路径/文件名:复制文件到目标路径并重新命名
注:不加文件名就以原名称命名
演示:
将test.c 复制到 p2,并重命名为ka.c
将p3 复制到当前目录,并重命名为yo
实现:
mv 目标路径/目标文件or目录 目标路径/(新文件名or目录名) :移动文件or目录
注:原路径的文件or目录会被删除
演示:
将p3中的ka.c 移动到当前目录,并命名为ko.c
find /路径 -name 目录名or文件名:寻找对应名称的目录or文件
find /路径 -name '*.txt':寻找所有以 .txt 结尾的文件
find /路径 -name '*.c':寻找所有以 .c 结尾的文件
演示:
寻找ka.c的路径
显示114目录中所有.c结尾的文件
grep -[选项] "字符串" 目标路径/目标文件:打印目标文件中所有包含该字符串的整行内容
-i:忽略大小写
-n:输出对应行号
演示:
找到ko.c中的字符串 "kayoko"
zip -r 压缩的文件名.zip 目标路径/目录名:压缩目标路径下的目录
zip 压缩的文件名.zip 目标路径/文件名:压缩目标路径下的文件
演示:
将p1和ko.c压缩
unzip 文件名.zip :解压到当前路径
unzip 文件名.zip -d 目标路径 :解压到其他路径
演示:
将ko.zip 解压到p3目录下
tar -czf 文件名 .tgz 目标文件:压缩目标文件tar -xzf 目标文件 .tgz: 解压目标文件到当前文件夹tar -xzf 目标文件.tgz -C(大写 ) 目标路径: 解压到指定路径中与zip unzip 类似不做演示
二、Linux相关常识
1、文件 = 文件内容 + 文件属性,二者都是数据,都需要保存起来
2、Linux下,一切皆文件
3、前面所讲的基础指令其实是特定系统路径下的程序,通过which可以找到相应位置
Linux权限:
1.什么是权限?
a.权限是用来限制人的。人 = 真实的人 + 身份角色
b.目标事物的属性,也会影响权限
权限 = 角色 + 事物属性 → 最终决定你在Linux 系统中能否完成一件事
2.认识人----root、普通用户、其他人
root(超级管理员):几乎不受权限的约束
普通用户:Linux的使用者,收到权限的约束
注:一个系统可以有多个普通用户使用该系统,不同使用者在登录时会默认进入自己的家目录,不同用户之前想要访问对方的家目录必须输入对方的密码,但是root可以切换至任何用户
普通用户可以输入 sudo 以 root身份 执行一条指令,前提是:root用户给普通用户加了白名单,让普通用户成为 sudoers 中的一员
3.认识Linux中的角色----文件拥有者、文件所属组、other
图中 1 2 分别对应为 拥有者 和 所属组
举个例子说明一下所属组和other的区别:
假设A 和 B 在同一家公司,某天他们写了同一份代码,老板C想看,但是A和B又不想给对方看,那么只需给老板C所属组的角色,并打开所属组的读权限和关闭other的任何权限,就能让老板访问,而不让other看。
图中1 2 3 分别对应:拥有者权限、所属组权限、other权限
三个字母为一组,分别对应:r读权限,w写权限,x执行权限。
作为文件的 拥有者 或 root,可以通过以下指令来修改文件or目录的权限
👉:chmod u-r 指定文件 去掉拥有者指定文件的读权限👉:chmod g-r 指定文件 去掉所属组指定文件的读权限👉:chmod o-r 指定文件 去掉其他人指定文件的读权限👉:chmod u-r,g-r,o-r 指定文件去掉所有人指定文件的读权限👉:chmod a+r 指定文件 加上所有人指定文件的读权限👉:chmod a+rwx 指定文件 加上所有人指定文件的所有权限
除了上述修改文件or目录权限的方法外,还可以通过以下方法👉:chmod bbb 目标文件/目录注:b 是二进制下对应的十进制数字,例如:假设 test.c 的权限为 -rwxrwxrwx,对应的二进制为 -111 111 111,以三个数为一组,对应的 十进制数就是 -777那么通过 chamod 000 test.c 就能够将 test.c的权限修改为所有用户 不可读/写/执行
4.有关权限的其他三个问题
权限缺省:每一个文件被创建时都拥有权限,这个权限是由起始权限+权限掩码所决定的1、普通文件的起始权限为:666,目录文件的起始权限为:7772、umask(权限掩码)3、最终权限(缺省权限) = 起始权限 & (~umask)注:可以通过修改权限掩码来修改文件的最终权限
目录权限(没有的情况下):r: 无权查看指定目录下的文件信息w: 无权在指定目录内部,新建、删除、修改文件名等修改文件的操作x:无权进入一个目录
粘滞位:在Linux多用户下,对于文件的访问是隔离的(不能在普通账号的家目录中,否则别人没法访问了),我们想要不同账号之间共享文件只能在其他目录下(不能是家目录)。问题:假设 A 为 test.c 文件的拥有者,B 为该文件的所属组,C为other,目标文件对C没有任何权限,为什么C能够删除 test.c?答:因为该权限由所在目录的W决定,与目标文件无关。为了避免上述情况,就需要用到粘滞位,只能够给目录设置,不能给普通文件设置。指令:chmod +t /目标目录