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

news2024/9/27 23:26:29

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

文章目录

  • 命令行操作指令
    • 查看命令手册
    • 导航与目录操作
    • 文件操作
    • 查看文件内容
    • 文件权限与所有权
    • 环境变量
    • 系统信息
    • 进程管理
    • 网络操作
    • 其他常用命令
  • 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.coloradmin.cn/o/2171453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++反汇编逆向还原指令add sub imul idiv cdq

add 加法指令 比如add a,b 逆向还原为aab; sub 减法 比如sub a,b 逆向还原为aa-b; imul 乘法 比如sub a,b 逆向还原为aa*b; idiv 除法 比如sub a,b 逆向还原为aa/b; cdq 在x86 汇编中,用于扩展 eax 寄存器的符号位…

基于python深度学习遥感影像地物分类与目标识别、分割实践技术

我国高分辨率对地观测系统重大专项已全面启动,高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成,将成为保障国家安全的基础性和战略性资源。未来10年全球每天获取的观测数据将超过10PB,遥感大数据时…

优思学院:如何借助“六西格玛设计”流程确保产品创新成功?

六西格玛设计(DFSS, Design for Six Sigma)是一种专注于产品设计初期减少变异、确保高质量的方法。虽然六西格玛的核心目标是通过减少流程和产品变异来提升质量,但它对创新过程有着重要的支持作用。创新过程中,六西格玛设计能确保…

开源b2b2c商城系统流程 多用户商城系统流程图

在选择多用户商城系统时,服务质量至关重要。商淘云多用户商城系统凭借其卓越的功能和强大的客户支持,成为了许多企业的首选。下面我们一起分析多用户商城的特性及b2b2c商城系统思维导图,文中的图大家需要的可评论“666”领取。 首先&#xff…

【含文档】基于Springboot+Vue的学生宿舍管理系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

tomcat 文件上传 (CVE-2017-12615)

漏洞描述: 当 Tomcat 运行在 Windows 主机上,且启用了 HTTP PUT 请求方法 影响范围: Apache Tomcat 7.0.0 - 7.0.79 漏洞复现: 创建vulfocus靶场容器 poc #CVE-2017-12615 POC import requests import optparse import ospar…

mysql索引 -- 全文索引介绍(如何创建,使用),explain关键字

目录 全文索引 引入 介绍 创建 使用 表数据 简单搜索 explain关键字 使用全文索引 mysql索引结构详细介绍 -- mysql索引 -- 索引的硬件理解(磁盘,磁盘与系统),软件理解(mysql,与系统io,buffer pool),索引结构介绍和理解(page内部,page之间,为什么是b树)-CSDN博客 全文…

UE5: Content browser工具编写02

DebugHeader.h 中的全局变量,已经在一个cpp file中被include了,如果在另一个cpp file中再include它,就会有一些conflicts。先全部给加一个static Add static keyword to debug functionsWrap all the functions inside of a namespaceprint …

Linux入门攻坚——34、nsswitch、pam、rsyslog和loganalyzer前端展示工具

nsswitch&#xff1a;network service switch 名称解析&#xff1a;name <---> id 认证服务&#xff1a;用户名、密码验证或token验证等 名称解析和认证服务都涉及查找位置&#xff0c;即保存在哪里。如linux认证&#xff0c;passwd、shadow&#xff0c;是在文件中&…

Linux标准IO(五)-I/O缓冲详解

1.简介 出于速度和效率的考虑&#xff0c;系统 I/O 调用&#xff08;即文件 I/O&#xff0c;open、read、write 等&#xff09;和标准 C 语言库 I/O 函数&#xff08;即标准 I/O 函数&#xff09;在操作磁盘文件时会对数据进行缓冲&#xff0c;本小节将讨论文件 I/O 和标准 I/…

20 vue3之自定义hooks

Vue3 自定义Hook的作用 主要用来处理复用代码逻辑的一些封装 Vue3 的 hook函数 相当于 vue2 的 mixin, 不同在与 hooks 是函数Vue3 的 hook函数 可以帮助我们提高代码的复用性, 让我们能在不同的组件中都利用 hooks 函数 这个在vue2 就已经有一个东西是Mixins mixins就是将…

8,STM32CubeMX配置SPI工程(读取norflash的ID)

1&#xff0c;前言 单片机型号&#xff1a;STM32F407 编程环境 &#xff1a;STM32CubeMX Keil v5 硬件连接 &#xff1a;SPI1&#xff0c;CS/SS--->PB14 注&#xff1a;本工程在1&#xff0c;STM32CubeMX工程基础&#xff08;配置Debug、时钟树&#xff09;基础上完…

ARM点灯---看手册

知识点&#xff1a; 一个程序可能会遇到内存泄漏问题&#xff0c;可能一次运行泄漏几M大小&#xff0c;执行几个小时才会泄漏到站崩溃&#xff0c;所以要查看是否有内存泄漏。 查看手册教程 0927-上午 视频1&#xff1a;25&#xff1b;00 硬件程序开发流程 最小系统:单片…

AI驱动的智能运维:行业案例与挑战解析

华为、蚂蚁、字节跳动如何引领智能运维&#xff1f; ©作者|潇潇 来源|神州问学 引言 OpenAI 发布的 ChatGPT 就像是打开了潘多拉的魔盒&#xff0c;释放出了生产环境中的大语言模型&#xff08;LLMs&#xff09;。一些新的概念&#xff1a;“大语言模型运维 (LLMOps)”…

边裁员边收购,思科逐渐变身软件并购之王

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

计算机毕业设计党建学习网站查看发布党建评论留言搜索部署安装/springboot/javaWEB/J2EE/MYSQL数据库/vue前后分离小程序

目录 ‌开发背景‌&#xff1a; ‌开发意义‌&#xff1a; ‌开发目标‌&#xff1a; 部署安装 主要功能 功能图 界面介绍 技术介绍 需求分析 1. 用户角色分析 2. 功能需求分析 3. 性能需求分析 4. 界面设计需求 5. 其他需求 ‌党建学习网站的开发背景、意义与目…

史上最详细论文word排版格式指导保姆级教学!

一、前言 首先&#xff0c;每个学校的论文排版格式都是不太相同的&#xff0c;但大体上都是相似的。 正常来说&#xff0c;论文的排版操作是十分枯燥并且重复的&#xff0c;但是word中的样式工具使得论文排版会变得容易。 接下来我将以某个学校论文格式要求为例&#xff0c;…

新手做TikTok用什么手机?当然是海外云手机!

在当今数字化时代&#xff0c;TikTok已成为全球领先的短视频平台&#xff0c;吸引了大量个人和企业入驻&#xff0c;希望在这一广阔的市场中脱颖而出。然而&#xff0c;对于刚刚进入TikTok的新手来说&#xff0c;选择合适的工具是开启TikTok之路的第一步。近年来&#xff0c;海…

开关电源频率是什么?正常范围是多少?

在电子设备的小型化和高效化趋势下&#xff0c;开关电源的频率选择显得尤为重要。本文将详细阐述开关电源频率的范围及其测试方法。  一、开关电源频率的范围 开关电源是一种高效的电力转换装置&#xff0c;为电子设备提供稳定的电源。而作为评估开关电源性能的指标之一&#…

统信服务器操作系统【开机自启动】配置方法

开机自启动的四种配置方法,包括systemctl命令、rc.local文件、crontab任务,通过desktop配置开机自动,前三种方法适合后台程序或者脚本启动,最后一种方法适合图形化程序启动。 文章目录 准备环境配置方法一、通过编写service的方法,使用systemctl配置开机自启二、通过rc.lo…