首页 > 其他分享 >【AIcoding技术必知必会】10问--命令行是什么?

【AIcoding技术必知必会】10问--命令行是什么?

时间:2025-01-16 23:29:37浏览次数:3  
标签:10 git 文件 必知 创建 -- Git user 命令行

基础介绍

命令行(Command Line)是一种通过输入文本命令来与计算机交互的界面,也称为命令行界面(CLI - Command Line Interface)。它是一种交互方法,而不是具体的程序。相比图形用户界面(GUI),命令行提供了更直接和强大的方式来控制计算机。熟练掌握后会大大提高工作效率,特别是在服务器管理、软件开发等领域非常有用。

命令行、终端、shell有什么区别?

命令行(Command Line)

  • 这是一个概念性的术语,指的是通过输入文本命令来与计算机交互的方式
  • 它是一种用户界面类型,与图形用户界面(GUI)相对
  • 命令行是一种交互方法,而不是具体的程序

终端(Terminal)

  • 是一个程序,提供了命令行界面的窗口
  • 负责处理输入和输出的显示
  • 可以理解为是命令行的"容器"或"窗口"
  • 现代终端都是终端模拟器,模拟早期的硬件终端
  • 例如:
    • Mac 上的 Terminal.app
    • iTerm2
    • Windows 上的 Command Prompt
    • Linux 上的 GNOME Terminal

Shell

  • 是一个命令解释器,是实际处理命令的程序
  • 负责解释用户输入的命令并执行相应的操作
  • 它是终端中实际运行的程序
  • 常见的 Shell:
    • Bash(Mac/Linux 默认)
    • Zsh(较新 Mac 系统默认)
    • PowerShell(Windows)
    • Fish
    • sh

举个例子来说明它们的关系:

  • 终端就像一个办公室
  • 命令行是你在办公室里工作的方式
  • Shell 则是实际帮你完成工作的助手

实际使用时:

  1. 你打开终端程序(如 Terminal.app)
  2. 终端启动一个 Shell(如 Bash 或 Zsh)
  3. 你通过命令行方式(输入文本命令)
  4. Shell 解释并执行这些命令
  5. 终端显示执行结果

命令行的使用流程参考

以一个前端开发项目的完整流程为例,展示命令行的使用过程:

场景:创建一个新的React项目,进行开发,并将代码提交到Git仓库

# 1. 创建项目目录
mkdir my-react-project     # 创建新项目文件夹
cd my-react-project       # 进入项目文件夹

# 2. 初始化新的React项目
npx create-react-app .    # 在当前目录创建React项目
# 等待项目创建完成...

# 3. 查看项目结构
ls -l                     # 列出所有创建的文件和文件夹
# 会看到 src/, public/, package.json 等文件和目录

# 4. 安装项目依赖
npm install              # 安装package.json中列出的所有依赖
npm install axios        # 安装额外需要的包,如axios用于HTTP请求

# 5. 启动开发服务器
npm start               # 启动开发服务器
# 现在可以在浏览器中访问 http://localhost:3000

# 6. 初始化Git仓库
git init               # 初始化新的Git仓库

# 7. 配置Git
git config user.name "你的名字"    # 设置Git用户名
git config user.email "你的邮箱"   # 设置Git邮箱

# 8. 创建.gitignore文件
echo "node_modules/" >> .gitignore    # 添加node_modules到忽略列表
echo ".env" >> .gitignore             # 添加.env文件到忽略列表

# 9. 添加文件到Git
git add .              # 添加所有文件到暂存区
git status            # 查看当前Git状态,确认添加的文件

# 10. 创建第一次提交
git commit -m "初始化项目"    # 创建首次提交

# 11. 连接远程仓库(假设已在GitHub创建了仓库)
git remote add origin https://github.com/用户名/my-react-project.git
git push -u origin main    # 推送到远程仓库

# 12. 进行开发修改
vim src/App.js        # 使用vim编辑器修改App.js文件
# 或使用其他编辑器进行修改

