Rafa / 菲娜 | 小王子
1279 字
6 分钟
【Linux】Linux常用命令
Linux常用命令
日常开发
下载
curl 命令:
# -o 参数后指定要保存的文件名curl -o filename.tar.gz http://example.com/file.tar.gz
# -O 从 URL 中提取文件名并使用该文件名保存到本地curl -O http://example.com/file.tar.gzwget 命令:
# -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 自动选择最快镜像
# 选择中国地区最快的 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/mirrorlistgit 基础配置
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默认编辑器为
vimTerminal window git config --global core.editor vim
git常用命令
分支管理
-
将当前修改commit到新的分支
Terminal window git stashgit checkout -b <新的分支名>git stash popgit commit -a -
更改提交消息内容
Terminal window git commit --amend -m "这是新的、正确的提交信息"
其他配置
Ubuntu 与 Windows 双系统时间同步
Windows 使用的是LocalTime机制,也就是会直接读取BIOS中的时间当作本地时间。而 Ubuntu 使用的时间机制是UTC机制,也就是格林尼治时间,会在BIOS时间的基础上加上时区(若Ubuntu设置的地区是Shanghai,则会在BIOS的基础上+8)。因此需要在Ubuntu中将时间机制更改为LocalTime模式。
# 安装ntpdate工具实现时间同步sudo apt install ntpdate
# 设置ntp服务器sudo ntpdate time.windows.com
# 更改系统时间机制,更改为LocalTimesudo hwclock --localtime --systohcTIP除了windows的ntp时间服务器之外,还有如下ntp服务器可以选择:
# 阿里云授时服务器ntp.aliyun.com# 腾讯云授时服务器time1.cloud.tencent.comtime2.cloud.tencent.comtime3.cloud.tencent.comtime4.cloud.tencent.comtime5.cloud.tencent.com# 清华大学授时服务器ntp.tuna.tsinghua.edu.cn# 苹果授时服务器time1.apple.comtime2.apple.comtime3.apple.comtime4.apple.comtime5.apple.comtime6.apple.comtime7.apple.com# Google授时服务器time1.google.comtime2.google.comtime3.google.comtime4.google.com
Linux 服务器
NOTE此处的服务器搭载Ubuntu 22.04系统
服务器用户组
| 组别 | 用户标识号 | 备注 |
|---|---|---|
root | 0 | 拥有系统的最高权限 |
sudo | 27 | 允许其成员通过 sudo 命令临时获取 root 权限来执行命令 |
adm | 4 | 组成员通常可以读取 /var/log 目录下的许多日志文件,方便追踪系统问题,但不能修改它们 |
daemon | 1 | 用于一些不需要特殊权限的后台服务 |
bin | 2 | 用于存放系统可执行文件的目录相关联,一些核心命令可能属于这个组 |
sys | 3 | 和系统核心、驱动程序等底层资源相关 |
www-data | 33 | Web服务器(如 Nginx 或 Apache)默认使用的用户和组。网站文件(如HTML, PHP)的所有者通常需要设置为 www-data,以便Web服务器有权限读取和执行它们 |
mail | 8 | 用于邮件服务(如 Postfix) |
ssh | 114 | 用于 SSH (Secure Shell) 守护进程,管理远程登录的权限 |
docker | 998 | 允许其成员执行 Docker 命令,而无需使用 sudo。将一个用户添加到此组,意味着你给予了他管理Docker容器的权限,这几乎等同于 root 权限,因为可以轻易地通过 Docker 容器挂载宿主机目录来获得 root 访问权限 |
system-* | 如 systemd-journal, systemd-network,都是由 systemd 初始化系统创建和使用的,用于管理各自的子服务,例如日志、网络、时间同步等 |
用户管理
检查用户组命令:
cat /etc/group # 查看所有用户组信息groups # 列出当前登录用户所属的所有用户组id # 显示用户的 UID 和所属组的信息,包括所有附加组groups <username> # 查看用户的所属组id <username> # 显示该用户的组信息文件同步
rsync同步
# -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配置
nginx -t- 启动nginx服务
sudo systemctl start nginx # 启动nginx服务sudo systemctl enable --now nginx # 开机自启- 关闭nginx服务
sudo systemctl stop nginxsudo nginx -s stop # 直接停止sudo nginx -s quit # 平滑关闭