Linux,Linux Is Not UniX 的递归缩写,一般指GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个遵循POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
Linux由众多微内核组成,其源代码完全开源。
Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈。
Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性。

Linux概念图
每日怪问:
1.进入目录需要哪个权限,是r,w还是x?
2.文件或目录创建好后Linux是怎么为我们设置默认权限的?
若是读者对上述问题感兴趣,可直接点击目录中第三部分查看说明。
首先,我们为什么要学习指令?指令(命令行)是学习Linux的重要手段,在系统看来如windows的图形化界面与Linux的命令行没有区别,都是与计算机交互的方法之一。
Linux下的指令已超过4位数,但常用的也就是几十位,下面就常见的指令给出基本使用方法。
功能:该指令列出该目录下的所有文件与子目录。
常用选项:
-a:列出所有文件,包括隐藏文件。
-l:列出文件的详细信息。
-d:显示文件夹的详细信息,而不是其下的文件。
-R:递归列出所有子目录下的文件。
lscpu:查看目前机器的中央处理器规格
lsmem:查看目前机器的内存规格
使用方法:

补充:在ls -a列出的文件中看到有三个点:在Linux中,文件以 ' . ' 开始的一般是隐藏文件,比如这三个点,前一个点“.” 代表着本目录的路径,’. .‘代表着上级目录。

在日常使用中以“ll”指令居多,它是ls-l的简称,方便快捷。

功能:显示当前路径
使用方法:

功能:切换路径,后跟目标文件的路径
常用选项:
~:进入当前用户的工作目录。
-:回到上一次的路径
使用方法:

补充:系统文件目录的组织是类似于倒立的树(不一定是二叉树),目录的本质是容器,除了叶子节点可以是文件,根及叶子节点只能是容器(文件是没法做容器的)。


补充:绝对路径,相对路径。路径具有唯一性!

功能:显示当前谁在使用系统
使用方法:

补充:who指令:查看当前主机在线用户
功能:创建普通文件,更改文件的修改时间(前提是该文件已经被创建)。
使用方法:

补充:文件 = 内容 + 属性(如创建时间等)

功能:创建一个空目录。
常用选项:
-p:创建一串目录。
使用方法:

功能:删除文件或目录。
常用选项:
-r:递归删除(用于删除目录及其内子目录或文件)
-f:强制删除
-i:删除前询问是否删除
使用方法:

功能:查询指令或函数的使用方法,按q退出说明手册
使用方法:


功能:拷贝文件或目录,cp src(源文件路径) des(目标路径)
这里体现了上述补充中的的路径具有唯一性
常用选项:
-r:递归复制(用于将目录中的文件或子文件递归复制到目的路径)
-rf:强制拷贝
-i:拷贝前询问(用于该路径已有同名文件或目录,是否覆盖)
使用方法:

功能:剪切文件或目录到目的路径,更改文件目录名。
使用方法:

功能:记事本,打开文件,ctlr + x退出。若有增删内容,ctlr + x后接y + enter。
使用方法:


功能:查看文本
常用选项: -n:同时打印行数
使用方法:

功能:倒着打印文本(cat的倒转)
注意:tac指令无-n选项
使用方法:

功能:将文件打印在屏幕上,但之铺满屏幕(适合查看大文本),按下enter后继续打印
常用选项:
-n(数字):一次打印n行,方便查看
使用方法:

补充:more的搜索功能


功能:同more,但可用上下键翻动方便查看
功能:默认打印前10行内容
常用选项: -n(数字):打印前n行
使用方法:

功能:同head,但倒着打印
使用方法:

功能:打印日期
常用选项:

使用方法:

功能:打印日历,后跟年份
常用选项:
-3:打印前后共三月日历
使用方法:

功能:搜索目标文件,若为找到还可能取硬盘找故效率可能较低。
find 路径 文件名。
常用选项: -name:搜索文件
(find还有很多其他选项,一般常用的就-name,若有需要请查询相关文档)
使用方法:

功能:搜素指令
使用方法:

功能:在文本中匹配关键字,将匹配上的行输出
常用选项:
-n:同时打印行号
-i:查找时忽略大小写
-v:将不匹配的行输出
使用方法:

功能:按asccl码值对文本内容进行排序后打印
使用方法:

功能:将相邻行去重,是相邻行
使用方法:

补充:管道,多个指令一起执行


