Linux 命令行核心指令:Git 提交、时间管理、权限控制与热键技巧
Linux 命令行高效操作涵盖代码托管、时间管理、文件搜索及权限配置等核心场景。本文通过 date、find、grep、tar 等常用指令演示日志提取、文件查找与打包压缩方法。重点解析 chmod、chown、umask 等权限控制命令,说明所有者、所属组及其他用户的权限逻辑,以及粘滞位的应用。结合 Tab 补全、Ctrl+R 历史搜索等热键技巧,帮助初学者掌握系统管理基础,提升终端操作效率。

Linux 命令行高效操作涵盖代码托管、时间管理、文件搜索及权限配置等核心场景。本文通过 date、find、grep、tar 等常用指令演示日志提取、文件查找与打包压缩方法。重点解析 chmod、chown、umask 等权限控制命令,说明所有者、所属组及其他用户的权限逻辑,以及粘滞位的应用。结合 Tab 补全、Ctrl+R 历史搜索等热键技巧,帮助初学者掌握系统管理基础,提升终端操作效率。

可以在终端中查看远程仓库中的代码和图片。
类似的,在终端中也可以克隆仓库,注意这里不能有和仓库名称相同的文件夹名称,否则会报错。
依次输入如下图所示的指令,可以将图片或代码推送到远程仓库中。
可以在文件夹中放上图片或者代码。
关闭设置,输入 git clone + 复制的地址。
在文件资源管理器中新建一个文件夹,用来存放 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 [选项] 搜寻字符串 文件
-i :忽略大小写的不同,所以大小写视为相同
-n :输出行号
-v :反向选择
查找字符串
-v 反向打印。
打包:将文件装在一起 压缩:通过算法压缩文件,节省空间。
能被打包和压缩的一定是一个整体,由多个文件变成了 1 个文件,不容易造成文件缺失,会让文件体积变小。
zip 压缩文件.zip 目录或文件
将目录或文件压缩成 zip 格式
普通压缩只能将目录压缩,不包括里面的文件。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
使用 -r 可以将 d1 中的所有文件都压缩
将 test2 目录压缩:zip test2.zip test2/*
解压到 tmp 目录:unzip test2.zip -d /tmp
没有 zip 和 unzip
su 或者 su- 切换到 root 用户。yum install -y zip unzip 会安装 zip 和 unzip。打包和压缩的方法有许多种。
-c:建立一个压缩文件的参数指令 (create 的意思); -x :解开一个压缩文件的参数指令! -t:查看 tarfile 里面的文件。 -z:是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j:是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩? -v:压缩的过程中显示文件!这个常用,但不建议用在后台执行过程! -f:使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数! -C:解压到指定目录
czf - - - 创建并使用 gzip 压缩
上图中 2 条命令逻辑等价,仅输出文件名不同。
.tar.gz - - - > .tgz
tar - - - 打包后缀
.gz - - - 压缩后缀
tzf - - - 查看压缩包的内容,没有解压。
xzf - - - 解压压缩包
-C - - - 解压到指定目录
bc - - - Linux 下的计算器,退出时输入 quit 即可。
uname [选项]
uname 用来获取电脑和操作系统的的相关信息
uname 可显示 linux 主机所用的操作系统的版本、硬件的名称等基本信。
-a 或 –all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。
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 操作系统(服务器),永远不关机。
-h :将系统的服务停掉后,立即关机。
-r:在将系统的服务停掉之后就重新启动
-t sec:-t 后面加秒数,亦即过几秒后关机的意思。
shutdown [选项] 常见选项
输入指令的过程,本质上其实就是输入字符串。指令的本质就是编译好的程序和脚本,一定会在系统的特定路径下存放。
原因 所有的指令最终都要在操作系统内部运行,但是操作系统使用难度较高,用户不能直接和操作系统打交道。
作用 将使用者的命令翻译给核心处理,同时,将核心的处理结果翻译给使用者。
意义
保护操作系统,对于用户的非法请求,直接拦截。
一件事情是否被允许做,权限认证的是身份。
Linux 系统中文件名后缀没有直接的意义,操作系统不关心后缀,Linux 系统上运行的其他软件需要后缀。
第 1 列 第 1 个字母 d:文件夹 -:普通文件(文本,可执行程序,库基本都属于普通文件) l:软链接(类似 Windows 的快捷方式) b:块设备文件(例如硬盘、光驱等) p:管道文件,进行通信的 c:字符设备文件(键盘,显示器文件等) s:套接口文件
权限也和事物的'属性'有关 基本权限 读:Read 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限 写:Write 对文件而言,具有修改文件内容的权限;对目录来说具有创建删除移动目录内文件的权限 执行:execute 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限 -:表示不具有该项权限。
拥有者:事物的主要归属人或负责人 所属组:事物归属于哪个团队、组织或小组。 其他人:除拥有者和所属组之外,与该事物相关的其他关联人员。 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 |
修改文件的权限。 用户表示符 + / - = 权限字符 +:向权限范围增加权限代号所表示的权限 -:向权限范围取消权限代号所表示的权限 =:向权限范围赋予权限代号所表示的权限 用户符号: u:拥有者 g:拥有者同组用 o:其它用户 a:所有用户
更改权限的用户 - - - 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