Linux 命令之技巧(Tips for Linux Commands)
Linux 命令之技巧
简介
Linux 是一种免费使用和自由传播的类Unix操作系统,其内核由林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统,支持多线程和多CPU。
历史背景
Linux最初是作为个人电脑操作系统开发的,但随着时间的推移,它逐渐被用于服务器、移动设备、超级计算机等各种类型的硬件设备上。Linux的开源特性使得用户可以获取其源代码并自由地修改和分发,这吸引了大量的开发者和企业加入其中。
主要特点
- 开源:用户可以获取其源代码并自由地修改和分发,这使得Linux拥有庞大的社区支持。
- 多用户和多任务:支持多个用户同时运行不同的程序,适合服务器和大型计算机。
- 稳定性和可靠性:内核非常稳定,能够持续运行数月甚至数年而不需要重新启动,适用于对可靠性要求高的设备如航空控制器和医疗设备。
- 多平台支持:可以在32位和64位硬件上运行,支持主要的Unix工具软件、应用程序和网络协议。
大多数程序员只是浅尝辄止,依赖基本的 Linux 命令,而忽略了可以使他们的生活变得轻松得多的功能。
这就像拥有一把瑞士军刀,却只用开瓶器。
本指南不是关于你常见的 "ls" 和 "cd" 命令。我们将深入探讨解决实际问题的技巧,让你的工作流程更快,坦白说,还能让你的同行印象深刻。准备好升级了吗?
1. 恢复已删除的文件
问题: 不小心用 rm 删除了一个关键文件?我们都经历过。
技巧: 使用 extundelete 或 testdisk 从 ext3/ext4 文件系统中恢复文件。
sudo apt-get install extundelete
sudo extundelete --restore-file /path/to/deleted/file /dev/sdX
为什么它很棒: Linux 可能没有回收站,但有了这个技巧,你就有了保障。
2. 高效运行命令
问题: 需要对一系列项目执行相同的操作?手动操作很繁琐。
技巧: 使用 xargs 更高效地执行命令。
echo "file1 file2 file3" | xargs -n 1 cp /source_dir /destination_dir
为什么它很棒: 轻松自动化重复任务。
3. 使用 cd 快捷方式导航
问题: 反复输入长路径会减慢你的速度。
技巧: 使用 CDPATH 变量为常用目录设置快捷方式。
export CDPATH=~/Projects:~/Documents
为什么它很棒: 无需每次输入完整路径即可在目录之间跳转。
4. 找出占用磁盘空间的罪魁祸首
问题: 磁盘空间不足,但不知道原因?
技巧: 使用 ncdu 进行交互式、可视化的磁盘使用情况显示。
sudo apt install ncdu
ncdu /
为什么它很棒: 一种简单直观的回收存储空间的方法。
5. 执行不留历史记录的命令
问题: 运行敏感命令,不想留在历史记录中?
技巧: 在命令前加空格,使其不进入 ~/.bash_history。
export HISTCONTROL=ignorespace# 示例:rm -rf /sensitive/directory
为什么它很棒: 隐私很重要,即使在终端中也是如此。
6. 创建即时服务器
问题: 需要快速通过网络共享文件夹或文件?
技巧: 使用 Python 内置的 HTTP 服务器。
python3 -m http.server 8000
为什么它很棒: 无需安装额外软件即可即时共享文件。
7. 在几秒钟内重命名数百个文件
问题: 逐个重命名文件是噩梦。
技巧: 使用 rename 命令批量重命名文件。
rename 's/old/new/' *.txt
为什么它很棒: 用这个强大的一行命令节省数小时。
8. 像侦探一样调试程序
问题: 需要弄清楚为什么你的程序出问题?
技巧: 使用 strace 跟踪系统调用和信号。
strace -o output.log ./your_program
为什么它很棒: 精确定位代码中出错的地方。
9. 精确调度命令
问题: 需要在特定时间运行脚本?
技巧: 使用 at 调度一次性任务。
echo "backup.sh" | at 02:00
为什么它很棒: 无需复杂的 crontab 配置即可简化任务自动化。
10. 杀死僵尸进程
问题: 系统因无响应进程而变得缓慢。
技巧: 使用 htop 识别并杀死失控进程。
sudo apt-get install htop
htop
为什么它很棒: 一种可视化、用户友好的进程管理方式。
11. 轻松加密文件
问题: 需要在共享系统上保护文件?
技巧: 使用 gpg 加密和解密文件。
gpg -c file.txt
gpg file.txt.gpg
为什么它很棒: 轻松保护敏感数据。
12. 为繁琐命令创建自定义快捷方式
问题: 反复输入长命令浪费时间。
技巧: 使用 shell 别名简化工作流程。
alias cls="clear"
alias gs="git status"
为什么它很棒: 根据你的风格定制终端。
13. 实时监控网络使用情况
问题: 无法弄清楚是什么占用了你的带宽?
技巧: 使用 iftop 进行实时网络分析。
sudo apt install iftop
sudo iftop
为什么它很棒: 实时查看占用网络资源的程序。
14. 在多个文件中查找和替换文本
问题: 需要更新多个文件,但害怕手动操作?
技巧: 使用 sed 进行无缝的查找和替换操作。
sed -i 's/old_text/new_text/g' *.txt
为什么它很棒: 精确地批量编辑文件。
15. 将终端变成多路复用器
问题: 在多个终端窗口之间切换很混乱。
技巧: 使用 tmux 在单个窗口中管理多个会话。
sudo apt install tmux
tmux
为什么它很棒: 使用分屏和会话持久性像专业人士一样工作。
这些 Linux 命令行技巧不仅仅是关于效率;它关乎探索更聪明地工作,而不是更努力地工作的哲学。
相关文章:
Linux 命令之技巧(Tips for Linux Commands)
Linux 命令之技巧 简介 Linux 是一种免费使用和自由传播的类Unix操作系统,其内核由林纳斯本纳第克特托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户…...
从 GShard 到 DeepSeek-V3:回顾 MoE 大模型负载均衡策略演进
作者:小天狼星不来客 原文:https://zhuanlan.zhihu.com/p/19117825360 故事要从 GShard 说起——当时,人们意识到拥有数十亿甚至数万亿参数的模型可以通过某种形式的“稀疏化(sparsified)”来在保持高精度的同时加速训…...
【番外篇】鸿蒙扫雷天纪:运混沌灵智勘破雷劫天局
大家好啊,我是小象٩(๑ω๑)۶ 我的博客:Xiao Xiangζั͡ޓއއ 很高兴见到大家,希望能够和大家一起交流学习,共同进步。 这一节课我们不学习新的知识,我们来做一个扫雷小游戏 目录 扫雷小游戏概述一、扫雷游戏分析…...
【反悔堆】力扣1642. 可以到达的最远建筑
给你一个整数数组 heights ,表示建筑物的高度。另有一些砖块 bricks 和梯子 ladders 。 你从建筑物 0 开始旅程,不断向后面的建筑物移动,期间可能会用到砖块或梯子。 当从建筑物 i 移动到建筑物 i1(下标 从 0 开始 )…...
字符串算法笔记
字符串笔记 说到字符串,首先我们要注意的就是字符串的输入以及输出,因为字符串的输入格式以及要求也分为很多种,我们就来说几个比较常见的格式 g e t s gets gets 我们先来说这个函数的含义...
AWTK 骨骼动画控件用法
创建骨骼动画控件 atlas 指定纹理图集文件,skeleton 指定骨骼动画数据文件。可以是相对路径或绝对路径。atlas 中引用的图片文件需要和 skeleton 文件在同一目录下。 scale_x 和 scale_y 指定缩放比例,根据实际情况调整。 scale_time 指定播放速度&am…...
解决Oracle SQL语句性能问题(10.5)——常用Hint及语法(7)(其他Hint)
10.5.3. 常用hint 10.5.3.7. 其他Hint 1)cardinality:显式的指示优化器为SQL语句的某个行源指定势。该Hint具体语法如下所示。 SQL> select /*+ cardinality([@qb] [table] card ) */ ...; --注: 1)这里,第一个参数(@qb)为可选参数,指定查询语句块名;第二个参数…...
如何写美赛(MCM/ICM)论文中的Summary部分
美赛(MCM/ICM)作为一个数学建模竞赛,要求参赛者在有限的时间内解决一个复杂的实际问题,并通过数学建模、数据分析和计算机模拟等手段给出有效的解决方案。在美赛的论文中,Summary部分(通常也称为摘要)是非常关键的,它是整个论文的缩影,能让评审快速了解你解决问题的思…...
DataWhale组队学习 fun-transformer task5
1. 词向量:单词的“身份证” 首先,我们定义了四个单词的词向量,每个向量维度为3。你可以把这些词向量想象成每个单词的“身份证”。每个身份证上有3个特征,用来描述这个单词的“性格”或“特点”。 word_1 np.array([1, 0, 0])…...
【huawei】云计算的备份和容灾
目录 1 备份和容灾 2 灾备的作用? ① 备份的作用 ② 容灾的作用 3 灾备的衡量指标 ① 数据恢复时间点(RPO,Recoyery Point Objective) ② 应用恢复时间(RTO,Recoyery Time Objective) 4…...
电力晶体管(GTR)全控性器件
电力晶体管(Giant Transistor,GTR)是一种全控性器件,以下是关于它的详细介绍:(模电普通晶体管三极管进行对比学习) 基本概念 GTR是一种耐高电压、大电流的双极结型晶体管(BJT&am…...
LQ1052 Fibonacci斐波那契数列
题目描述 Fibonacci斐波那契数列也称为兔子数列,它的递推公式为:FnFn-1Fn-2,其中F1F21。 当n比较大时,Fn也非常大,现在小蓝想知道,Fn除以10007的余数是多少,请你编程告诉她。 输入 输入包含一…...
Cursor 帮你写一个小程序
Cursor注册地址 首先下载客户端 点击链接下载 1 打开微信开发者工具创建一个小程序项目 选择TS-基础模版 官方 2 然后使用Cursor打开小程序创建的项目 3 在CHAT聊天框输入自己的需求 比如 小程序功能描述:吃什么助手 项目名称: 吃什么小程序 功能目标…...
【机器学习】嘿马机器学习(算法篇)第13篇:决策树算法,学习目标【附代码文档】
本教程的知识点为:机器学习算法定位、 K-近邻算法 1.4 k值的选择 1 K值选择说明 1.6 案例:鸢尾花种类预测--数据集介绍 1 案例:鸢尾花种类预测 1.8 案例:鸢尾花种类预测—流程实现 1 再识K-近邻算法API 1.11 案例2:预测…...
echo ‘export PATH=/usr/local/bin:$PATH‘ >> ~/.bashrc这个和直接添加到/etc/profile有什么区别
echo export PATH/usr/local/bin:$PATH >> ~/.bashrc 和直接添加到 /etc/profile 都是用于修改 PATH 环境变量,但它们适用的范围和效果有所不同: 1. 修改 ~/.bashrc 文件 作用范围:~/.bashrc 是针对当前用户的配置文件,它…...
菜鸟之路Day09一一集合进阶(二)
菜鸟之路Day09一一集合进阶(二) 作者:blue 时间:2025.1.27 文章目录 菜鸟之路Day09一一集合进阶(二)0.概述1.泛型1.1泛型概述1.2泛型类1.3泛型方法1.4泛型接口1.5泛型通配符 2.Set系列集合2.1遍历方式2.2HashSet2.3LinkedHashSet2.4TreeSet 0.概述 内…...
写在新年之际
各位关注我的小伙伴们,大家好! 在这新年来临之际,首先祝大家新年快乐!愿新的一年充满机遇与收获,愿我们在各自的领域中继续突破和成长! 回顾2024年,这是充满变革的一年,不仅世界局…...
【shell工具】编写一个批量扫描IP地址的shell脚本
批量扫描某个网段中的主机(并发) 创建目录编写脚本文件 mkdir /root/ip_scan_shell/ touch /root/ip_scan_shell/online_server.txt touch /root/ip_scan_shell/offline_server.txt touch /root/ip_scan_shell/ip_scan.sh写入下面shell到脚本文件中…...
分库分表后如何进行join操作
在分库分表后的系统中,进行表之间的 JOIN 操作比在单一数据库表中复杂得多,因为涉及的数据可能位于不同的物理节点或分片中。此时,传统的 SQL JOIN 语句不能直接用于不同分片的数据,以下是几种处理这样的跨分片 JOIN 操作的方法&a…...
004 mybatis基础应用之全局配置文件
文章目录 配置内容properties标签typeAlias标签mappers标签 配置内容 SqlMapConfig.xml中配置的内容和顺序如下: properties(属性) settings(全局配置参数) typeAliases(类型别名) typeHandler…...
vim如何设置制表符表示的空格数量
:set tabstop4 设置制表符表示的空格数量 制表符就是tab键,一般默认是四个空格的数量 示例: (vim如何使设置制表符表示的空格数量永久生效:vim如何使相关设置永久生效-CSDN博客)...
基于dlib/face recognition人脸识别推拉流实现
目录 一.环境搭建 二.推拉流代码 三.人脸检测推拉流 一.环境搭建 1.下载RTSP服务器MediaMTX与FFmpeg FFmpeg是一款功能强大的开源多媒体处理工具,而MediaMTX则是一个轻量级的流媒体服务器。两者结合,可以实现将本地视频或者实时摄像头画面推送到RTSP流,从而实现视频…...
LangChain:使用表达式语言优化提示词链
在 LangChain 里,LCEL 即 LangChain Expression Language(LangChain 表达式语言),本文为你详细介绍它的定义、作用、优势并举例说明,从简单示例到复杂组合示例,让你快速掌握LCEL表达式语言使用技巧。 定义 …...
多线程编程杂谈( 下)
问题 是否存在其它中途线程退出的方法? 通过调用Linux系统函数 pthread_cancel(...) 可中途退出线程 Linux 提供了线程取消函数 取消状态 接受取消状态: PTHREAD_CANCEL_ENABLE拒绝取消状态: PTHREAD_CANCEL_DISABLE 取消请求 延迟取消: PTHREAD_CANCEL_DEFERR…...
rdma-core debug
export MLX5_DEBUG_MASK0xff export MLX5_DEBUG_FILE/tmp/mlx5.txt git clone https://github.com/linux-rdma/rdma-core.git cd rdma-core ./build.sh 修改build/CMakeCache.txt MLX5_DEBUG:BOOLTRUE function install_rdma_core {local dir/swgwork/cmi/rdma-core/buil…...
电脑无法开机,重装系统后没有驱动且驱动安装失败
电脑无法开机,重装系统后没有驱动且驱动安装失败 前几天电脑突然坏了,电脑卡住后,强制关机,再开机后开机马上就关机。尝试无数次开机后失败,进入BIOS界面,发现已经没有Windows系统了。重新安装系统后&…...
【Java数据结构】了解排序相关算法
基数排序 基数排序是桶排序的扩展,本质是将整数按位切割成不同的数字,然后按每个位数分别比较最后比一位较下来的顺序就是所有数的大小顺序。 先对数组中每个数的个位比大小排序然后按照队列先进先出的顺序分别拿出数据再将拿出的数据分别对十位百位千位…...
机器学习-线性回归(对于f(x;w)=w^Tx+b理解)
一、𝑓(𝒙;𝒘) 𝒘T𝒙的推导 学习线性回归,我们那先要对于线性回归的表达公示,有所认识。 我们先假设空间是一组参数化的线性函数: 其中权重向量𝒘 ∈ R𝐷 …...
RAG与GraphRAG的区别
文章目录 前言RAG 的特点核心思想数据结构优势局限性应用场景 GraphRAG 的特点核心思想数据结构优势局限性应用场景 如何选型示例场景多跳推理问题推荐系统中的复杂关系社交网络中的影响力分析 总结 前言 RAG (Retrieval-Augmented Generation) 和 GraphRAG (Graph-Based Retr…...
Ubuntu环境通过Ollama部署DeepSeek-R1模型教程
Ollama 是一个专注于简化模型部署和推理的工具,特别适合在生产环境中快速部署和运行模型。 以下是如何使用 Ollama 来安装、部署和使用模型的步骤: 一. 安装 Ollama 首先,你需要安装 Ollama。Ollama 通常支持多种平台(如 Linux、…...