# 13. 查看修改
git diff              # 查看做了哪些修改

# 14. 提交新的修改
git add src/App.js    # 添加修改的文件
git commit -m "更新App组件"  # 提交修改
git push              # 推送到远程仓库

# 15. 构建生产版本
npm run build         # 构建生产版本
ls build/            # 查看构建后的文件

# 16. 查看项目状态
npm run test         # 运行测试
npm audit           # 检查依赖包的安全问题

命令行的使用场景和示例

使用建议:

  1. 开始时可以保存这些常用命令作为参考
  2. 多使用 --help 或 man 命令查看详细说明
  3. 重要操作前先在测试环境验证
  4. 涉及删除或修改时要特别小心
  5. 可以创建别名(alias)来简化常用命令

记住:命令行最大的优势是自动化和批处理能力,当你需要重复执行某些操作时,命令行往往是最高效的选择。

场景示例
Git 版本控制
# 将所有修改的文件添加到暂存区
git add .
# 创建一个新的提交,描述为"更新登录功能"
git commit -m "更新登录功能"
# 将本地的提交推送到远程仓库的main分支
git push origin main

文件管理

# 列出当前目录下的所有文件和文件夹,包含详细信息
ls -l
# 创建一个名为"projects"的新文件夹
mkdir projects
# 将文件.txt文件移动到projects文件夹
mv document.txt projects/

系统管理

# 显示系统中所有正在运行的进程
ps aux
# 查看系统磁盘使用情况,-h表示以人类可读格式显示
df -h
# 查看当前系统内存使用情况
free -h

远程操作

# 通过SSH连接到远程服务器(user是用户名,server.com是服务器地址)
ssh user@server.com
# 将本地文件上传到远程服务器
scp local.txt user@server.com:/home/user/
# 从远程服务器下载文件到本地
scp user@server.com:/home/user/remote.txt ./

软件安装

# 在Mac上使用brew安装Node.js
brew install node
# 使用npm安装Express框架(-g表示全局安装)
npm install -g express
# 在Ubuntu/Debian上更新软件包列表
sudo apt update

文件查找

# 在当前目录及子目录中查找名为"config.json"的文件
find . -name "config.json"
# 查找最近7天内修改过的所有.txt文件
find . -name "*.txt" -mtime -7
# 在当前目录中搜索包含"error"的文件内容
grep -r "error" .

权限管理

# 使脚本文件可执行(添加执行权限)
chmod +x script.sh
# 修改文件所有者为"user"
sudo chown user file.txt
# 递归修改文件夹及其内容的权限为755
chmod -R 755 folder/

进程管理

# 查看名为"nginx"的进程
ps aux | grep nginx
# 终止进程ID为1234的进程
kill 1234
# 强制终止所有nginx进程
killall -9 nginx

网络诊断

# 测试与google.com的网络连接
ping google.com
# 显示3000端口的使用情况
lsof -i :3000
# 查看网络接口配置
ifconfig

日志查看

# 实时查看日志文件的最新内容
tail -f app.log
# 显示日志文件的最后100行
tail -n 100 app.log
# 在日志中搜索错误信息
grep "ERROR" app.log

压缩/解压

# 将文件夹压缩为zip文件
zip -r archive.zip folder/
# 解压zip文件
unzip archive.zip
# 创建tar.gz压缩文件
tar -czf archive.tar.gz folder/

数据库操作

# 连接到MySQL数据库(会提示输入密码)
mysql -u root -p
# 导出数据库备份
mysqldump -u user -p database > backup.sql
# 导入数据库备份
mysql -u user -p database < backup.sql

使用建议:

标签:10,git,文件,必知,创建,--,Git,user,命令行
From: https://blog.csdn.net/srzxy42/article/details/145169572

