Linux&git常用命令

前言:

我们学习嵌入式必须要知道linux和git基本命令的使用,本篇内容是一些常用命令的使用。

一.Linux

1. **文件和目录操作命令**

1.1 - **`ls`**: 列出目录内容

 - `ls -l`: 显示详细信息(权限、所有者、文件大小等) 

 - `ls -a`: 显示隐藏文件

 - `ls -lh`: 文件大小以人类可读的形式显示

  - `ls -R`: 递归显示目录及其子目录内容

 

  1.2 - **`cd`**: 改变目录


     - `cd ~`: 进入当前用户的主目录
     - `cd ..`: 返回上一级目录
     - `cd -`: 返回之前所在的目录

 

 1.3  - **`mkdir`**: 创建目录


     - `mkdir dirname`: 创建一个名为`dirname`的目录
     - `mkdir -p /path/to/dir`: 递归创建目录路径 

 1.4  - **`rm`**: 删除文件或目录


     - `rm filename`: 删除文件
     - `rm -r directory`: 递归删除目录及其内容
     - `rm -f filename`: 强制删除文件,不提示确认

 

  1.5 - **`cp`**: 复制文件或目录


     - `cp source destination`: 复制文件
     - `cp -r source_dir destination_dir`: 递归复制目录

 1.6  - **`mv`**: 移动或重命名文件


     - `mv old_name new_name`: 重命名文件或目录
     - `mv file /new/location`: 移动文件到新位置

 

   1.7- **`touch`**: 创建空文件或更新文件的修改时间


     - `touch filename`: 创建一个空文件
     - `touch -t YYMMDDhhmm filename`: 设置特定的修改时间

2. **文件查看命令**


  1.1 - **`cat`**: 显示文件内容


     - `cat filename`: 显示文件内容
     - `cat file1 file2 > file3`: 合并文件内容并重定向到新的文件

   1.2- **`less`**: 分页查看文件内容


     - `less filename`: 逐页查看文件内容
     - `less +F filename`: 以跟随模式查看文件更新(适合查看日志)

   1.3- **`head`**: 查看文件开头部分


     - `head filename`: 查看文件的前10行
     - `head -n 20 filename`: 查看文件的前20行

   1.4- **`tail`**: 查看文件末尾部分


     - `tail filename`: 查看文件的最后10行
     - `tail -f filename`: 实时查看文件内容更新(常用于查看日志)

   1.5- **`grep`**: 在文件中搜索特定的字符串


     - `grep "pattern" filename`: 搜索文件中包含`pattern`的行
     - `grep -r "pattern" /path/to/dir`: 递归搜索目录中的所有文件
     - `grep -i "pattern" filename`: 忽略大小写进行搜索
     - `grep -v "pattern" filename`: 反向匹配,显示不包含`pattern`的行

 3. **文件权限与所有权**


  1.1 - **`chmod`**: 更改文件权限


     - `chmod 755 filename`: 将文件权限设置为`rwxr-xr-x`
     - `chmod +x filename`: 为文件添加可执行权限
     - `chmod -R 644 directory`: 递归更改目录及其内容的权限

  1.2 - **`chown`**: 更改文件所有者


     - `chown user:group filename`: 更改文件的所有者和组
     - `chown -R user:group directory`: 递归更改目录及其内容的所有者和组

