1. 常见命令
1.1 cd指令
- cd - 跳转上一次所处的路径中
- cd ~ 回到家目录
- cd .. 回到上级目录
1.2 touch指令
- touch 文件名 创建文件
-
touch 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件
1.3 mkdir指令(重要)
- mkdir -p 目录路径 创建一系列目录
1.4 man指令(重要)
- man是访问linux手册的命令
man手册一共有8章,重点关注前3章
第一章 |
是普通的命令
|
第二章 |
是系统调用
,如open,write之类的(通过这个, 至少可以很方便的查到调用这个函数,需要加什么头文件) |
第三章 |
是库函数
,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
|
1.5.cat指令
- cat -n 文件名 打印目标文件内容并加上行号
- tac 文件名 逆序打印目标文件内容
1.6. stat 命令
- stat 目录或文件 查看目录或文件的属性
1.7. more指令
- more和cat类似,不过more会满屏显示,more不支持小键盘,查看需要按回车键,退出按q
注意:more只能往下翻,不能查看前面的
1.8.less 指令(重要)
- less是一条比more更好用的命令,less不仅支持小键盘,还有很多选项,更加方便我们随意访问文件
选项:
-
-i 忽略搜索时的大小写
-
-N 显示每行的行号
-
/ 字符串:向下搜索“字符串”的功能
-
? 字符串:向上搜索“字符串”的功能
-
n :重复前一个搜索(与 / 或 ? 有关)
-
N :反向重复前一个搜索(与 / 或 ? 有关)
-
q :quit
1.9.head 指令
- head 文件,默认显示文件的前10行
- head -n<行数>,显示文件的前n行
1.10 tail 指令
- tail -n 文件,查看文件的后n行
1.11 date 指令
- date +%Y/%m/%d-%H:%M:%S 将时间转换成我们熟系的时间
- 时间戳是从1970年1月1日00:00开始到现在的秒数
1.12 which 指令
- witch 其他指令,查找其他指令所在的位置
1.13 whereis 指令
- whereis和which类似,不过whereis是在系统路径中去查找特定的指令所在的路径
1.14 alias 指令
- alias:给命令起别名,不过重新登录效果就会消失
1.15 cal 指令
- cal -y 年份 显示某年的日历
- cal -3 显示前一个月,这个月,后一个月的日历
1.16 find指令
- find -name 文件名 查找文件
1.17 grep指令
- grep是一条十分好用的指令
常用选项:
- -i :忽略大小写的不同,所以大小写视为相同
- -n ;顺便输出行号
- -v :反向选择,就是把搜寻字符串之外的内容输出来
- grep -E ^查找的字符 文件 ,查找文件中以某个字母开头的内容
1.18 xargs指令
- xargs :将管道的输出结果,作为命令行参数,交给后面的程序
1.19 zip/unzip指令
- zip -r 名字.zip 要压缩的目录,-r 一般都是递归的意思
- unzip 要解压的压缩包 -d 解压到的路径(如果目录不存在,就会创建)
1.20 tar指令(重要):打包/解包
- tar -czvf 名字.tgz 要压缩的目录,-v 这个选项是否显示压缩的过程
- tar -xzf 要解压的压缩包 -C 解压到的路径, (这里的路径必须要存在)
1.21 lrzsz指令
实现本地机器和云服务器之间的文件互传
安装命令: sudo yum install lrzsz
- rz -E 实现本地 -> 云服务器
- sz 文件名 实现云服务器 -> 本地
1.21 uname –r指令:
- uname用来获取电脑和操作系统的相关信息
- uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息
1.22 top指令
Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
- -u<用户名> 指定用户名
- -p<进程号> 指定进程
- -n<次数> 循环显示的次数
1.23 history 指令
- history > 文件,将历史指令输出到指定文件中
1.24 shutdown 指令
- -h : 将系统的服务停掉后,立即关机。
- -r : 在将系统的服务停掉之后就重新启动
- -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思
注意:云服务器一般不用关机
1.25 重要的几个热键[Tab],[ctrl]-c, [ctrl]-d
- [Tab]按键---具有『命令补全』和『档案补齐』的功能
- [Ctrl]-c按键---终止当前程序
- [Ctrl]-d按键---退出服务器连接
2. shell命令以及运行原理
- Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)
我们是如何访问操作系统?
- 通过图形化界面或者指令操作访问操作系统
图形化界面和指令操作是什么东西?
- 操作系统提供的外壳程序,它是用户和操作系统交互中间软件层
- 可以在一定程度上,起到保护操作系统的作用
为什么我们不是直接访问操作系统而是通过外壳程序?
- 人是不善于直接使用操作系统,就像一个开车的人是不善于组装车,与车个个组件交互的
- 如果让人直接访问操作系统,操作成本特别高,而且人会犯错,会带来不安全的因素
2.1 shell的作用
类似中转站
-
主要是对我们的指令进行解析, 解析指令 给 Linux 内核。
-
反馈结果在通过内核运行出结果,通过shell 解析给用户,即使指令是错误的,也会 反馈给用户
3. Linux权限管理
文件访问者的分类(人)-ugo
- 文件和文件目录的所有者:u---User(中国平民 法律问题)
- 文件和文件目录的所有者所在的组的用户:g---Group(不多说)
- 其它用户:o---Others (外国人)
文件类型和访问权限(事物属性)
- r是读,w是写,x是可执行
3.1 改变文件权限的两种方案
3.1.1 方案一
- 这里的chmod就是一条改变文件权限的命令,
- chmod u+...,g+...,o+...filename,chmod u-...,g-...,o-...filename
3.1.2 方案二
对于文件来说r--表示有读权限,但是没有写权限和执行权限,用的是--来表示
所以我们可以使用二进制中的0和1来表示,0代表-,1代表r或w或x
- 这里的664代表-110100100等价于-rw-r--r--
3.2 改变文件访问者权限的两种方案
没有改变其他人的命令,因为除了拥有者和所属组就是other
3.2.1 方案一
3.2.2 方案二
- 如果测试的时候有权限的限制,加sudo提升权限就行了
- 没有修改other的指令,因为访问者不是用户,不是所属组,就是other
3.4 权限掩码umask对最终权限的影响
- 目录的起始权限是从777开始,普通文件的起始权限是从666开始
- 最终权限 = 起始权限 & (~umask)
3.5 各个权限的作用
- 想要进入目录的话必须要有x权限
- 查看目录下面的文件列表必须要有r权限
- 要在目录下创建文件或者目录必须要有w权限
4. Linux中的粘滞位
- 在一个目录下,能否对目录中的文件进行创建和删除,与目录的w权限有关,
- 大家所有用户都在一个共同的路径下,对该目录具有读写执行权限,这种情况下别人就可能把自己的文件删除了,(可以取消目录的w权限,但是自己也不能删除自己的了),所以引入了粘滞位的概念
- chmod +t 目录,设置粘滞位,只能对目录进行设置,而且谁设置只能谁取消,除了root外
- 这里是lyc创建的目录,且这个目录有w权限,所以lyc是可以对这个目录下所有文件进行删除的
- 这里是lyc创建的目录,在没有给目录设置粘滞位之前,lt虽然不能访问,但是可以删除lyc创建的文件
4.1 小结
当一个目录被设置为粘滞位,则该目录下的文件只能由
- 超级用户删除
- 该目录的拥有者删除
- 该文件的拥有者删除