Linux 命令行核心指令与权限控制指南
Linux 命令行的高效操作与权限控制。涵盖 Git 仓库基础操作、时间与日志相关指令(如 date、cal、find)、文本过滤工具 grep、文件压缩打包(zip、tar)及系统信息查询(uname)。同时讲解了终端常用快捷键、命令行解释器原理以及文件权限体系,包括读写执行权限、用户组管理、chmod/chown/chgrp 命令、umask 掩码及粘滞位设置。旨在帮助读者掌握 Linux 系统管理基石,提升操作效率。

Linux 命令行的高效操作与权限控制。涵盖 Git 仓库基础操作、时间与日志相关指令(如 date、cal、find)、文本过滤工具 grep、文件压缩打包(zip、tar)及系统信息查询(uname)。同时讲解了终端常用快捷键、命令行解释器原理以及文件权限体系,包括读写执行权限、用户组管理、chmod/chown/chgrp 命令、umask 掩码及粘滞位设置。旨在帮助读者掌握 Linux 系统管理基石,提升操作效率。

Linux 命令行的高效灵活,藏于精准指令与权限控制中。代码提交、时间管理、文件搜索、权限配置等看似零散的操作,实为系统管理基石。本文拆解核心场景,助你吃透逻辑、掌握权限,让操作从生涩变顺手。
本文将使用普通用户的方式来介绍 Linux 相关的指令。
可以在终端中查看远程仓库中的代码和图片。
类似的,在终端中也可以克隆仓库,注意这里不能有和仓库名称相同的文件夹名称,否则会报错。
依次输入如下所示的指令,可以将图片或代码推送到远程仓库中。
可以在文件夹中放上图片或者代码。
关闭设置,输入 git clone + 复制的地址。
在默认配置文件中选择 Shell。
终端中选择 Shell,因为 Shell 支持 Linux 指令。
右击选择用终端打开。
在文件资源管理器中新建一个文件夹,用来存放 linux 的指令。
点击如下图所示的复制,这个链接就是这个仓库的链接。
输入仓库名称和仓库介绍,选择如下图所示的选项,点击创建即可。
进入仓库里面登录账号,点击右上角的新建仓库。
程序运行到每一个关键时刻,都要打日志。日志中有时间、日志等级,具体信息,其他信息,以行为单位进行输出。
按照需求进行信息提取。
date
date +%Y-%m-%d-%H:%M:%S
时间戳是从 1970 年 1 月 1 日(午夜 12 点整)开始所经过的秒数,不考虑闰秒。
date +%s # 时间戳
date -d @时间戳 # 时间戳转换
这里显示 8 点是因为午夜 12 点整是欧洲时间,中国比欧洲快 8 个小时。
cal 命令可以用来显示公历(阳历)日历。
cal [参数][月份][年份]
cal [月份][年份]
用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)。
-name 按照文件名查找文件
which 在指定的路径下搜索文件。
whereis 在系统的路径下查找,既可以找到可执行程序,又可以找到手册,安装包,压缩包之类的。
grep [选项] 搜寻字符串 文件
查找字符串
-v 反向打印。
打包:将文件装在一起 压缩:通过算法压缩文件,节省空间。
能被打包和压缩的一定是一个整体,由多个文件变成了 1 个文件,不容易造成文件缺失,会让文件体积变小。
zip 压缩文件.zip 目录或文件
将目录或文件压缩成 zip 格式
普通压缩只能将目录压缩,不包括里面的文件。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
将 test2 目录压缩:zip test2.zip test2/*
解压到 tmp 目录:unzip test2.zip -d /tmp
如果没有 zip 和 unzip:
su 或者 su- 切换到 root 用户。yum install -y zip unzip 会安装 zip 和 unzip。打包和压缩的方法有许多种。
czf # 创建并使用 gzip 压缩
上图中 2 条命令逻辑等价,仅输出文件名不同。
.tar.gz -> .tgz
tar -> 打包后缀
.gz -> 压缩后缀
tzf # 查看压缩包的内容,没有解压
xzf # 解压压缩包
-C # 解压到指定目录
bc # Linux 下的计算器,退出时输入 quit 即可
uname [选项]
uname 用来获取电脑和操作系统的的相关信息 uname 可以显示 linux 主机所用的操作系统的版本、硬件的名称等基本信。
x86_64 等价于 x64,即 64 位的机器。 x86 == 32,即 32 位的机器。
uname -r
free -k # 以 kb 的方式查内存
free -m # -m 选项表示以兆字节(MB)为单位显示内存信息(默认是 KB)
free -g # -g 以千兆字节(GB)为单位显示内存使用信息
df -h # 用于查看文件系统的磁盘空间使用情况
lscpu # lscpu 是 Linux 系统中用于查看 CPU 硬件信息的命令
经常使用的按键。
Tab
补全或者显示指令。
ctrl+r # 搜索历史命令,搜索完成后按回车即可。可以搜索历史命令决定了 Linux 系统一定记录了历史命名。
终止命令。
nano 是 Linux 中的记事本,可以输入 nano --version 来查看是否安装,如下图所示,已经安装好了。
代码完成后可以编译并执行可执行程序。
输入完成后按 ctrl + x 退出,输入 Y 保存文件后,按回车即可退出。
输入指令 nano test.c,这里如果没有 test.c 文件则会新建。
输入 yum install -y nano 可以安装 nano。
使用 nano
不断按 ctrl + d 会退出登录。
查看所有历史命令列表,Linux 会记录默认记录最新的 1000 条。
Linux 操作系统(服务器),永远不关机。
shutdown [选项] 常见选项
输入指令的过程,本质上其实就是输入字符串。指令的本质就是编译好的程序和脚本,一定会在系统的特定路径下存放。
原因 所有的指令最终都要在操作系统内部运行,但是操作系统使用难度较高,用户不能直接和操作系统打交道。
作用 将使用者的命令翻译给核心处理,同时,将核心的处理结果翻译给使用者。
意义
保护操作系统,对于用户的非法请求,直接拦截。
一件事情是否被允许做,权限认证的是身份。
Linux 系统中文件名后缀没有直接的意义,操作系统不关心后缀,Linux 系统上运行的其他软件需要后缀。
第 1 列第 1 个字母
权限也和事物的'属性'有关
基本权限
拥有者:事物的主要归属人或负责人 所属组:事物归属于哪个团队、组织或小组。 其他人:除拥有者和所属组之外,与该事物相关的其他关联人员。 root 不受权限的约束,制定规则的人不受权限的约束。
位置是什么含义是确定的,每一个位置只有是或者否,具有指定的权限。
8 进制数值表示方法
| 权限符号(读写执行) | 八进制 | 二进制 |
|---|---|---|
| r | 4 | 100 |
| w | 2 | 010 |
| x | 1 | 001 |
| rw | 6 | 110 |
| rx | 5 | 101 |
| wx | 3 | 011 |
| rwx | 7 | 111 |
| --- | 0 | 000 |
修改文件的权限。 用户表示符 + / - = 权限字符
更改权限的用户 —— root 和拥有者
方法 1 chmod u/g/o+-r/w/x 文件
方法 2 chmod 八进制 文件
给所有用户加上所有权限
修改文件的拥有者。 使用 root 来更改。
修改前
修改后
修改文件的拥有者后,原拥有者变成了其他人,但还是这个文件的所属组,无法修改文件的权限。
更改文件的所属组,和 chown 类似,需要使用 root 权限。
更改原文件的所属组和拥有者后,原文件的用户变成了其他人。
可以使用 chown 一次更改所属组和拥有者。
chown 拥有者:所属组 文件
注意
权限在进行认证的时候,只能认证 1 个身份。
大小:拥有者 > 所属组 > 其他人
可执行权限:如果目录没有可执行权限,则无法 cd 到目录中。 可读权限:如果目录没有可读权限,则无法用 ls 等命令查看目录中的文件内容。 可写权限:如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件。
为什么普通文件是 664,目录文件是 775 ?
linux 默认给普通文件的起始权限是 666,给目录文件的起始权限是 777。
查看文件掩码
umask
凡是在 umask 中出现的权限,不会在最终的文件权限中出现。
普通文件
666 的二进制是:110 110 110
文件掩码 000 000 010
最终编码 110 110 100,即 664。
最终权限 = 起始权限 & (~umask)
~umask = 111 111 101
起始权限 & (~umask) = 110 110 110 & 111 111 101 = 110 110 100
目录文件
777 的二进制是111 111 111
文件掩码 000 000 010
最终编码 111 111 101,即 775。
修改文件权限
umask + 权限值
普通用户自己的家目录权限是 700,别的用户没有权限。 如果想共享文件,不能在任何一个用户的家目录下。
方法 1 根目录下的 tmp 文件。
方法 2 用户 2 只有文件读的权限但是可以删除,删除需要写的权限。
结论
一个文件能否被删除,并不由文件本身决定,而是由这个文件所处的目录决定。
用户 1 作为其他人可以在 share 创建文件。
使用 chmod 更改文件所属组和其他人的权限。
使用 root 在根目录下创建文件夹,
方法 1 更改后用户无法删除文件,但同时也无法创建文件。
使用 root 更改共享文件夹的权限。
不是文件的拥有者无法删除文件。
总结 切换到 root 使用粘滞位,如下图会更改其他人的执行权。
粘滞位,给目录设置,一般是共享目录,各个用户可以进行在目录进行增删查改。
t 是一种特殊的 x 权限。
当一个目录被设置为'粘滞位'(用 chmod + t),则该目录下的文件只能由
从代码托管到权限控制,Linux 命令藏着'规则'与'效率'的平衡。权限核心是理解'谁能做什么',命令价值在灵活组合解决问题。多实践能夯实基础,为深入学习铺路。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online