软件管理
软件源配置
RedHat系列:Redhat、Centos、Fedora等
- 在线下载更新
# 1. 本身的yum源进行备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 2. 更新镜像源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 3. 清理缓存
yum clean all
# 4. 重新建立缓存(时间较长)
yum makecache
- 修改源文件更新
# 1. 本身的yum源进行备份
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 2. 修改镜像源
vi /etc/yum.repos.d/CentOS-Base.repo[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#released updates
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7# 3. 清理缓存
yum clean all
# 4. 重新建立缓存(时间较长)
yum makecache
Debian系列:Debian、Ubuntu等
- 本身的apt源进行备份
cd /etc/apt/ && cp -a sources.list sources.list.bak
- 更新镜像源(选其一)阿里、网易、清华大学、中科大
sed -i 's/http:\/\/.*.ubuntu.com/https:\/\/mirrors.aliyun.com/g' /etc/apt/sources.list
sed -i 's/http:\/\/.*.ubuntu.com/https:\/\/mirrors.163.com/g' /etc/apt/sources.list
sed -i 's/http:\/\/.*.ubuntu.com/https:\/\/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sed -i 's/http:\/\/.*.ubuntu.com/https:\/\/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
安装、更新、删除、查询
RedHat系列:Redhat、Centos、Fedora等
rpm
(Red Hat Package Manager):这是Red Hat、Fedora、CentOS等基于Red Hat的系统的包管理工具。它是以一个单一的文件为基础,并且在文件中包含了所有的安装信息。
安装、更新、删除、模糊查询
rpm -ivh {package-name}.rpm
rpm -Uvh {package-name}.rpm
rpm -e {package-name}
rpm -qa | grep {package-name}
yum
(Yellowdog Updater Modified):这是基于RPM的包管理器,用于解决RPM包依赖问题,能够自动处理依赖关系,并且可以从网络仓库中安装和更新RPM包。
安装、更新、删除、模糊查询
yum install {package-name}
yum update {package-name}
yum check-update
yum remove {package-name}
yum list installed | grep {package-name}
dnf
(Dandified YUM):这是Fedora系统的包管理工具,它尝试克服YUM包管理器中存在的一些问题。
安装、更新、删除
dnf install {package-name}
dnf update {package-name}
dnf remove {package-name}
Debian系列:Debian、Ubuntu等
apt
(Advanced Package Tool):这是Debian和基于Debian的系统(如Ubuntu)的包管理工具。
安装、更新一个包列表、更新所有包、删除一个包、模糊查询一个包
apt-get install {package-name}
apt-get update
apt-get upgrade
apt-get remove {package-name}
apt list --installed | grep {package-name}
dpkg
DPKG (Debian Package Management System):这是Debian系统及其衍生系统中的包管理工具。
安装、删除、查询
dpkg -i {package-name}.deb
dpkg -r {package-name}
dpkg --list | grep {package-name}
文件类
权限
每个文件或目录都有一个所有者(owner)、一个组(group),以及全局的读(r)、写(w)、执行(x)权限。
检查文件或目录的权限。
ls -l
修改文件的权限
chmod u+x filename
查询、拷贝、移动、删除
拷贝
SCP拷贝(若目标目录不存在,则会自动创建)
- 本地到远程
没有指定用户名,命令执行后需要输入用户名和密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
scp local_file remote_ip:remote_folder
scp local_file remote_ip:remote_file
命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
scp -r -p 22 /local_dirname/ root@x.x.x.x:/remote_dirname/
scp -r -p 22 /local_filename/ root@{serverName}:/remote_filename/
- 远程到本地
将本地到远程的后2个参数调换顺序即可
scp remote_ip:remote_folder local_file
scp remote_ip:remote_file local_file
scp -r -p 22 root@x.x.x.x:/remote_dirname/ /local_dirname/
scp -r -p 22 root@{serverName}:/remote_filename/ /local_filename/
参数详解:
-p:保留原文件的修改时间,访问时间和访问权限。
-r: 递归复制整个目录。
其他:
-1: 强制scp命令使用协议ssh1
-2: 强制scp命令使用协议ssh2
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-q: 不显示传输进度条。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c:cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F:ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i:identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l:limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-o:ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
-P:port:注意是大写的P, port是指定数据传输用到的端口号
-S:program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
CP拷贝
拷贝
cp /path/to/source/file /path/to/destination/directory
移动
mv移动
mv /path/to/source/file /path/to/destination/directory/
系统服务、进程、端口
服务
-
systemctl disable:
禁用服务,但仍然允许手动启动和停止。不影响服务的其他依赖关系。允许通过其他服务依赖它。 -
systemctl mask:
屏蔽服务,阻止其被systemctl启动。将服务单元文件链接到/dev/nu11,使其无法被启动。彻底阻止服务的启动,包活手动启动。 -
检查服务是否被禁用或屏蔽
systemctl is-enabled {service-name}
- 屏蔽服务
sudo systemctl mask {service-name}
- 取消屏蔽
sudo systemctl unmask {service-name}
- 禁用服务
sudo systemctl disable {service-name}
- 查看正在运行的服务
systemctl list-units --type=service --state=running
- 查看服务状态
systemctl status {service-name}
- 启用服务
systemctl enable {service-name}
- 重新加载系统的服务配置文件或Docker守护进程
systemctl daemo-reload
端口
端口占用查询
ss -tunlp | grep ':22'
-t: 显示TCP端口
-u: 显示UDP端口(但在这个命令中通常不需要同时使用-t和-u,除非你想要同时查看TCP和UDP端口)
-n: 以数字形式显示地址和端口号
-l: 只显示监听状态的端口
-p: 显示进程信息
进程
进程名查找进程ID, -l 同时显示进程名和PID
pgrep -l {progress name}
进程ID查询进程名
comm=选项告诉ps只输出命令名(即进程名)
ps -p {PID} -o comm=
看进程的CPU占用率和内存占用率,可以使用aux
看进程的父进程ID和完整的COMMAND命令,可以使用ef
ps -ef
显示所有进程的完整格式
ps -ef
UID:用户ID、但输出的是用户名
PID:进程的ID
PPID:父进程ID
C:进程占用CPU的百分比
STIME:进程启动到现在的时间
TTY:该进程在那个终端上运行,若与终端无关,则显示?
CMD:命令的名称和参数
ps -aux
列出当前正在运行的所有进程
ps -aux
USER:用户名
PID:进程ID
%CPU:进程占用的CPU百分比
%MEM:占用内存的百分比
VSZ:该进程使用的虚拟內存量(KB)
RSS:该进程占用的固定內存量(KB)(驻留中页的数量)
STAT:进程的状态
START:该进程被触发启动时间
TIME:该进程实际使用CPU运行的时间
COMMAND:命令的名称和参数
实时进程监视器 top
系统版本及内核查看
- 内核版本
cat /proc/version
uname -r
- 系统版本
cat /etc/os-release
RedHat系列:Redhat、Centos、Fedora等
cat /etc/centos-release
Debian系列:Debian、Ubuntu等
lsb_release -a
防火墙
RedHat系列:Redhat、Centos、Fedora等
Debian系列:Debian、Ubuntu等
安装
sudo apt update
sudo apt install ufw
使用以下命令来启用ufw:
sudo ufw enable
要关闭ufw防火墙,可以使用以下命令:
sudo ufw disable
要检查ufw的状态(即,它是启用还是禁用,以及当前有哪些规则),可以使用以下命令:
sudo ufw status verbose
配置ssh免密登录
ssh-keygen
ssh-copy-id username@remote_host
ssh username@remote_host
定时任务
crontab -e
0 3 * * * /path/to/backup_to_serverB.sh >> /path/to/backup_log.log 2}&1
查看开机及运行时间记录
last reboot
方法一
service network restart
sudo systemctl restart NetworkManager
解包
tar -xzvf {packagename}
手动设置开机自启服务,放置软连接
- /usr/lib/systemd/system/
ln -s 源文件名 目标文件名
systemctl enable {ServiceFileName}.service(等同于 ln -s 源文件 /etc/systemd/system/)
- /etc/systemd/system/(优先级更高)
ln -s 源文件名 目标文件名
systemctl enable {ServiceFileName}.service(等同于 ln -s 源文件 /etc/systemd/system/)