相关文章

  • 高等数学学习笔记 ☞ 不定积分的积分法
    1. 第一换元积分法1.基础概念:形如的过程,称为第一换元积分法。2.核心思想:通过对被积函数的观察(把被积函数的形式与积分表的积分公式进行比较),把外部的部分项拿到的内部(求原函数),           然后进行拼凑,把拼凑的部分看成一个整体,最后利用积分表......
  • 学习疯狂JAVA讲义1.16
    练习结果:(如有更好方法,敬请指点)这两天沉迷刘晓庆自传—《人生不怕从头再来》,光看前言就入坑了,这女人身上的魅力是无与伦比的,她的经历是文坛作家们绞尽脑汁,想到死,想到吐血都编撰不出来的,既刺激又真实,让人不舍得睡醒再读,吸引着我必须当天读完!        金句摘抄如......
  • 位运算练习
    判断字符是否唯一面试题01.01.判定字符是否唯一-力扣(LeetCode)思路此题可以用位运算解决,我们这里使用位图。位图:即定义一个数字将其转换为32个二进制位,将其初始化为0,每个字母代表一位,判断每个位置是否为1,如果为0,则将其加一(相当于记录此位置存在一种字母);如果为1,则之前这......
  • 高等数学学习笔记 ☞ 不定积分与积分公式
    1. 不定积分的定义1.原函数与导函数的定义:  若函数可导,且,则称函数是函数的一个原函数,函数是函数的导函数。备注:①:若函数是连续的,则函数一定存在原函数,反之不对。②:因为,所以说函数是函数的一个原函数。③:根据定义,假设的原函数分别为,,则有,,    根据,可得(为......
  • 28、【OS】【Nuttx】最小系统初始化分析(4):定时器(二)
    背景接上篇wiki27、【OS】【Nuttx】最小系统初始化分析(4):定时器(一)分析了定时器初始化过程,以及初始化生成的定时器实例,并着重分析了实例对象里的sim_current方法,接下来对最小系统中,定时器的启动,以及执行的任务进行分析定时器启动来看定时器启动函数sim_start,这里有两......
  • juju与电脑bug斗争_睡眠过热处理
    juju与电脑bug斗争_睡眠过热处理事情源于本ju在看完b站视频后,将电脑盖下来,过了一会儿,发现电脑在悄悄发热,耗了很多电,且无法正常开机,只能强制重启。遂决定解决这个问题。(更详细的内容可以参考这篇文章“S0现代待机”的烦恼+解决方案)本文只介绍本ju是怎么在我的小破笔记本上操......
  • 转:gunicorn相关配置
    转自:https://blog.csdn.net/xu710263124/article/details/118975404 一、gunicorn的简介 Gunicorn是基于unix系统,被广泛应用的高性能的PythonWSGIHTTPServer。用来解析HTTP请求的网关服务。它通常是在进行反向代理(如nginx),或者进行负载均衡(如AWSELB)和一个web应用(比如D......
  • 用 Hierholzer 算法求解欧拉回路
    欧拉回路是图论中的一个经典概念,其核心在于寻找一条路径,使得该路径遍历图中的每一条边且仅遍历一次,并最终回到起点。作为图论入门的第一个问题,我们已经对欧拉回路的两个基本判定条件很了解了:偶数度顶点条件:图中每个顶点的度数(即连接到该顶点的边的数量)必须为偶数。这是因为路径......
  • 【鲜花】枯树
    2025.1.16一段路,无论上面是层叠茂密的碧绿,还是空荡虬曲的枝条,人们都是一样地走过。只是风变得不那么受欢迎,它却倔强地从天空的缝隙中挤进来。诗家之情于春秋最盛,大抵因为字被夏日骄阳融化,而墨被冬日寒风吹干吧。风像水从枯树的枝桠间流过,但树只一味把手伸向天空。天空是空旷的,树......
  • qt switchbutton
    qt实现的SwitchButton,从网上抄的代码,然后进行一些修改完善,如下switchbutton.h点击查看代码#ifndefSWITCHBUTTON_H#defineSWITCHBUTTON_H#include<QObject>#include<QWidget>#include<QTimer>#include<QColor>#include<QDebug>#definemyDebugqDebu......