Linux入门级教学-常见指令及其权限理解

1.了解一些基本指令

2.了解shell命令

3.了解权限概念

4.权限的三大问题

  • Linux下基本指令

ls:显示当前目录下的文件列表

mkdir:在当前路径下 创建一个目录

pwd:显示当前我所处的路径

cd:进入指定的目录

touch:创建指定的普通文件

 以root身份进入 pwd可知当前所处路径

 

 使用ls指令可显示当前目录下的文件列表  root底下有dir 和 dir.zip文件

 

 通过tree可知 确实如此

使用mkdir 我们创造一个目录名为new_dir的新目录 

使用mkdir格式为        mkdir + 目录名

 

 使用cd指令进入该目录 cd + new_dir

 

 touch指令可以在目录底下创建文件 使用touch + new_file 创建文件

whoami 查看我是谁指令

指针还可以附加功能

ls -l 其中-l是 显示文件的更多信息 ls是指令 -l是指令选项

还有-a 显示更多的隐藏文件

 

 cd指令

cd “你想要进的目录” //当目录名称中含有空格、中文或其它特殊字符时请用双引号包括

以下是最常用的几个目录的写法:

1、/ 代表根目录

2、.当前目录

3、… 上级目录

4、~ 当前用户的默认工作目录

注:目录可以省略不写, 与cd ~ 有相同的效果。

Linux系统根目录/ 结构 和二叉树类似 

cat 打开文件内容

stat 查看文件的所有属性 

我们在new_dir目录下用nano(文本软件)写了句 Hello world 在new_file.c中

通过cat指令可以看见该文件的内容 

 通过stat指令可以查看到文件的属性

那我们该如何删除目录 和文件呢?

rm指令 rmdir指令 但rmdir指令只能删除空目录 基本没什么用

rm new_file (无内容) 

rm new_file.c (有内容)

看看会是什么样的效果  

 

无内容的new_file被轻松的删除了 

 

而有内容的new_file.c也是轻轻松松删除 由此可见 rm 可以对任意文件删除

 如果我们想删除非空目录 该怎么办呢

rm -r 目录名 

 

man指令

man命令是linux下查找shell命令、函数等使用方法的利器。

最简单的使用方式是man <the thing you want>
man man 可打开man这个指令的使用手册 再按Q(quit)即可退出

 

cp指令 拷贝 可以参考win上ctrl+cv

mv指令 剪切文件

echo "xxxx"显示到显示器上 我们向显示器打印 可以理解成写入到显示器 等等 显示器也可以写入? 对 可以把显示器也看作是一种文件

echo "xxxx" > mylog.txt 本来应该是显示到显示器上面的文本 但被(输出重定向)写入到文件中去了

 

记住 《Linux下一切皆文件》!!! 

head指令 打印文本的前十行

tail指令 打印文本的后十行

wc指令 统计行数

|管道 重要概念

cat mylog.txt | wc -l

将cat输出的数据 通过管道输入到wc中

和时间相关的指令 

date指令 cal日历指令 

sort排序指令 按照ASCII码 升序排序

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:

which   查看可执行文件的位置。

whereis  查看文件的位置。

locate   配合数据库查看文件位置。

find    实际搜寻硬盘查询文件名称。

 find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

which指令  whereis - 定位一个“命令”的二进制文件、源文件、手册文件。

alias指令 取别名

grep 文本行过滤工具 grep ‘88’mylog.txt 包含88的全都打印了

重要部分 zip/unzip指令 压缩和解压

和rm类似 直接zip 是无法全部都打包的

正确使用

zip -r you.zip goufile/dir

unzip you.zip

为什么要打包和压缩 -> 应用于网络通讯传输

zip直接打包 只打包了目录 未打包内容

unzip +name.zip 解压后啥也没有 

需要zip -r namefile 进入递归压缩即可

 

tar指令  重要‼️

tar的打包操作        tar+czf+namefile        打包操作又称备份操作

-c(create)  z(压缩)  f(新压缩文件的名字) 

shell命令

我们使用的命令行 就是shell帮我们执行的;

那什么是shell?我们的指令ls/pwd/..都是程序 而shell也是程序 叫外壳程序

我们通过shell来操作 操作系统

为什么要这样呢 shell存在的意义呢?

a.帮忙进行命令行的传送和返回结果

b.保护操作系统

c.执行命令的时候 会创建子进程来进行执行 

Linux的权限 

1.权限的概念

单说权限这个词 权限是用来限制人的 是可以这样做 但没有权利这样做

所以权限是有个大前提 访问的对象天然有这个“属性” 

