Linux使用小技巧
1 CentOS篇
1.1 安装 ifconfig
最小化安装CentOS7后,想查看我的IP,发现 ifconfig 命令不存在。
在最小化的CentOS7中,查看网卡信息
ip addr
ifconfig命令依赖于net-tools,为了方便起见 我们还是启用ifconfig 命令。
yum install -y net-tools
1.2 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
1.3 关闭 selinux
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
1.4 安装 wget
yum install -y wget
1.5 更换 yum 源
备份系统旧配置文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
获取yum配置文件到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo
更新缓存
yum makecache
1.6 安装 epel 源
EPEL (Extra Packages for Enterprise Linux) 是由 Fedora Special Interest Group 为企业 Linux 创建、维护和管理的一个高质量附加包集合适用于但不仅限于 Red Hat Enterprise Linux (RHEL), CentOS, Scientific Linux (SL), Oracle Linux (OL)
备份系统旧配置文件
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.bak
获取epel配置文件到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
更新缓存
yum clean all
yum makecache
1.7 安装 unzip
yum install -y unzip
1.8 安装命令自动补全
Centos7在使用最小化安装的时候,没有安装自动补全的包,需要自己手动安装。
yum install -y bash-completion
安装好后,重新登陆即可(刷新bash环境)
1.9 免密登陆
配置一台Linux到另一台Linux的免密登录
A | 192.168.1.1 | 客户机 |
---|---|---|
B | 192.168.1.2 | 目标机 |
要达到的目的:A机器ssh登录B机器无需输入密码
加密方式选 rsa|dsa均可以,默认dsa
两种方法都可行
1.9.1 第一种
这种情况适用于自己有远程主机的账号密码
1.9.1.1 复制公钥到远程主机
在192.168.1.1上执行命令:
(命令1有交互按自己的需求填写,简单的就全部直接回车)
(命令2需要输入192.168.1.2 的 root 密码)
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.2 #复制公钥到远程主机
# 有的机器提示:-bash: ssh-copy-id: command not found
cat ~/.ssh/id_rsa.pub | ssh root@192.168.1.2 'cat >> .ssh/authorized_keys'
1.9.2 第二种
这种情况适用于把公钥交给服务器管理员
1.9.2.1 登录A机器
1.9.2.2 生成公钥文件和私钥文件
ssh-keygen -t [rsa|dsa]
将会生成密钥文件id_rsa
,id_rsa.pub
或id_dsa
,id_dsa.pub
1.9.2.3 复制公钥文件
将.pub
文件复制到B机器的.ssh
目录,并执行以下命令
cat id_rsa.pub >> ~/.ssh/authorized_keys
#普通用户之间免密登陆,需要执行以下命令
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
1.9.2.4 大功告成
从A机器登录B机器的目标账户,不再需要密码了(直接运行ssh 192.168.1.2
)
1.10 安装GNOME图形界面
安装图形用户接口X Window System
,在命令窗口输入:
yum groupinstall "X Window System"
安装完成会提示complete
!
提示:X Window System
本身是一个非常复杂的图形化作业环境,我们可以将它分成3个部分,分别是X Server
、X Client
和X Protocol
。X Server
主要是处理输入输出的信息,X Client
执行大部分应用程序的运算功能,X Protocol
则是建立X Server
和X Client
的沟通管道。
X Window
通过软件工具及架构协议来建立操作系统所用的图形用户界面,此后则逐渐扩展适用到各形各色的其他操作系统上,几乎所有的操作系统都能支持与使用X Window
,GNOME
和KDE
也都是以X Window
为基础建构成的。
安装图形用界面gnome
,在命令窗口输入:
yum groupinstall "GNOME Desktop"
安装完成,同样会提示compete
!
提示:检查已经安装的软件以及可以安装的软件,用命令yum grouplist
同样在root用户权限下,设置centos系统默认的启动方式,输入命令如下:
systemctl set-default multi-user.target
//设置成命令模式
systemctl set-default graphical.target
//设置成图形模式
注意:centos7和centos6设置方式不同!
重启系统即可
1.11 设置IP地址
快速设置方法:
实际一行命令就搞定
查看一下网卡名称
ip a
设置ens33网卡ip地址
ip addr 192.168.10.230/24 dev ens33
其它快速设置参考命令:
显示网卡IP信息
ip addr
显示ens33网卡IP信息
ip addr show ens33
开启或关闭ens33网卡
ip link set ens33 up/down
设置ens33网卡IP地址192.168.10.230
ip addr add 192.168.10.230/24 dev ens33
ifconfig ens33 192.168.10.230/24
ifconfig ens33 192.168.10.230 netmask 255.255.255.0
删除ens33网卡IP地址192.168.10.230
ip addr del 192.168.10.230/24 dev ens33
查看路由信息,也可以使用ip route命令
ip route list
设置默认网关,也可以在后面加上dev ens33
ip route add default via 192.168.10.1
ip route add default via 192.168.10.1 dev ens33
删除默认网关,也可以直接写ip route del default
ip route del default via 192.168.10.1
设置192.168.10.0网段的网关为192.168.10.1,数据走eth0接口
ip route add 192.168.10.0/24 via 192.168.10.1 dev eth0
删除192.168.100.123.0/24网段的路由
ip route del 192.168.10.0/24
请注意,使用此方法配置的IP地址将在系统重启后丢失。
设置永久IP请编辑
/etc/sysconfig/network-scripts/ifcfg-xxx
1.12 修改启动级别
获取当前启动级别
systemctl get-default
更改启动模式为多用户命令模式
systemctl set-default multi-user.target
rm '/etc/systemd/system/multi-user.target'
ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/multi-user.target'
更改启动模式为图像模式
systemctl set-default graphical.target
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/graphical.target' '/etc/systemd/system/default.target'
1.13 字符编码
1.13.1 查看当前locale设置
locale
1.13.2 设置系统locale
此处以zh_CN.UTF-8
为例
编辑文件/etc/profie
vi /etc/profile
export LANG=zh_CN.UTF-8
source /etc/profile
1.14 boot分区清理
通常来说boot分区都不大,满了怎么解决呢。
解决方法:删除旧版的kernel
查询安装的所有kernel
rpm -qa|grep kernel
查看当前使用的kernel
uname -a
删除未在使用的kernel
yum remove kernel-3.10.0-957.el7.x86_64
1.15 yum被锁定
使用yum时提示yum.pid 已被锁定
PackageKit 是Linux系统上用来检查、更新和安装软件的一个工具,当它在后台运行时,它会阻塞用户的Package管理命令。
[root@localhost ~]# systemctl stop packagekit
[root@localhost ~]# systemctl disable packagekit
[root@localhost ~]# yum remove PackageKit
或
vi /etc/yum/pluginconf.d/langpacks.conf
将第一行:enable=1改为enable=0
执行 yum就不会被锁定了。
2 Ubuntu篇
2.1 更换apt源
不同版本源不同,以官网为准
sed -i.bak 's/cn.archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
2.2 关闭 swap
swapoff -a
sed -i.bak '/swap/d' /etc/fstab
2.3 禁用 needrestart
apt 安装软件包时弹出如下提示
No services need to be restarted. No containers need to be restarted. No user sessions are running outdated binaries. No VM guests are running outdated hypervisor (qemu) binaries on this host.
删除 needrestart 包
apt remove needrestart
2.4 禁用无人值守升级功能
默认情况下,Ubuntu 会自动安装安全更新
systemctl disable unattended-upgrades
2.5 基础软件包
apt install -y bash-completion iputils-ping net-tools telnet
2.6 卸载自带vim
Ubuntu预安装的是tiny版本,在使用vi编辑器编辑文本时实在难用,我们需要安装vim的full版本。
卸载预装的版本
sudo apt remove -y vim-common
安装full版vim
sudo apt install -y vim
2.7 更改默认shell
ubuntu默认shell是dash
ls -l /bin/sh
修改默认shell
sudo dpkg-reconfigure dash
选择No
2.8 安装xrdp
sudo apt-get update
sudo apt-get -y install xfce4
sudo apt-get -y install xrdp
echo xfce4-session >~/.xsession
sudo service xrdp start
sudo systemctl enable xrdp
2.9 时区修改
timedatectl set-timezone Asia/Shanghai
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2.10 cat «EOF
在EOF前面多了一个减号-
作用是去除文本里面所有行的tab前缀。
cat <<-EOF
EOF用引号括起来(单引号和双引号一样),但是结尾处的EOF不要引号;作用是是否对文本进行变量扩展。
不加引号
[root@localhost ~]# name=zhangsan
[root@localhost ~]# cat <<EOF >a.txt
> user="${name}"
> EOF
[root@localhost ~]# cat a.txt
user="zhangsan"
加引号
[root@localhost ~]# name=zhangsan
[root@localhost ~]# cat <<'EOF' >a.txt
> user="${name}"
> EOF
[root@localhost ~]# cat a.txt
user="${name}"
2.11 判断软件是否开机自启
查看/etc/systemd/system/multi-user.target.wants
目录是否有对应的软连接文件