MacBook Air(2017)安装 openSUSE leap 15.0 后的初始化设置(Shell 脚本)

###########请先阅读以下部分###########
#这个脚本的作用是简化安装好 openSUSE 后第一次设置,它既是一个脚本也是一个教程
#这个脚本的使用环境是在 MacBook Air(2017) 上安装 openSUSE操作系统,如果要用于其他环境,请按照自己环境的实际情况进行修改
#这个脚本分为四个部分:前期准备的部分、自动配置的部分、需要手动操作的部分、可能出现的报错和解决方法,清依次按照这个顺序进行操作,其中自动配置的部分可以通过执行此脚本实现,无需手动一步步操作
#在执行此脚本之前请先全文阅读,如果有不需要的部分可以自行将其注释掉

#执行完此脚本能够完成以下工作:
#1.修改命令终端下的主机名称
#2.实现中文输入法(如果是中文安装则不需要此步骤,本脚本默认取消)
#3.解决无线网卡无法上网的问题
#4.安装 KVM 虚拟机
#5. 安装 docker 容器
#6.安装 flash 实现网页播放视频
#7.限制处理器频率防止其温度过高(本脚本默认取消)
#8.实现科学上网(需要你提前搭建好服务端的 shadowsocks)
#9.安装温度查看软件(用于以后写温度报警脚本)
#10.安装支持 exfat 格式的软件
#11.更新全部系统补丁
#12.安装 pycharm

###########前期准备的部分###########
#开始执行此脚本之前,请先在 MacBook Air 上安装 openSUSE 
#开始执行此脚本之前,请将安装系统时所有官方的 repo 源都设置成 enable 状态
#开始执行前将这条第三方源加入到 YAST 中,并且在 yast 中设置并信任他的来源,这个软件源是用来安装MacBook Air 无线网卡驱动的: zypper ar -fc https://mirrors.aliyun.com/packman/openSUSE_Leap_15.0 openSUSE-Aliyun-Packman
#开始执行前,请将 flash 的 rpm 安装包、pycharm-professional-2019.1.2.tar.gz 和脚本放在同一目录下面,这些软件包可以在他们的官方网站上下载
###########前期准备的部分###########

###########自动配置的部分###########
#!/bin/bash
#就决命令终端下主机名的问题
###########修改主机名###########
echo MacBookAir > /etc/hostname
###########修改主机名###########

#解决安装软件的软件源不够完善的问题
###########刷新软件源###########
zypper -n lr -d
zypper -n ref
###########刷新软件源###########

#解决无法输入中文的问题,如果系统默认安装时用的是中文则可以忽略
###########安装中文输入法###########
#zypper -n install ibus    
#zypper -n install ibus-pinyin
###########安装中文输入法###########

#解决 MacBookAir 无法无线上网的问题
###########安装 MacBookAir 无线网卡驱动###########
zypper -n install broadcom-wl
###########安装 MacBookAir 无线网卡驱动###########

#解决无法使用虚拟机的问题
###########安装 KVM 虚拟机###########
zypper -n install qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu virt-install virt-manager virt-v2v 
###########安装 KVM 虚拟机###########

#解决无法使用容器的问题
###########安装 Docker 容器###########
zypper -n install docker
###########安装 Docker 容器###########

#解决浏览器无法看WANGYE\视频\MPS的问题
###########安装 flash ###########
rpm -ivh flash*
zypper -n install ffmpeg lame gstreamer-plugins-bad gstreamer-plugins-ugly gstreamer-plugins-ugly-orig-addon gstreamer-plugins-libav 
###########安装 flash ###########

#解决 MacBook Air 温度过高的问题
###########将处理器的频率限制在1.6GHZ以内###########
#echo '1600000' > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
#echo '1600000' > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq 
#echo '1600000' > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
#echo '1600000' > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
###########将处理器的频率限制在2GHZ###########

