前言:
我们学习嵌入式必须要知道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
分支拉取最新代码