功能:将后接的字符串输出
常用选项:
>>:将字符串定向写入目标文件
使用方法:

注意:
< : echo < "字符串",这会覆盖文件中原有内容;
<< : echo << "字符串",这是先文件末尾追加内容。
功能:Linux下的计算器,输入quit停止
使用方法:

功能:显示当前系统
常用选项: -a:显示系统详细信息
-r:查看系统内核版本
使用方法:

功能:制作压缩吧/解压缩包
选项:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?
-j :是否同时具有 bzip2 的属性?
-v :压缩的过程中显示文件!
-f :使用档名
-C : 解压到指定目录
常用组合: tar + czf + 压缩包名 + 被压缩的文件或目录:压缩

tar + xzf + 压缩包名:解压缩

ctlr + r:搜素历史指令
ctlr + C:终止当前指令或程序的运行
ctlr + d:退出当前用户
tab:自动补全指令
root:超级管理员,root可通过su/su - 切换成普通用户
其余用户均为普通用户,普通用户切换为root需要密码。
sudo指令:在不切换用户的情况下,让普通用户以root方式运行指令。在指令之前添加sudo。
权限 = 身份 +属性
比如:
身份:你是名学生,你可以回宿舍躺着,但外面大街上的某人不行,因为他不是该校学生。
属性:腾讯视频可以看视频,但不能刷OJ,因为它没有那个功能属性。


文件的属性包括:r(读)、w(写)、x(执行)
还记得上面补充的:文件 = 内容 + 属性
在Linux中,文件最前面有10个字符,他们分别表示:文件类型,三种身份的权限




补充:
①虽然Linux不认.txt等文件类型,但不意味着可以随便更改,因为Linux中的一些程序严格区分文件后缀名,典型如gcc编译时文件后缀名就必须是.c。使用文件名最好不要乱动。
②

最前面的10列字符,出去第一列的文件类型后,还剩9列,每个身份各列分别对应:r、w、x,若有权限则显示r/w/x,无则显示_

答:便于系统进行安全管理。
在知道了文件的权限后,是否可以修改权限?答案是可以的:
①是文件拥有者(onwer)可以修改文件权限;②是超级管理root可以修改权限
权限 = 身份 + 属性,也就是说可以改身份,也可以改属性
功能:修改文件某身份的权限属性
使用方法:chmod u/g/o +/- r/w/x 文件名


值得注意的是文件的权限修改是针对普通用户的,root没有权限一样访问。
前面提到每个身份各有3列,若是将有权限看作1,没有权限看作0,那么每个身份的权限可用一个八进制数表示。
使用方法:chmod 八进制数 文件名

使用方法:chown 新用户名 文件名
注:唯有root或者sudo后的普通用户才可修改身份,否者是不被允许的,如下

使用方法:chgrp 新所有组 文件名
注意:同上chown,唯有root和sudo用户可修改所有组,否则失败

一个Linux中的公共目录,所有用户都可在此进行临时文件的操作,只能由root创建。
1)粘滞位公共目录只能由root创建或者更改(这里的更改指只有root才能将普通目录修改为公共目录),故除root外的其他用户全是属于other;
2)为防止普通用户之间互删文件,粘滞位公共目录有一个特殊的文件权限 ’t‘;


3)当一个目录被root设置为粘滞位后,该目录中的文件只能被:
①root删除
②目录的拥有者(创建者)删除(故一般粘滞位都由root直接创建而不是在其他人的目录进行修改)
③文件的拥有者删除;

在Linux中这样的公共目录(粘滞位)一般是根目录下的tmp目录
Linux规定:
目录 起始权限是 777
普通文件 起始权限是 666
但是但我们创建一个空目录或文件后,发现各身份权限与初始权限不同?

umask:权限掩码,有四位,第一位是八进制标识,只看后三位。umask的值系统是默认0002,我们也可按需更改。



我们创建一个普通文件看看权限是否一致:

除去第一列文件类型,后三位身份位权限一致。
经过笔者实验:

x:进入目录所需权限;
r:进入目录后能“ls”查看目录中内容的权限;
w:进入目录后能创建文件或子目录的权限。
从该实验也侧面印证了目录的初始权限是777,因为目录被创建出来一般都要能进入。
笔者水平浅薄,若有错误的地方还请大家指出批评,笔者看到马上就会更改的