#解决不能访问谷歌的问题(需要你提前搭建好服务端的 shadowsocks,否则这一步请注释掉)
###########安装 shadowsocks 和 proxychains ###########
zypper -n install python-pip
pip install --upgrade pip
pip install shadowsocks
zypper -n install proxychains
sed -i 's/socks4.*127.0.0.1.*//' /etc/proxychains.conf
sed -i '$s/.*/socks5          127.0.0.1 5101/' /etc/proxychains.conf
#上条命令中 127.0.0.1 5101 要和到时候本地开启 shadowsock 客户端时所使用的端口号一致
###########安装 shadowsocks 和 proxychains ###########

#解决不能查看处理器温度的问题
###########安装温度查看软件###########
zypper -n install sensors
###########安装温度查看软件###########

#解决不能读取 exfat 格式的问题
###########安装 exfat 格式支持软件###########
zypper -n install fuse-exfat exfat-utils
###########安装 exfat 格式支持软件###########

#解决系统不够安全的问题
###########系统打补丁###########
zypper -n update
###########系统打补丁###########
###########自动配置的部分###########


###########需要手动操作的部分###########
#解决中文输入法没有启动的问题
###########配置中文输入法###########
#点击左上角的“ 活动”,点击“ 设置”,点击“ 区域和语言”,之后再添加“汉语输入法”
###########配置中文输入法###########

#解决科学上网启动的问题
###########实现科学上网###########
#sslocal -s 服务器的ip地址 -p 服务器的端口号 -l 本地端口号 -k 服务器的shadow密码 -t 600 -m aes-256-cfb
#proxychains4 firefox #解释:proxychains4 后面跟要启动的程序
#每次使用都要输入以上两行命令
###########实现科学上网###########

#启用虚拟机的方法
###########启用 KVM###########
#systemctl start libvirtd
#virt-manager 
###########启用 KVM###########

#解决需要使用 python 项目环境的问题
###########安装 pycharm(需要提前在官网上下载pycharm)###########
#tar -xvf pycharm*
#cd pycharm-2*
#cd bin
#./pycharm.sh
###########安装 pycharm###########
###########需要手动操作的部分###########

###########可能出现的报错和解决方法###########
# 如果运行 nohup sslocal -s 服务器的ip地址 -p 服务器的端口号 -l 本地端口号 -k 服务器的shadow密码 -t 600 -m aes-256-cfb 出现以下错误(这个问题是由于在 openssl1.1.0 版本中,废弃了EVP_CIPHER_CTX_cleanup 函数,如官网中所说):
# INFO: loading config from ss.json 
# ......
# AttributeError: /usr/lib/x86_64-Linux-gnu/libcrypto.so.1.1: undefined symbol: EVP_CIPHER_CTX_cleanup
# 则应该进行如下操作:
# 用vim打开文件:vim /usr/lib/python3.6/site-packages/shadowsocks/crypto/openssl.py (该路径请根据自己的系统情况自行修改,如果不知道该文件在哪里的话,可以使用find命令查找文件位置)
# 跳转到52行(shadowsocks2.8.2版本,其他版本搜索一下cleanup)
# 进入编辑模式
# 将第52行libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)改为libcrypto.EVP_CIPHER_CTX_reset.argtypes = (c_void_p,)
# 再次搜索cleanup(全文件共2处,此处位于111行),将libcrypto.EVP_CIPHER_CTX_cleanup(self._ctx)改为libcrypto.EVP_CIPHER_CTX_reset(self._ctx)
# 保存并退出
# 重新执行命令 nohup sslocal -s 154.223.166.186 -p 5101 -l 5101 -k 5101 -t 600 -m aes-256-cfb
###########可能出现的报错和解决方法###########

openSUSE&SUSE 常见的日志文件

/var/log/boot.msg
 系统启动时显示的屏幕信息。当无法登录系统时,按“CTRL+ALT+F10”切换到日志显示界面再通过KVM观察屏幕输出。
 
/var/log/boot.omsg
 上一次启动日志。
 
/var/log/messages
 系统日志。也可以通过执行dmesg命令查看内核输出缓冲区信息,即内核、驱动的日志输出,但是不包含日志记录时间信息。
 
/var/log/warn
 warn级别以上的系统日志。
 
