【linux学习】linux的一些奇怪知识,方便日常使用

我是程序员小青蛙,下面介绍关于linux的知识。


前言

一些基本知识,方便利用,比如热键tab,ctrl-c,ctrl-d,粘滞位,权限等;

xshell中的复制粘贴,Ctrl+insert,复制

shift+insert->粘贴


一、 重要的几个热键Tab,ctrl-c, ctrl-d,关机

Tab按键---具有『命令补全』和『档案补齐』的功能

Ctrl-c按键---让当前的程序『停掉』

Ctrl-d按键---通常代表着:『键盘输入结束(End Of File, EOF戒End OfInput)』的意思;另外,他也可以用来取代exit

语法:shutdown 选项 **常见选项:**

-h:将系统的服务停掉后,立即关机。

-r:在将系统的服务停掉之后就重新启动

-t sec:-t后面加秒数,亦即『过几秒后关机』的意思

以下命令作为扩展:

安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;

文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;

系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;

网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、nslookup;

系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;

其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。

shell命令以及运行原理:

Linux严格意义上说的是一个操作系统,我们称之为"核心(kernel)",但我们一般用户,不能直接使用kernel。而是通过kernel的"外壳"程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:

将使用者的命令翻译给核心(kernel)处理。同时,将核心的处理结果翻译给使用者。

对比windows GUI,我们操作windows不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。

shell对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。

bash就是一种媒介,对我们的操作进行解释传输。

二、Linux权限的概念

Linux下有两种用户:超级用户(root)、普通用户。

超级用户:可以再linux系统下做任何事情,不受限制

普通用户:在linux下做有限的事情。

超级用户的命令提示符是"#",普通用户的命令提示符是"$"。

命令:su 用户名

功能:切换用户。

例如,要从root用户切换到普通用户user,则使用su user。要从普通用户user切换到root用户则使用su root(root可以省略),此时系统会提示输入root用户的口令。

Linux权限管理

01.文件访问者的分类(人)
文件和文件目录的所有者:u---User(中国平民法律问题)
文件和文件目录的所有者所在的组的用户:g---Group(不多说)
其它用户:o---Others(外国人)

02.文件类型和访问权限(事物属性)

切割

a)文件类型
d:文件夹
-:普通文件

l:软链接(类似Windows的快捷方式)

b:块设备文件(例如硬盘、光驱等)

p:管道文件

c:字符设备文件(例如屏幕等串口设备)

s:套接口文件

b)基本权限

读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限

执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

"---"表示不具有该项权限

03.文件权限值的表示方法

a)字符表示方法

|---------|---------|---------|-------|
| linux表示 | 说明 | linux表示 | 说明 |
| r - - | 只读 | -w- | 仅可写 |
| --x | 仅可执行 | rw- | 可读可写 |
| -wx | 可写可执行 | r-x | 可读可执行 |
| rwx | 可读可写可执行 | --- | 无权限 |

b)8进制数值表示方法

|------------|-----|-----|
| 权限符号(读写执行) | 八进制 | 二进制 |
| r | 4 | 100 |
| w | 2 | 010 |
| x | 1 | 001 |
| rw | 6 | 110 |
| rx | 5 | 101 |
| wx | 3 | 011 |
| rwx | 7 | 111 |
| --- | 0 | 000 |

04.文件访问权限的相关设置方法

a)chmod

功能:设置文件的访问权限

格式:chmod 参数权限文件名

常用选项:

R ->递归修改目录文件的权限

说明:只有文件的拥有者和root才可以改变文件的权限

chmod

①用户表示符+/-=权限字符

+:向权限范围增加权限代号所表示的权限

-:向权限范围取消权限代号所表示的权限

=:向权限范围赋予权限代号所表示的权限

用户符号:

u:拥有者

g:拥有者同组用

o:其它用户

a:所有用户
chmod a=x /home/abc.txt(全部)

②三位8进制数字

bash 复制代码
# chmod 664 /home/abc.txt
# chmod 640 /home/abc.txt

直接修改

b)chown

功能:修改文件的拥有者

格式:chown 参数用户名文件名

bash 复制代码
chown user1 f1

c)chgrp

功能:修改文件或目录的所属组

格式:chgrp 参数用户组名文件名

常用选项:-R递归修改文件或目录的所属组

bash 复制代码
chgrp users /abc/f2

d)umask

功能:

查看或修改文件掩码

新建文件夹默认权限=0666

新建目录默认权限=0777

但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & (~umask)计算方式

格式:umask权限值

说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。

file指令:

功能说明:辨识文件类型。
语法:file 选项文件或目录...
常用选项:
-c详细显示指令执行过程,便于排错或分析程序执行的情形。
-z尝试去解读压缩文件的内容。

使用sudo分配权限

(1)修改/etc/sudoers文件分配文件

bash 复制代码
# chmod 740 /etc/sudoers
# vi /etc/sudoer

格式:接受权限的用户登陆的主机=(执行命令的用户)命令

(2)使用sudo调用授权的命令

bash 复制代码
$sudo --u用户名命令

目录的权限

可执行权限:如果目录没有可执行权限,则无法cd到目录中.
可读权限:如果目录没有可读权限,则无法用ls等命令查看目录中的文件内容.
可写权限:如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件.

这时就出现问题了:换句话来讲,就是只要用户具有目录的写权限,用户就可以删除目录中的文件,而不论这个用户是否有这个文件的写权限.

为了解决这个不科学的问题, Linux引入了粘滞位的概念.

三、粘滞位

bash 复制代码
[root@localhost ~]# chmod +t /home/#加上粘滞位
[root@localhost ~]# ls -ld /home/
drwxrwxrwt. 3 root root 4096 9月19 16:00 /home/
[root@localhost ~]# su - litao
[litao@localhost ~]$ rm /home/abc.c#litao不能删除别人的文件
rm:是否删除有写保护的普通空文件"/home/abc.c"?y
rm:无法删除"/home/abc.c":不允许的操作

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

一、超级管理员删除

二、该目录的所有者删除

三、该文件的所有者删除

关于权限的总结
目录的可执行权限是表示你可否在目录下执行命令。
如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目,即使目录仍然有-r读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)
而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限
所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。


总结

对linux中一些注意点进行介绍,还有权限的用法。

相关推荐
憧憬成为web高手1 小时前
[HITCON 2017]SSRFme
学习
妖精的羽翼1 小时前
AI + 前端、可视化 & 大屏
学习
xuhaoyu_cpp_java8 小时前
项目学习(三)分页查询
java·经验分享·笔记·学习
小宋加油啊9 小时前
机械臂抓取物体 PVN3D算法调研学习
学习·算法·3d
Xzh042310 小时前
AI Agent 学习路线(Java 后端方向)
java·人工智能·学习
做cv的小昊11 小时前
计算机图形学:【Games101】学习笔记08——光线追踪(辐射度量学、渲染方程与全局光照、蒙特卡洛积分与路径追踪)
图像处理·笔记·学习·计算机视觉·游戏引擎·图形渲染·概率论
星恒随风11 小时前
C++ 类和对象入门(五):初始化列表、explicit 和 static 成员详解
开发语言·c++·笔记·学习·状态模式
sensen_kiss13 小时前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.8 软件测试 (Software Testing)(上)
学习·软件工程
力学与人工智能13 小时前
PPT分享 | 洛桑联邦理工学院魏震:深度几何学习在工业设计优化中的应用
学习·优化·工业设计·深度几何学习·洛桑联邦理工学院
sensen_kiss14 小时前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.9 软件测试 (Software Testing)(下)
学习·软件工程