命令行基础指令速查(Linux/Mac适用)

本文旨在帮助你快速了解和查阅常用的命令行指令,尤其是项目中可能用到的命令。
建议感到困惑时再查看,这里是一份速查表而非详细的入门教程。

文章目录

  • 命令行操作指令
    • 查看命令手册
    • 导航与目录操作
    • 文件操作
    • 查看文件内容
    • 文件权限与所有权
    • 环境变量
    • 系统信息
    • 进程管理
    • 网络操作
    • 其他常用命令
  • Apt-get 包管理工具
    • 更新软件包列表
    • 升级已安装的软件包
    • 安装软件包
    • 移除软件包
    • 清理系统
  • Conda
    • 管理环境
    • 管理包
  • Pip
    • 管理包
  • Git
    • 仓库状态与更新
    • 常用Git命令
    • 配置

命令行操作指令

如果你想进一步学习 Linux,不用烦恼到底哪一本书入门合适,看这一本:《Linux命令行大全 2nd Edition 肖特斯》。

查看命令手册

几乎所有命令都可以通过 man--help 查看帮助信息:

  • man ls:查看 ls 命令的手册页。
  • ls --help:显示 ls 命令的简易帮助信息。

如果你总是忘记指令,也可以使用 man 来查看对应的英文描述,例如:

  • ls:list directory contents。

通过多次查看和练习,你将逐渐记住这些指令。

导航与目录操作

  • pwd:显示当前工作目录的完整路径。

  • cd:更改当前工作目录。

    • cd /path/to/directory:进入指定目录。
    • cd ..:返回上一级目录。
    • cd ~:返回用户主目录。
    • cd -:切换到上一个工作目录,适用于在两个目录间来回切换。
  • ls:列出目录内容。

    • ls:列出当前目录的文件和文件夹。
    • ls -l:以长格式显示详细信息。常用别名:ll
    • ls -a:显示所有文件,包括隐藏文件(以.开头)。
    • ls -lh:以人类可读格式显示文件大小(单位如 KB、MB)。
  • mkdir:创建新目录。

    • mkdir new_directory:创建名为new_directory的目录。
    • mkdir -p /path/to/directory:递归创建目录。

文件操作

对文件夹的操作通常需要递归选项 -r

  • touch:创建新文件或更新文件的时间戳。

    • touch new_file:创建一个名为new_file的空文件。
  • cp:复制文件/目录。

    • cp source destination:复制文件到目标路径。
    • cp -r source_directory destination_directory:递归复制目录及其内容。
  • mv:移动或重命名文件/目录。

    • mv source destination:将文件从源路径移动到目标路径。
    • mv old_name new_name:重命名文件或目录。
  • rm:删除文件/目录。

    • rm file:删除文件。
    • rm -r directory:递归删除目录及其内容。
    • rm -rf directory:强制递归删除目录及其内容,不提示确认。
    • 注意rm操作不可逆,不会将文件移至回收站,使用时需谨慎。

查看文件内容

  • cat:连接并显示文件内容。
    • cat file:显示file的内容。
  • less:分页查看文件内容,其中的指令同 vim。
    • less file:逐页查看file的内容。
  • headtail:查看文件的开头和结尾部分,-n 指定行数。
    • head -n 10 file:显示文件的前 10 行。
    • tail -n 10 file:显示文件的后 10 行。

文件权限与所有权

  • chmod:更改文件权限。

    • chmod 755 file:将file的权限设置为755。
    • chmod +x script.sh:为script.sh添加可执行权限。
  • chown:更改文件所有者,个人并不常用。

    • chown user:group file:将file的所有者更改为user,组更改为group

环境变量

  • export:设置环境变量,使用完只在当前的终端有效,重开就没了。

    • export VAR=value:设置环境变量VAR
    • echo $VAR:查看环境变量VAR的值。
  • env:显示当前所有环境变量。

    • env:列出所有环境变量。
  • 永久设置环境变量:编辑~/.bashrc~/.bash_profile文件,如果你用的是zsh的话,则是 ~/.zshrc

    • 在文件末尾添加:export VAR=value

    • 保存后,运行source ~/.bashrc使更改生效,或者重启命令行。

    • 如果不想开文件的话,在命令行执行:

      echo 'export VAR=value' >> ~/.bashrc
      source ~/.bashrc
      

系统信息

  • uname:显示系统信息。

    • uname -a:显示所有系统信息。
  • df:查看磁盘空间使用情况。

    • df -h:以人类可读的格式显示磁盘使用情况,在项目进行到后期的时候,你可能会遇到磁盘空间不足。
  • du:查看文件或目录的大小。

    • du -sh file_or_directory:显示指定文件或目录的大小。
    • du -h --max-depth=1 .:显示当前目录下各文件和子目录的大小。

