常用指令
一开始学习计算机时我是拒绝使用linux和Git的,但习惯之后直呼真香。
以此来记录常用的命令,不然每次都要查或者问GPT老师。
Linux常用命令
系统信息
uname -a # 显示系统信息
hostname # 显示或设置主机名
whoami # 当前登录用户
uptime # 系统运行时间和负载
date # 当前日期和时间
cal # 显示日历
df -h # 查看磁盘使用情况
du -h # 查看目录或文件大小
free -m # 查看内存使用情况
top # 动态显示进程信息
htop # 类似 top,需安装
ps -aux # 列出所有运行进程
文件和目录操作
ls # 列出目录内容
ls -l # 显示详细信息
ls -a # 显示隐藏文件
cd /path/to/dir # 切换目录
pwd # 显示当前路径
mkdir new_dir # 创建目录
rmdir empty_dir # 删除空目录
rm file # 删除文件
rm -r dir # 删除目录及内容
cp source dest # 复制文件或目录
mv source dest # 移动或重命名文件
find /path -name "*.txt" # 查找文件
locate filename # 快速查找文件
tree # 树状结构显示目录,需安装
touch file.txt # 创建空文件
stat file.txt # 查看文件详细信息
file file.txt # 检测文件类型
文件内容查看
cat file.txt # 显示文件内容
tac file.txt # 倒序显示文件内容
less file.txt # 分页查看文件内容
more file.txt # 类似 less
head -n 10 file.txt # 查看文件前10行
tail -n 10 file.txt # 查看文件后10行
tail -f log.txt # 实时跟踪日志
nl file.txt # 显示文件内容并添加行号
权限管理
chmod 755 file.txt # 修改权限
chown user file.txt # 修改文件所有者
chgrp group file.txt # 修改文件所属组
umask 022 # 设置文件默认权限
数字权限表示法
数字权限用三个数字(0–7)来表示,分别对应:
- 第一个数字:文件所有者(User)的权限。
- 第二个数字:同组用户(Group)的权限。
- 第三个数字:其他用户(Others)的权限。
每个数字表示权限的组合,权限值如下:
- 4:读权限 (Read,
r
) - 2:写权限 (Write,
w
) - 1:执行权限 (Execute,
x
) - 0:无权限 (No permission)
数字可以累加,例如:
7 = 4 + 2 + 1
表示读、写、执行权限。5 = 4 + 1
表示读和执行权限。6 = 4 + 2
表示读和写权限。
755 的含义
数字 | 权限范围 | 权限组合 | 符号表示法 |
---|---|---|---|
7 | 文件所有者 | 读、写、执行 | rwx |
5 | 同组用户 | 读、执行 | r-x |
5 | 其他用户 | 读、执行 | r-x |
所以:
- 文件所有者 有 读 (r)、写 (w) 和 执行 (x) 权限。
- 同组用户 和 其他用户 只有 读 (r) 和 执行 (x) 权限,但 不能修改文件。
网络相关
ping google.com # 测试网络连通性
curl https://example.com # 发送 HTTP 请求
wget https://example.com # 下载文件
ifconfig # 查看网络配置
ip a # 显示网络接口信息
netstat -tuln # 查看网络连接状态
ss -tuln # 替代 netstat
traceroute google.com # 跟踪网络路径
scp file user@remote:/path # 通过 SSH 复制文件
rsync -av source dest # 同步文件或目录
ssh user@remote # 远程登录服务器
用户管理
who # 查看在线用户
w # 当前登录用户及活动
useradd new_user # 添加用户
passwd new_user # 修改用户密码
usermod -aG group user # 添加用户到组
su - username # 切换用户
sudo command # 以管理员权限执行命令
磁盘管理
fdisk -l # 显示分区信息
mkfs.ext4 /dev/sdX1 # 格式化分区
mount /dev/sdX1 /mnt # 挂载设备
umount /mnt # 卸载设备
blkid # 查看设备 UUID
lsblk # 查看块设备信息
df -h # 查看磁盘使用情况
du -sh dir # 统计目录大小
软件管理
apt-get install pkg # 安装软件
apt-get update # 更新软件源
apt-get upgrade # 升级系统
dpkg -i package.deb # 安装 .deb 文件
进程管理
ps # 查看进程
ps aux # 查看所有进程
ps aux | grep python # 查看特定进程
kill PID # 杀死指定进程
killall process_name # 按名称杀死进程
jobs # 查看后台任务
fg # 将任务切换到前台
bg # 将任务切换到后台运行
Shell 编程相关
echo "Hello, World!" # 输出信息
read var # 读取用户输入
env # 显示环境变量
export VAR=value # 设置环境变量
alias ll='ls -l' # 创建命令别名
history # 显示历史命令
clear # 清空屏幕
其他工具
man command # 查看命令帮助文档
help command # 查看 shell 内置命令帮助
which command # 显示命令路径
time command # 统计命令执行时间
basename /path/file.txt # 获取文件名
dirname /path/file.txt # 获取路径
Git常用指令
Git 配置
git config --global user.name "Your Name" # 设置全局用户名
git config --global user.email "your.email@example.com" # 设置全局邮箱
git config --list # 查看当前配置
git config --global core.editor vim # 设置默认编辑器
Git 仓库操作
git init # 初始化一个新的 Git 仓库
git clone <repo_url> # 克隆远程仓库到本地
git status # 查看当前分支的状态
git log # 查看提交历史
git log --oneline # 简化查看提交历史
git show <commit_hash> # 查看某次提交的详细信息
Git 分支管理
git branch # 查看本地分支
git branch <branch_name> # 创建新分支
git checkout <branch_name> # 切换到指定分支
git checkout -b <branch_name> # 创建并切换到新分支
git merge <branch_name> # 合并分支到当前分支, 保留分支的历史记录,生成一个新的合并提交。
git rebase <base_branch> # 会将一个分支的提交重新应用到另一个分支的基础上,历史被“重写”,没有合并提交。
git branch -d <branch_name> # 删除本地分支
git branch -D <branch_name> # 强制删除本地分支
提交更改
git add <file> # 添加指定文件到暂存区
git add . # 添加当前目录下的所有文件到暂存区
git commit -m "commit message" # 提交更改并添加描述
git commit --amend # 修改上一次的提交信息
远程仓库操作
git remote -v # 查看远程仓库地址
git remote add origin <repo_url> # 添加远程仓库
git push origin <branch_name> # 推送分支到远程仓库
git push -u origin <branch_name> # 推送分支并关联远程分支
git pull origin <branch_name> # 从远程仓库拉取并合并到本地
git fetch origin # 拉取远程仓库更新但不合并
查看和管理更改
git diff # 查看工作区的更改
git diff --cached # 查看已暂存的更改
git diff <commit1> <commit2> # 比较两个提交的差异
git blame <file> # 查看每行代码的修改记录
git show <commit_hash> # 查看某次提交的具体更改
撤销更改
git restore <file> # 撤销工作区中的更改
git restore --staged <file> # 撤销暂存区的更改
git reset <commit_hash> # 回退到指定提交,但保留更改
git reset --hard <commit_hash> # 强制回退到指定提交,丢弃更改
git checkout <file> # 恢复文件到最后一次提交的状态
标签管理
git tag # 查看所有标签
git tag <tag_name> # 创建轻量标签
git tag -a <tag_name> -m "message" # 创建带注释标签
git show <tag_name> # 查看标签信息
git push origin <tag_name> # 推送标签到远程
git push origin --tags # 推送所有标签到远程
git tag -d <tag_name> # 删除本地标签
git push origin --delete <tag_name> # 删除远程标签
Stash(保存工作进度)
git stash # 保存当前工作进度
git stash list # 查看保存的工作进度
git stash apply # 恢复最近的存储
git stash apply stash@{index} # 恢复指定的存储
git stash drop stash@{index} # 删除指定存储
git stash clear # 清除所有存储
子模块管理
git submodule add <repo_url> <path> # 添加子模块
git submodule update --init --recursive # 初始化并更新子模块
git submodule foreach git pull origin main # 更新所有子模块
日志和历史
git log # 查看提交历史
git log --oneline # 简洁版提交历史
git reflog # 查看所有的操作记录
git bisect start # 开始二分查找 bug
实用命令
git clean -f # 清理未追踪的文件
git gc # 垃圾回收,优化仓库
git cherry-pick <commit_hash> # 应用指定提交的更改
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 ZCP妙妙屋!