/var/log/wtmp
 系统登录及重启信息,执行last命令读取。
 
/var/log/YaST2/y2log
 YaST界面操作日志。
 
/var/log/xinetd.log
 xinetd服务日志。
 
/var/log/dump/
 系统Dump日志存放目录,包括Kdump工具收集的系统宕机的故障信息。
 
/var/log/atop
 Atop工具收集的系统资源使用情况日志,包括CPU、内存、系统进程和IO数据,常用于分析进程内存泄露、CPU耗尽、IO异常等故障

Linux more 和 less 命令及常用选项(自定义查看文本的方式)

一、more 命令
more功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。

1.命令格式
more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ] 

2.命令功能
more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。

3.命令参数
+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示  
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉

4.常用操作命令
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 用vi编辑器
!命令 调用Shell,并执行命令 
q 退出more

二、less 指令
less 工具也是对文件或其它输出进行分页显示的工具,应该说是 linux 正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。 在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按 键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

1.命令格式
less [参数] 文件 

2.命令功能
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

3.命令参数
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
/ 字符串:向下搜索“字符串”的功能
? 字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]:向下翻动一页
[pageup]:向上翻动一页

4.使用实例
实例1:ps查看进程信息并通过less分页显示同时显示行号
[root@host ~]# ps -ef|less -N
 1       1 UID        PID  PPID  C STIME TTY          TIME CMD
 2       2 root         1     0  0 Aug08 ?        00:00:00 /sbin/init
 3       3 root         2     0  0 Aug08 ?        00:00:00 [kthreadd]
 4       4 root         3     2  0 Aug08 ?        00:00:02 [ksoftirqd/0]
 5       5 root         6     2  0 Aug08 ?        00:00:00 [migration/0]
 6       6 root         7     2  0 Aug08 ?        00:00:00 [watchdog/0]
 7       7 root         8     2  0 Aug08 ?        00:00:00 [migration/1]
 8       8 root         9     2  0 Aug08 ?        00:00:00 [kworker/1:0]
 9       9 root        10     2  0 Aug08 ?        00:00:01 [ksoftirqd/1]
10      10 root        11     2  0 Aug08 ?        00:00:00 [watchdog/1]
11      11 root        12     2  0 Aug08 ?        00:00:00 [migration/2]
12      12 root        14     2  0 Aug08 ?        00:00:01 [ksoftirqd/2]
13      13 root        15     2  0 Aug08 ?        00:00:00 [watchdog/2]
14      14 root        16     2  0 Aug08 ?        00:00:00 [migration/3]
15      15 root        18     2  0 Aug08 ?        00:00:01 [ksoftirqd/3]
16      16 root        19     2  0 Aug08 ?        00:00:00 [watchdog/3]
17      17 root        20     2  0 Aug08 ?        00:00:00 [migration/4]
18      18 root        22     2  0 Aug08 ?        00:00:00 [ksoftirqd/4]
19      19 root        23     2  0 Aug08 ?        00:00:00 [watchdog/4]
20      20 root        24     2  0 Aug08 ?        00:00:00 [migration/5]
21      21 root        26     2  0 Aug08 ?        00:00:00 [ksoftirqd/5]
22      22 root        27     2  0 Aug08 ?        00:00:00 [watchdog/5]
23      23 root        28     2  0 Aug08 ?        00:00:00 [migration/6]

实例2:浏览多个文件
[root@host ~]# less test2.log test.log
 1     1  ifconfig
 2     2  ping www.baidu.com
 3     3  ifconfig
 4     4  //10.128.161.108/share
 5     5  10.128.161.108/share
 6     6  ssh
 7     7  keygen
 8     8  trsa
 9     9  ssh
10    10  .ssh/
11 
12 
13  test2.log (file 1 of 2) (END) - Next: test.log

实例补充1:
输入 :n后,切换到 test.log
输入 :p 后,切换到test2.log

实例补充2:
当正在浏览一个文件时,也可以使用 :e命令 打开另一个文件。
less file1
:e file2

