1279 字
6 分钟
【Linux】Linux常用命令

Linux常用命令#

日常开发#

下载#

curl 命令:

Terminal window
# -o 参数后指定要保存的文件名
curl -o filename.tar.gz http://example.com/file.tar.gz
# -O 从 URL 中提取文件名并使用该文件名保存到本地
curl -O http://example.com/file.tar.gz

wget 命令:

Terminal window
# -P 将文件下载到指定的路径
# -O 下载并自定义文件名保存
# -c 启用断点续传
# -b 启用后台下载
# -i 下载文件中的连接的文件
# 下载单个文件到当前目录
wget http://example.com/filename
# 下载大文件启用后台下载
wget -b http://releases.ubuntu.com/18.04/ubuntu-18.04.5-desktop-amd64.iso
# 查看进度
tail -f wget-log
# 下载多个文件
wget -i url_list.txt

包管理#

pacman#

  • 使用Reflector 自动选择最快镜像
Terminal window
# 选择中国地区最快的 10 个镜像
sudo reflector --country China --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
# 或选择全球最快的镜像
sudo reflector --latest 20 --protocol https --sort rate --save /etc/pacman.d/mirrorlist

git 基础配置#

ssh 连接Github#

要以个人身份访问github并管理私人仓库,就需要使用ssh连接到github进行鉴权。

  • 确保存在openssh

    ssh是包openssh的基础功能,首先需要先安装openssh工具包

  • 检查本地主机key

    Terminal window
    ls ~/.ssh
  • 生成ssh key

    Terminal window
    ssh-keygen -t rsa -C "xxx@xxx.com"
  • 获取ssh key 公钥

    Terminal window
    cat ~/.ssh/id_rsa.pub
  • github上添加公钥

  • 验证是否添加成功

    Terminal window
    ssh -T git@github.com
  • 配置全局信息

    Terminal window
    git config --global user.email "you@example.com"
    git config --global user.name "Your Name"
  • 配置git默认编辑器为vim

    Terminal window
    git config --global core.editor vim

git常用命令#

分支管理#

  • 将当前修改commit到新的分支

    Terminal window
    git stash
    git checkout -b <新的分支名>
    git stash pop
    git commit -a
  • 更改提交消息内容

    Terminal window
    git commit --amend -m "这是新的、正确的提交信息"

其他配置#

Ubuntu 与 Windows 双系统时间同步#

Windows 使用的是LocalTime机制,也就是会直接读取BIOS中的时间当作本地时间。而 Ubuntu 使用的时间机制是UTC机制,也就是格林尼治时间,会在BIOS时间的基础上加上时区(若Ubuntu设置的地区是Shanghai,则会在BIOS的基础上+8)。因此需要在Ubuntu中将时间机制更改为LocalTime模式。

Terminal window
# 安装ntpdate工具实现时间同步
sudo apt install ntpdate
# 设置ntp服务器
sudo ntpdate time.windows.com
# 更改系统时间机制,更改为LocalTime
sudo hwclock --localtime --systohc
TIP

除了windows的ntp时间服务器之外,还有如下ntp服务器可以选择:

# 阿里云授时服务器
ntp.aliyun.com
# 腾讯云授时服务器
time1.cloud.tencent.com
time2.cloud.tencent.com
time3.cloud.tencent.com
time4.cloud.tencent.com
time5.cloud.tencent.com
# 清华大学授时服务器
ntp.tuna.tsinghua.edu.cn
# 苹果授时服务器
time1.apple.com
time2.apple.com
time3.apple.com
time4.apple.com
time5.apple.com
time6.apple.com
time7.apple.com
# Google授时服务器
time1.google.com
time2.google.com
time3.google.com
time4.google.com

Linux 服务器#

NOTE

此处的服务器搭载Ubuntu 22.04系统

服务器用户组#

组别用户标识号备注
root0拥有系统的最高权限
sudo27允许其成员通过 sudo 命令临时获取 root 权限来执行命令
adm4组成员通常可以读取 /var/log 目录下的许多日志文件,方便追踪系统问题,但不能修改它们
daemon1用于一些不需要特殊权限的后台服务
bin2用于存放系统可执行文件的目录相关联,一些核心命令可能属于这个组
sys3和系统核心、驱动程序等底层资源相关
www-data33Web服务器(如 Nginx 或 Apache)默认使用的用户和组。网站文件(如HTML, PHP)的所有者通常需要设置为 www-data,以便Web服务器有权限读取和执行它们
mail8用于邮件服务(如 Postfix)
ssh114用于 SSH (Secure Shell) 守护进程,管理远程登录的权限
docker998允许其成员执行 Docker 命令,而无需使用 sudo。将一个用户添加到此组,意味着你给予了他管理Docker容器的权限,这几乎等同于 root 权限,因为可以轻易地通过 Docker 容器挂载宿主机目录来获得 root 访问权限
system-*如 systemd-journal, systemd-network,都是由 systemd 初始化系统创建和使用的,用于管理各自的子服务,例如日志、网络、时间同步等

用户管理#

检查用户组命令:

Terminal window
cat /etc/group # 查看所有用户组信息
groups # 列出当前登录用户所属的所有用户组
id # 显示用户的 UID 和所属组的信息,包括所有附加组
groups <username> # 查看用户的所属组
id <username> # 显示该用户的组信息

文件同步#

rsync同步

Terminal window
# -a 归档模式,保留权限、时间戳等属性
# -v 显示详细输出
# -z 传输时压缩数据
# --delete 删除目标中源目录没有的文件
# 将本地文件传到远程服务器(push)
rsync -avz --delete ./dist/ 服务器的用户名@服务器的IP:/server_path/
# 将远程文件传输到本地(pull)
rsync -a username@remote_host:/home/username/dir1 place_to_sync_on_local_machine
# 指定 ssh 端口
rsync -avz -e "ssh -p $port" /local/path/ user@remoteip:/path/to/files/
# 设置备份带宽
rsync --bwlimit=100 -avzhe ssh /var/lib/rpm/ root@remoteip:/root/tmprpm/

nginx 代理#

  • 测试nginx配置
Terminal window
nginx -t
  • 启动nginx服务
Terminal window
sudo systemctl start nginx # 启动nginx服务
sudo systemctl enable --now nginx # 开机自启
  • 关闭nginx服务
Terminal window
sudo systemctl stop nginx
sudo nginx -s stop # 直接停止
sudo nginx -s quit # 平滑关闭
【Linux】Linux常用命令
http://onemom.top/posts/linux常用命令/
作者
onemotre
发布于
2025-10-24
许可协议
CC BY-NC-SA 4.0