4. **系统管理命令**


  1.1 - **`ps`**: 查看当前运行的进程


     - `ps aux`: 显示系统中所有进程的详细信息
     - `ps -ef`: 显示进程的完整格式输出

  1.2 - **`top`**: 实时显示系统进程及资源占用情况


     - `top`: 启动系统资源监控界面
     - `htop`: 一个更友好的进程监视工具(需要安装)

  1.3 - **`kill`**: 终止进程


     - `kill PID`: 发送终止信号给指定进程
     - `kill -9 PID`: 强制终止进程

  1.4 - **`df`**: 显示磁盘空间使用情况


     - `df -h`: 以人类可读的格式显示磁盘使用情况

   1.5- **`du`**: 查看目录或文件的磁盘使用情况


     - `du -h filename`: 显示文件或目录的大小
     - `du -sh *`: 显示当前目录下每个文件或目录的总大小

  1.6 - **`free`**: 查看内存使用情况


     - `free -h`: 以人类可读的格式显示内存使用情况

 5. **网络管理命令**


  1.1 - **`ifconfig`**: 显示或配置网络接口(新版本Linux中推荐使用`ip`命令)


     - `ifconfig`: 显示网络接口的配置信息
     - `ifconfig eth0 down/up`: 禁用/启用网络接口

   1.2- **`ping`**: 测试网络连通性


     - `ping 8.8.8.8`: 测试与目标IP的连通性
     - `ping -c 4 google.com`: 发送4次ping请求后停止

  1.3 - **`netstat`**: 显示网络连接、路由表、接口状态等


     - `netstat -tuln`: 显示所有监听的网络端口
     - `netstat -a`: 显示所有活动的网络连接

  1.4 - **`scp`**: 安全复制文件(通过SSH)


     - `scp file user@remote:/path/to/dir`: 将本地文件复制到远程服务器
     - `scp user@remote:/path/to/file /local/dir`: 将远程文件复制到本地

   1.5- **`wget`**: 从网络上下载文件


     - `wget http://example.com/file.zip`: 下载指定URL的文件

6. **文本处理工具**


  1.1 - **`awk`**: 文本处理工具


     - `awk '{print $1}' filename`: 打印文件中的第一列
     - `awk -F, '{print $2}' filename`: 指定逗号为分隔符,打印第二列

  1.2 - **`sed`**: 流编辑器,用于文本替换、插入、删除


     - `sed 's/old/new/g' filename`: 将文件中的`old`字符串替换为`new`
     - `sed '/pattern/d' filename`: 删除文件中匹配`pattern`的行

  1.3 - **`cut`**: 剪切文本


     - `cut -d':' -f1 /etc/passwd`: 以`:`为分隔符,提取文件的第一列

   1.4- **`sort`**: 排序文本


     - `sort filename`: 对文件内容进行排序
     - `sort -r filename`: 反向排序

  1.5 - **`uniq`**: 删除重复行


     - `uniq filename`: 删除相邻重复行
     - `uniq -c filename`: 统计重复行的出现次数

7. **压缩与解压缩**


   1.1- **`tar`**: 创建和解压归档文件


     - `tar -czvf archive.tar.gz /path/to/dir`: 压缩目录为.tar.gz格式
     - `tar -xzvf archive.tar.gz`: 解压.tar.gz文件

  1.2 - **`zip`**: 创建压缩文件


     - `zip archive.zip filename`: 压缩文件为.zip格式
     - `zip -r archive.zip /path/to/dir`: 递归压缩目录

   1.3- **`unzip`**: 解压.zip文件


     - `unzip archive.zip`: 解压缩.zip文件

 8. **包管理器命令**


  1.1 - **`apt-get` (Debian/Ubuntu)**:


     - `apt-get update`: 更新包列表
     - `apt-get install package_name`: 安装包
     - `apt-get remove package_name`: 删除包

   1.2- **`yum` (RHEL/CentOS)**:


     - `yum update`: 更新系统
     - `yum install package_name`: 安装包
     - `yum remove package_name`: 删除包

9. **系统信息查看**


  1.1 - **`uname`**: 查看系统信息


     - `uname -a`: 显示系统的所有信息
     - `uname -r`: 显示内核版本

   1.2 - **`uptime`**: 显示系统的运行时间和负载

二.Git

1. 配置 Git

git config: 配置 Git 的用户信息和行为

git config --global user.name "Your Name": 设置全局用户名

git config --global user.email "youremail@example.com": 设置全局用户邮箱

git config --list: 查看当前的 Git 配置

2. 仓库初始化

git init: 初始化 Git 仓库