如果对象没有这个属性就不存在是否有这个权限的意义

总结:权限 是指一件事情是否允许被谁“做”,权限=人(文件)+事物属性(rwx)

2.Linux上面的用户分类

人有各种社会地位 而在linux系统中也存在分类 有 root 和 普通

a.root为超级管理员 几乎可以干任何事

b.普通用户

3.Linux的文件属性

文件属性指的是 文件类型和文件权限 文件具有的属性分别是 读 写 和 可执行

这一串字母drwxr-xr-x是什么呢         我们来解析

d  rwx  r-x  r-x

d 这个位置 为文件类型 d为dir目录  后面三个字母为一组 

分别对应 文件拥有者 文件所属组 other

r ->可读        w ->可写        x->可执行

那有人要问了这个 文件拥有者 文件所属组 other是什么呢

这是角色        记得别和用户类型搞混了

一个人即可以是老师也可以是父亲 这并不冲突

文件拥有者:文件的创始人

文件的所属组:用于团队合作中 创造一个组 类似微信的组

文件的other:即除了上面两种外 其他用户

4.Linux的文件权限

 1.我们该如何修改权限呢

权限 = 人+ 文件属性

用到chmod指令      

chmod u+r test.txt        

chmod g+w test.txt

chmod o+x test.txt

我们还可以用八进制修改

rwx rwx rwx 可看作 111 111 111 

修改权限 chmod 777 test.txt

                chmod 444 test.txt

当然我们还能修改文件的拥有者

chown root test.txt 

2.有和没有文件权限有什么区别 ?

首先我们来创建用户和密码
sudo useradd -m aaa
创建用户名为aaa的用户
-m:自动建立用户的登入目录
sudo是允许系统管理员让普通用户执行root命令的一个工具(获取权限)
这里会需要输入管理员的密码(不是你想给新用户设置的密码!!!)

sudo passwd aaa
输入用户aaa的密码
第二次确认输入的密码

su用来切换用户的

在普通用户的情况下 我们就处处受限 

 

 你想执行什么指令都不行 因为没有权限

当然可以sudo 得到一次性的root权利 但需要在suoders名单中

权限的三大问题 

权限的三大问题分别是 默认权限  ,目录权限 和 粘滞位

 我们先介绍下file指令 file + filename 能告诉你filename是什么类型文件

目录的权限

如果我们要进入一个目录 需要什么权限?

对于目录来讲 r代表什么意思呢 在没有r权限的目录下 我们无法查看当前目录下的文件名和文件属性(即 ll无法使用)

对于目录来讲 w代表什么意思呢 在没有w权限的目录下 我们无法直接在当前目录下创建新的文件(即 touch + filename无法使用)

所以我们需要的x权限

默认权限

为什么我们创建的普通文件(不包括可执行),为什么默认权限都是从664开始的 为什么目录的默认权限是从775开始的呢 ps:不同的操作系统 默认权限可能是不一样的

默认权限:你看见的

起始权限:系统设置的 普通文件的起始权限 666开始的 没有x

目录文件的起始权限是777(rwx)全都有

但最终权限 也就是你看的默认权限 是 通过 起始权限 & (~umask)得来的

等等???这些是什么 别急我们一一道来

系统为了更好的控制文件权限 系统有着默认权限掩码的概念(umask)

&则是按位与 两个都是1才是1

umask默认为0002(八进制)

0 (这个0以后有用 现在不管)002 ->000 000 010

普通文件666(110 110 110)&umask002(000 000 010)

目录777(111 111 111)&umask002(000 000 010)

别忘记~ 按位取反

普通文件666(110 110 110)&~umask002(111 111 101)

目录777(111 111 111)&~umask002(111 111 101)

粘滞位

在使用Linux系统中我们会有些共享目录被所有普通用户所共享 用来报出普通用户产生的临时数据

但这样会出现个问题即是 当文件被所有人所共享时 却拦不住别人删除我的文件!!!

于是出现了粘滞位

1.为什么拦不住别人删除我文件

2.为什么粘滞位只能添加到目录上

众所周知w权限是我们可以创建新文件的权限 那是否也是我们删除文件的权限呢

是的 目录的w权限可以确定是否能在目录下创建或删除文件

但关了w权限无法创建新文件 那目录毫无意义

所以粘滞位出现

chmod +t public 就可以让目录设置粘滞位了

设置了粘滞位别人就无法删除我的文件 只有root 和文件拥有者可以

 好啦今天的内容就到这里了 看到这里的朋友不妨一键三连

我们好好学习 越变越强

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值