5.附加备注
(1)全屏导航
ctrl + F - 向前移动一屏
ctrl + B - 向后移动一屏
ctrl + D - 向前移动半屏
ctrl + U - 向后移动半屏

(2)单行导航
j - 向前移动一行
k - 向后移动一行

(3)其它导航
G - 移动到最后一行
g - 移动到第一行
q / ZZ - 退出 less 命令

(4)其它有用的命令
v - 使用配置的编辑器编辑当前文件
h - 显示 less 的帮助文档
&pattern - 仅显示匹配模式的行,而不是整个文件

(5)标记导航
当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:
ma - 使用 a 标记文本的当前位置
'a - 导航到标记 a 处

(6)查找
more, less 都具备查找功能,按/ 然后输入要找的字串,再按 Enter 即可,按 n(next) 会继续找,大写的 N 则是往回(上)找,按 q(quit)或者ZZ离开

CentOS&RHEL yum 只更新安全补丁操作的方法

Linux 系统直接升级整个系统版本可能会带来诸多不可预料的问题,为了尽可能的保证系统稳定的同时保证系统安全,系统管理员可以只更新安全补丁

步骤一:更新全部安全补丁
1.1 安装 yum-security 插件
# yum install yum-security
Loaded plugins: rhnplugin, security
RHSA-2009:1148-1 security httpd-2.2.3-22.el5_3.2.x86_64
RHSA-2009:1148-1 security httpd-devel-2.2.3-22.el5_3.2.i386
RHSA-2009:1148-1 security httpd-manual-2.2.3-22.el5_3.2.x86_64
RHSA-2009:1148-1 security mod_ssl-1:2.2.3-22.el5_3.2.x86_64
list-security done

1.2 :列出安全相关的系统更新
# yum --security check-update

1.3 :批量安装所有的安全更新
# yum update --security

步骤二:列出补丁的详细信息和建议清单
2.1 安装 bugzillas
# yum list-security bugzillas

2.2:查看某一个补丁的详细信息
# yum info-security RHSA-2009:1148-1
Loaded plugins: rhnplugin, security

===============================================================================
  RHSA-2009:1148
===============================================================================
  Update ID : RHSA-2009:1148-1
    Release :
       Type : security
     Status : final
     Issued : 2009-07-08 23:00:00
       Bugs : 509125 - None
            : 509375 - None
       CVEs : CVE-2009-1890
            : CVE-2009-1891
Description : Important: httpd security update  \The Apache HTTP Server is a
            : popular Web server.  A denial of service flaw was
            : found in the Apache mod_proxy module when it was
            : used as a reverse proxy. A remote attacker could
            : use this flaw to force a proxy process to consume
            : large amounts of CPU time. (CVE-2009-1890)  A
            : denial of service flaw was found in the Apache
            : mod_deflate module. This module continued to
            : compress large files until compression was
            : complete, even if the network connection that
            : requested the content was closed before
            : compression completed. This would cause
            : mod_deflate to consume large amounts of CPU if
            : mod_deflate was enabled for a large file.
            : (CVE-2009-1891)  All httpd users should upgrade to
            : these updated packages, which contain backported
            : patches to correct these issues. After installing
            : the updated packages, the httpd daemon must be
            : restarted for the update to take effect.
      Files : mod_ssl-2.2.3-22.el5_3.2.x86_64.rpm
            : httpd-devel-2.2.3-22.el5_3.2.i386.rpm
            : httpd-2.2.3-22.el5_3.2.x86_64.rpm
            : httpd-devel-2.2.3-22.el5_3.2.x86_64.rpm
            : httpd-manual-2.2.3-22.el5_3.2.x86_64.rpm
            : mod_ssl-2.2.3-22.el5_3.2.i386.rpm
            : httpd-2.2.3-22.el5_3.2.i386.rpm
            : httpd-manual-2.2.3-22.el5_3.2.i386.rpm
info-security done


2.3 列出某一个补丁的信息和另一个补丁的建议清单
# yum --bz 3595 --cve CVE-2009-1890 --advisory RHSA-2009:1148-1 info updates