git init: 在当前目录初始化一个新的 Git 仓库

git init new_repo: 创建一个名为 new_repo 的新目录并初始化 Git 仓库

3. 克隆仓库

git clone: 克隆一个远程仓库到本地

git clone https://github.com/user/repo.git: 克隆指定的远程仓库

git clone https://github.com/user/repo.git new_folder: 克隆仓库到指定目录 new_folder

4. 查看仓库状态

git status: 查看工作区和暂存区的状态

git status: 显示当前分支的状态,包括未跟踪的文件、修改和暂存文件

git log: 查看提交历史

git log: 显示当前分支的提交历史

git log --oneline: 简洁地显示提交历史(每个提交占一行)

git log --graph: 图形化显示提交历史

git diff: 比较文件差异

git diff: 显示工作区与暂存区的文件差异

git diff --staged: 显示暂存区与最新提交的差异

5. 添加与提交文件

git add: 将文件添加到暂存区

git add filename: 添加指定文件到暂存区

git add .: 添加当前目录的所有更改到暂存区

git commit: 提交暂存区的文件到仓库

git commit -m "commit message": 提交并添加提交信息

git commit -a -m "commit message": 跳过 git add,提交所有已跟踪文件的更改

git commit --amend: 修改最后一次提交

git commit --amend -m "new message": 修改上一次提交的提交信息

6. 分支操作

git branch: 管理分支

git branch: 显示所有分支

git branch branch_name: 创建新分支

git branch -d branch_name: 删除指定分支

git branch -m old_branch new_branch: 重命名分支

git checkout: 切换分支或恢复文件

git checkout branch_name: 切换到指定分支

git checkout -b new_branch: 创建并切换到新分支

git checkout -- filename: 撤销对文件的修改,恢复到最近一次提交的状态

git merge: 合并分支

git merge branch_name: 将指定分支合并到当前分支

git rebase: 变基操作

git rebase branch_name: 将当前分支的提交变基到指定分支上

7. 远程仓库操作

git remote: 管理远程仓库

git remote -v: 查看远程仓库的URL

git remote add origin https://github.com/user/repo.git: 添加远程仓库并命名为origin

git remote remove origin: 删除远程仓库 origin

git fetch: 从远程仓库获取更新

git fetch: 获取远程仓库的更新但不合并

git fetch origin branch_name: 获取远程分支的更新

git pull: 从远程仓库获取更新并合并

git pull: 拉取并合并远程仓库的更新

git pull origin branch_name: 拉取并合并远程指定分支的更新

git push: 将本地提交推送到远程仓库

git push origin branch_name: 将当前分支推送到远程仓库

git push -u origin branch_name: 推送并设置跟踪关系(将本地分支与远程分支关联)

8. 标签操作

git tag: 管理标签

git tag: 列出所有标签

git tag -a v1.0 -m "version 1.0": 创建带注释的标签

git show v1.0: 查看标签的详细信息

git push origin v1.0: 推送指定标签到远程仓库

9. 撤销操作

git reset: 撤销提交或更改

git reset --hard HEAD~1: 回退到上一个提交,并丢弃工作区的更改

git reset --soft HEAD~1: 回退到上一个提交,但保留工作区的更改

git revert: 撤销某次提交

git revert commit_hash: 创建一个新的提交来撤销指定的提交

10. 其他常用命令

git stash: 临时保存工作区的更改

git stash: 将当前更改保存到栈中并清理工作区

git stash list: 查看保存的更改

git stash apply: 恢复最近一次保存的更改

git stash drop: 删除最近一次保存的更改

git stash pop: 恢复并删除最近一次保存的更改

git cherry-pick: 将特定提交应用到当前分支

git cherry-pick commit_hash: 将指定的提交应用到当前分支

11. Git 配合 Github 的操作

git clone: 从 Github 仓库克隆项目到本地

git push origin main: 推送到 Github 的 main 分支

git pull origin main: 从 Github 的 main 分支拉取最新代码

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轻谈半窗月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值