Linux使用小技巧

最小化安装CentOS7后,想查看我的IP,发现 ifconfig 命令不存在。

在最小化的CentOS7中,查看网卡信息

bash

ip addr

ifconfig命令依赖于net-tools,为了方便起见 我们还是启用ifconfig 命令。

bash

yum install -y net-tools

bash

systemctl stop firewalld
systemctl disable firewalld

bash

setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

bash

yum install -y wget

备份系统旧配置文件

bash

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

获取yum配置文件到/etc/yum.repos.d/

bash

wget -O /etc/yum.repos.d/aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo

更新缓存

bash

yum makecache

EPEL (Extra Packages for Enterprise Linux) 是由 Fedora Special Interest Group 为企业 Linux 创建、维护和管理的一个高质量附加包集合适用于但不仅限于 Red Hat Enterprise Linux (RHEL), CentOS, Scientific Linux (SL), Oracle Linux (OL)

备份系统旧配置文件

bash

mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.bak

获取epel配置文件到/etc/yum.repos.d/

bash

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

更新缓存

bash

yum clean all
yum makecache

bash

yum install -y unzip

Centos7在使用最小化安装的时候,没有安装自动补全的包,需要自己手动安装。

bash

yum install -y bash-completion 

安装好后,重新登陆即可(刷新bash环境)

配置一台Linux到另一台Linux的免密登录

A192.168.1.1客户机
B192.168.1.2目标机

要达到的目的:A机器ssh登录B机器无需输入密码

加密方式选 rsa|dsa均可以,默认dsa

两种方法都可行

这种情况适用于自己有远程主机的账号密码

在192.168.1.1上执行命令:

(命令1有交互按自己的需求填写,简单的就全部直接回车)

(命令2需要输入192.168.1.2 的 root 密码)

bash

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'

这种情况适用于把公钥交给服务器管理员

bash

ssh-keygen -t [rsa|dsa]

将会生成密钥文件id_rsa,id_rsa.pubid_dsa,id_dsa.pub

.pub文件复制到B机器的.ssh目录,并执行以下命令

bash

cat id_rsa.pub >> ~/.ssh/authorized_keys
#普通用户之间免密登陆,需要执行以下命令
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

从A机器登录B机器的目标账户,不再需要密码了(直接运行ssh 192.168.1.2

安装图形用户接口X Window System,在命令窗口输入:

text

yum groupinstall "X Window System"

安装完成会提示complete!

提示:X Window System本身是一个非常复杂的图形化作业环境,我们可以将它分成3个部分,分别是X ServerX ClientX ProtocolX Server主要是处理输入输出的信息,X Client执行大部分应用程序的运算功能,X Protocol则是建立X ServerX Client的沟通管道。

X Window通过软件工具及架构协议来建立操作系统所用的图形用户界面,此后则逐渐扩展适用到各形各色的其他操作系统上,几乎所有的操作系统都能支持与使用X WindowGNOMEKDE也都是以X Window为基础建构成的。

安装图形用界面gnome,在命令窗口输入:

text

yum groupinstall "GNOME Desktop"

安装完成,同样会提示compete!

提示:检查已经安装的软件以及可以安装的软件,用命令yum grouplist

同样在root用户权限下,设置centos系统默认的启动方式,输入命令如下:

systemctl set-default multi-user.target //设置成命令模式

systemctl set-default graphical.target //设置成图形模式

注意:centos7和centos6设置方式不同!

重启系统即可

快速设置方法:

实际一行命令就搞定

查看一下网卡名称

bash

ip a

设置ens33网卡ip地址

bash

ip addr 192.168.10.230/24 dev ens33

其它快速设置参考命令:

显示网卡IP信息

bash

ip addr

显示ens33网卡IP信息

bash

ip addr show ens33

开启或关闭ens33网卡

bash

ip link set ens33 up/down

设置ens33网卡IP地址192.168.10.230

bash

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

bash

ip addr del 192.168.10.230/24 dev ens33

查看路由信息,也可以使用ip route命令

bash

ip route list

设置默认网关,也可以在后面加上dev ens33

bash

ip route add default via 192.168.10.1
ip route add default via 192.168.10.1 dev ens33

删除默认网关,也可以直接写ip route del default

bash

ip route del default via 192.168.10.1

设置192.168.10.0网段的网关为192.168.10.1,数据走eth0接口

bash

ip route add 192.168.10.0/24 via 192.168.10.1 dev eth0

删除192.168.100.123.0/24网段的路由

bash

ip route del 192.168.10.0/24

请注意,使用此方法配置的IP地址将在系统重启后丢失。

设置永久IP请编辑/etc/sysconfig/network-scripts/ifcfg-xxx

获取当前启动级别

bash

systemctl get-default

更改启动模式为多用户命令模式

bash

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'

更改启动模式为图像模式

bash

systemctl set-default graphical.target
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/graphical.target' '/etc/systemd/system/default.target'

bash

locale

此处以zh_CN.UTF-8为例

编辑文件/etc/profie

bash

vi /etc/profile
export LANG=zh_CN.UTF-8
source /etc/profile

通常来说boot分区都不大,满了怎么解决呢。

解决方法:删除旧版的kernel

查询安装的所有kernel

bash

rpm -qa|grep kernel

查看当前使用的kernel

bash

uname -a

删除未在使用的kernel

bash

yum remove kernel-3.10.0-957.el7.x86_64

使用yum时提示yum.pid 已被锁定

PackageKit 是Linux系统上用来检查、更新和安装软件的一个工具,当它在后台运行时,它会阻塞用户的Package管理命令。

shell

[root@localhost ~]# systemctl stop packagekit
[root@localhost ~]# systemctl disable packagekit
[root@localhost ~]# yum remove PackageKit

shell

vi /etc/yum/pluginconf.d/langpacks.conf 

将第一行:enable=1改为enable=0

执行 yum就不会被锁定了。

清华大学源

不同版本源不同,以官网为准

bash

sed -i.bak 's/cn.archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

bash

swapoff -a
sed -i.bak '/swap/d' /etc/fstab

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 包

bash

apt remove needrestart

默认情况下,Ubuntu 会自动安装安全更新

bash

systemctl disable unattended-upgrades

bash

apt install -y bash-completion iputils-ping net-tools telnet

Ubuntu预安装的是tiny版本,在使用vi编辑器编辑文本时实在难用,我们需要安装vim的full版本。

卸载预装的版本

bash

sudo apt remove -y vim-common

安装full版vim

bash

sudo apt install -y vim

ubuntu默认shell是dash

bash

ls -l /bin/sh

修改默认shell

bash

sudo dpkg-reconfigure dash

选择No

bash

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

bash

timedatectl set-timezone Asia/Shanghai
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

在EOF前面多了一个减号-作用是去除文本里面所有行的tab前缀。

bash

cat <<-EOF

EOF用引号括起来(单引号和双引号一样),但是结尾处的EOF不要引号;作用是是否对文本进行变量扩展。

不加引号

bash

[root@localhost ~]# name=zhangsan
[root@localhost ~]# cat <<EOF >a.txt
> user="${name}"
> EOF
[root@localhost ~]# cat a.txt 
user="zhangsan"

加引号

bash

[root@localhost ~]# name=zhangsan
[root@localhost ~]# cat <<'EOF' >a.txt
> user="${name}"
> EOF
[root@localhost ~]# cat a.txt 
user="${name}"

查看/etc/systemd/system/multi-user.target.wants目录是否有对应的软连接文件