进程管理

  • ps:显示当前进程列表。

    • ps aux:显示所有进程的详细信息。
  • top:实时显示系统资源使用情况。

  • kill:终止进程。

    • kill PID:发送SIGTERM信号终止进程。
    • kill -9 PID:发送SIGKILL信号强制终止进程。
  • killall:终止指定名称的所有进程。

    • killall process_name:终止所有名为process_name的进程。

网络操作

  • ssh:通过SSH登录远程主机。

    • ssh user@hostname:连接到远程主机。
  • scp:安全复制文件。

    • scp file user@hostname:/path:将文件复制到远程主机。
    • scp user@hostname:/path/file ./:从远程主机复制文件到本地。
  • curl:命令行下的HTTP请求工具,适合与 API 交互、发送表单等。

    • curl http://example.com:获取网页内容并输出到终端。
    • curl -O http://example.com/file:下载文件并保存到本地
  • wget: 和 curl 功能类似,经常用来下载。

    • wget http://example.com/file:下载并保存文件。
  • ping:测试网络连通性

    • ping example.com:检查到 example.com 的连通性。

其他常用命令

  • grep:在文件中搜索特定文本。

    • grep 'text' file:在file中搜索包含text的行。
    • grep -r 'text' directory:在目录中递归搜索文本。
  • find:查找文件或目录。

    • find /path -name "filename":在指定路径下查找名为filename的文件。
  • alias:为命令创建别名。

    • alias ll='ls -alF':将ll设置为ls -alF
  • history:显示命令历史记录。

  • sudo:以超级用户权限执行命令。

    • sudo command:以 root 权限执行command

    注意:使用 sudo 需谨慎。

  • 重定向和管道(非常有用)

    • command > file:将命令的输出重定向到文件(覆盖)。
    • command >> file:将命令的输出追加到文件。
    • command1 | command2:将command1的输出作为command2的输入。
  • whoami:显示当前用户。

  • date:显示当前日期和时间。


Apt-get 包管理工具

更新软件包列表

  • sudo apt-get update:从软件源更新可用软件包的列表,确保系统使用最新的软件包信息。

升级已安装的软件包

  • sudo apt-get upgrade:升级系统中所有已安装的软件包到新版本,但不会移除或添加包。

  • sudo apt-get dist-upgrade:在执行 upgrade 的同时,处理依赖关系,允许安装或移除包以进行更全面的系统升级。

安装软件包

  • sudo apt-get install package_name:安装指定的软件包 package_name
    • 例如:sudo apt-get install vim 安装 Vim 文本编辑器。

移除软件包

  • sudo apt-get remove package_name:卸载软件包,但保留配置文件。

  • sudo apt-get purge package_name:卸载软件包并删除其配置文件,彻底移除包的所有痕迹。

清理系统

  • sudo apt-get autoremove:自动移除不再需要的依赖包,这些包通常是跟随其他包安装但现在不再被使用。

  • sudo apt-get clean:清理 /var/cache/apt/archives/ 中已下载的软件包,释放硬盘空间。这些包缓存文件就跟曾经手机下载的安装包一样,安装完了就可以选择删掉,不影响已安装的软件包。

  • sudo apt-get autoclean:只删除已过期的包。


Conda

管理环境

  • 创建新环境

    • conda create -n env_name python=3.8:创建名为env_name、Python版本为3.8的环境。
  • 激活环境

    • conda activate env_name:激活env_name环境。
  • 退出环境

    • conda deactivate:退出当前激活的环境。
  • 列出所有环境

    • conda env listconda info --envs:显示所有可用环境。
  • 删除环境

    • conda remove -n env_name --all:删除名为env_name的环境。
  • 导出环境

    • conda env export > environment.yml:将当前环境导出到 environment.yml 文件。
  • 从文件创建环境

    • conda env create -f environment.yml:根据 environment.yml 创建新环境。

管理包

  • 安装包

    • conda install package_name:在当前环境中安装package_name
  • 更新包

    • conda update package_name:将package_name更新到最新版本。
  • 移除包

    • conda remove package_name:卸载package_name
  • 列出已安装包

    • conda list:列出当前环境中已安装的包。
  • 搜索包

    • conda search package_name:搜索可用的包。
  • 更新Conda

    • conda update conda:更新conda本身。
    • conda update --all:更新当前环境中所有包,不过没事不需要更新。

Pip

管理包

  • 安装包

    • pip install package_name:安装package_name
  • 升级包

    • pip install --upgrade package_name:升级package_name到最新版本。
  • 卸载包

    • pip uninstall package_name:卸载package_name
  • 列出已安装包

    • pip list:列出已安装的包。
  • 安装特定版本的包

    • pip install package_name==1.2.3:安装package_name的1.2.3版本。
  • 从文件安装包

    • pip install -r requirements.txt:根据requirements.txt文件安装包。
  • 查看可用更新

    • pip list --outdated:查看有哪些包有更新版本。
  • 冻结当前环境的包

    • pip freeze > requirements.txt:将当前环境的包及其版本输出到requirements.txt
  • 显示包信息

    • pip show package_name:显示package_name的详细信息。

Git

如果你想深入学习,这里是一些非常棒的资料:

  • Pro Git:汉化版。
  • Learn Git Branching:一个交互的学习平台。

仓库状态与更新

  • 查看仓库状态

    • git status:查看当前仓库状态,了解未提交的更改和未跟踪的文件。
  • 查看远程更新

    • git fetch:从远程仓库获取更新,但不合并到本地。
      • 之后可使用git diff origin/main查看与远程主分支的差异。
  • 拉取更新

    • git pull:获取远程仓库的更新并合并到当前分支。
      • 等同于git fetchgit merge

常用Git命令

  • 克隆仓库
    • git clone https://github.com/user/repository.git:将远程仓库克隆到本地。
  • 添加更改
    • git add file:将file的更改添加到暂存区。
    • git add -u:将当前仓库已跟踪文件的更改添加到暂存区。
  • 提交更改
    • git commit -m "commit message":提交暂存区的更改并添加提交信息。
    • git commit -a -m "commit message":跳过git add,直接提交所有已跟踪文件的更改。
  • 查看差异
    • git diff:查看工作目录和暂存区之间的差异。
    • git diff --staged:查看已暂存的更改与上次提交之间的差异。
  • 撤销更改
    • git checkout -- file:丢弃工作目录中对file的修改。
    • git reset HEAD file:取消暂存区中file的更改。
    • git reset --hard:重置当前分支到上次提交状态,丢弃所有未提交的更改。
      • 注意:此操作不可逆。
  • 推送更改
    • git push origin branch_name:将本地分支推送到远程仓库。
  • 查看提交日志
    • git log:查看提交历史记录。
    • git log --oneline:以单行格式显示日志。
  • 创建并切换分支
    • git branch new_branch:创建new_branch分支。
    • git checkout new_branch:切换到new_branch分支,或许以后会被更轻量的 switch 替代。
    • git checkout -b new_branch:创建并切换到new_branch分支。
  • 合并分支
    • git merge branch_name:将branch_name合并到当前分支。
  • 删除分支
    • git branch -d branch_name:删除本地分支。
    • git push origin --delete branch_name:删除远程分支。

配置

  • 设置全局用户名和邮箱
    • git config --global user.name "Your Name":设置用户名。
    • git config --global user.email "you@example.com":设置邮箱。
  • 查看配置信息
    • git config --list:列出所有Git配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/887213.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【越学学糊涂的Linux系统】(5)shell命令以及运行原理|权限问题

Ⅰ.shell命名以及运行原理: 0x00引用: 什么是shell命令?? ✔️ Shell 是一种命令行解释器(Command - Line Interpreter),它为用户提供了与操作系统内核进行交互的接口。用户通过在 She…

【Qt】控件概述(3)—— 显示类控件

显示类控件 1. QLabel——标签1.1 setPixmap设置图片1.2 setAlignment设置文本对齐方式1.3 setWordWrap设置自动换行1.4 setIndent设置缩进1.5 setMargin设置边距1.6 body 2. QLCDNumber2.1 使用QTimer实现一个倒计时效果2.2 使用循环的方式实现倒计时 3. QProgressBar——进度…

【工程测试技术】第6章 信号处理初步,频谱分析,相关系数

目录 6.1 数字信号处理的基本步骤 6.2 离散信号及其频谱分析 6.2.1 概述 6.2.2 时域采样、混叠和采样定理 6.2.3 量化和量化误差 6.2.4 截断、泄漏和窗函数 6.2.5 频域采样、时域周期延拓和栅栏效应 6.2.6 频率分辨率、整周期截断 6.3 相关分析及其应用 6.3.1 两…

【C++】--类与对象(1)

🧇个人主页: 起名字真南 🌭个人专栏:【数据结构初阶】 【C语言】 【C】 目录 1 类的定义1.1 类定义格式1.1.1 Stack类1.1.2 Date类1.1.3 Struct格式 1.2 访问限定符1.3 类域 2 实例化2.2 对象大小 3 this指针 1 类的定义 1.1 类定义格式 1 class为定义…

解决磁盘负载不均——ElasticSearch 分片分配和路由设置

ES 分片分配(Shard Allocation)时间点: 初始恢复(Initial Recovery)副本分配(Replica Allocation)重平衡(Rebalance)节点添加或移除 小结: 准备移除节点时&a…

【Golang】关于Go语言字符串转换strconv

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

k8s-集群部署1

k8s-集群部署1 一、基础环境准备二、docker环境准备三、k8s集群部署1.kubeadm创建集群2.使用kubeadm引导集群 总结 一、基础环境准备 首先,需要准备三个服务器实例,这里我使用了阿里云创建了三个实例,如果不想花钱,也可以在VM上创…

1panel申请https/ssl证书自动续期

参考教程 https://hin.cool/posts/sslfor1panel.html #Acme 账户 #1panel.腾讯云dns账号 这里有一步不需要参考,腾讯云dns账号,就是子帐号授权 直接控制台搜索 访问管理 创建用户 授权搜索dns,选择第一个 点击用户名,去掉AdministratorAccess权限 5.点击api密钥生成即可…

CSS3练习--电商web

免责声明:本文仅做分享! 目录 小练--小兔鲜儿 目录构建 SEO 三大标签 Favicon 图标 布局网页 版心 快捷导航(shortcut) 头部(header) logo 导航 搜索 购物车 底部(footer&#xff0…

初学51单片机之I2C总线与E2PROM二

总结下上篇博文的结论: 1:ACK信号在SCL为高电平期间会一直保持。 2:在字节数据传输过程中如果发送电平跳变,那么电平信号就会变成重复起始或者结束的信号。(上篇博文的测试方法还是不能够明确证明这个结论&#xff0…

字符串和字符数组(2)

6.求字符串长度 C语言中有一个库函数叫strlen,这个函数是专门用来求字符串长度的。strlen的使用需要包含一个头文件string.h。 strlen函数统计的是字符串中\0之前的字符个数,所以传递给strlen函数的字符串中必须得包含\0. 请看代码: #inc…

数据结构 ——— 单链表oj题:链表分割(带哨兵位单向不循环链表实现)

目录 题目要求 手搓简易单链表 代码实现 题目要求 现有一链表的头指针 ListNode* head ,给一定值 x ,编写一段代码将所有小于 x 的节点排在其余节点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头节点 举例说明&a…

免费送源码:Javaspringboot++MySQL springboot 社区互助服务管理系统小程序 计算机毕业设计原创定制

摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受居民的喜爱,社区互助服务管理系统小程序被居民普遍使用,为…

macOS编译和运行prometheus2.54

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文详述了在macOS(M2芯片)上编译和运行prometheus2.54版本的过程,以及安装node_exporter和grafana并使用prometheus指标进行展示 本地…

Redis:zset类型

Redis:zset类型 zset命令ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZREVRANGEBYSCOREZPOPMAXBZPOPMAXZPOPMINBZPOPMINZRANKZREVRANKZSCOREZREMZREMRANGEBYRANKZREMRANGEBYSCOREZINCRBY 集合间操作ZINRERSTOREZUNIONSTORE 内部编码ziplistskiplist 在Redis中&…

单片机的两种看门狗原理解析——IWDG和WWDG

一、IWDG独立开门狗的主要性能 计时机制: 递减计数器 独立开门狗的初始频率: LSI低速内部时钟:RC震荡器,40kHz 独立开门狗是以LSI为初始频率的,所以独立开门狗的初始时钟频率取决与单片机本身,因此在使…

[每周一更]-(第117期):硬盘分区表类型:MBR和GPT区别

文章目录 1. **支持的磁盘容量**2. **分区数量**3. **引导方式**4. **冗余和数据恢复**5. **兼容性**6. **安全性**7. **操作系统支持**8. 对比 国庆假期前补一篇 在一次扫描机械硬盘故障的问题,发现我本机SSD和机械硬盘的分类型不一样,分别是GPT和MBR&a…

Matlab编程示例24:freexyn在b站的读取手写体mnist数据集的matlab代码

1.mnist手写体数据集介绍 手写数字MNIST数据库由60000个示例的训练集和10000个示例的测试集组成。这些数字已进行归一化,每个示例是28*28像素的图片,图片是黑底白字,每个图片的标签就是图片上的数字,数字范围是0~9,总…

记录一次病毒启动脚本

在第一次下载软件时,目录中配了一个使用说明,说是需要通过start.bat 这个文件来启动程序,而这个 start.bat 就是始作俑者: 病毒作者比较狡猾,其中start.bat 用记事本打开是乱码,但是可以通过将这个批处理…

小程序 uniapp+Android+hbuilderx体育场地预约管理系统的设计与实现

目录 项目介绍支持以下技术栈:具体实现截图HBuilderXuniappmysql数据库与主流编程语言java类核心代码部分展示登录的业务流程的顺序是:数据库设计性能分析操作可行性技术可行性系统安全性数据完整性软件测试详细视频演示源码获取方式 项目介绍 用户 注册…