Press "Enter" to skip to content

Tag: ubuntu

Ubuntu系统下查看硬盘信息

Ubuntu系统下查看硬盘信息的方法,可以查看到硬盘的型号、序列号、接口类型,转速,缓存等,这里记录一下。

方法一:直接通过内核查看

$ cat /sys/block/sda/device/model
ST31000524AS

$ cat /sys/block/sda/device/vendor 
ATA

方法二:用过hdparm命令查看

$ sudo hdparm -I /dev/sda

/dev/sda:

ATA device, with non-removable media
	Model Number:       ST31000524AS                            
	Serial Number:      9VPF38YC
	Firmware Revision:  JC45    
	Transport:          Serial, SATA Rev 3.0
Standards:
	这里省略大量信息
Configuration:
	Logical		max	current
	cylinders	16383	16383
	heads		16	16
	sectors/track	63	63
	--
	CHS current addressable sectors:   16514064
	LBA    user addressable sectors:  268435455
	LBA48  user addressable sectors: 1949396401
	Logical/Physical Sector size:           512 bytes
	device size with M = 1024*1024:      951853 MBytes
	device size with M = 1000*1000:      998090 MBytes (998 GB)
	cache/buffer size  = unknown
	Nominal Media Rotation Rate: 7200
Capabilities:
	LBA, IORDY(can be disabled)
	这里省略大量信息
Commands/features:
	Enabled	Supported:
	   *	SMART feature set
	    	Security Mode feature set
	   *	这里省略大量信息
	   *	SCT Data Tables (AC5)
Security: 
	Master password revision code = 65534
		supported
	not	enabled
	not	locked
		frozen
	not	expired: security count
		supported: enhanced erase
	164min for SECURITY ERASE UNIT. 164min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 5000c5003fc5c146
	NAA		: 5
	IEEE OUI	: 000c50
	Unique ID	: 03fc5c146
Checksum: correct
2 Comments

Ubuntu的包管理方式简介(apt-get、dpkg、aptitude)

因为工作的关系,刚从CentOS换到Ubuntu,需要对Ubuntu系统有一些了解。因此便有了本文。

apt-cache search package    #搜索包(相当于yum list | grep pkg)
apt-cache show package      #显示包的相关信息,如说明、大小、版本等
apt-cache showpg package    #显示包的相关信息,如Reverse Depends(反向依赖)、依赖等
apt-get install package       #安装包
apt-get reinstall package     #重新安装包
apt-get -f install package    #强制安装
apt-get remove package        #删除包(只是删掉数据和可执行文件,不删除配置文件)
apt-get remove --purge package       #删除包,包括删除配置文件等
apt-get autoremove --purge package   #删除包及其依赖的软件包+配置文件等
apt-get update          #更新源
apt-get upgrade         #更新已安装的包
apt-get dist-upgrade    #升级系统
apt-get dselect-upgrade        #使用 dselect 升级
apt-cache depends package      #了解使用依赖
apt-cache rdepends package     #查看该包被哪些包依赖
apt-get build-dep package   #安装相关的编译环境
apt-get source package      #下载该包的源代码
apt-get clean && apt-get autoclean  #清理下载文件的存档 && 只清理过时的包
apt-get check             #检查是否有损坏的依赖
dpkg -S filename          #查找filename属于哪个软件包
apt-file search filename  #查找filename属于哪个软件包
apt-file list packagename #列出软件包的内容
apt-file update           #更新apt-file的数据库
dpkg -l      #列出当前系统中所有的包.可以和参数less一起使用在分屏查看(类似于rpm -qa)
dpkg -l |grep -i "pkg"   #查看系统中与"pkg"相关联的包(类似于rpm -qa | grep pkg)
dpkg -s pkg  #查询一个已安装的包的详细信息(类似于rpm -qi)
dpkg -L pkg  #查询一个已安装的软件包释放了哪些文件(类似于rpm -ql)
dpkg -S file     #查询系统中某个文件属于哪个软件包(类似于rpm -qf)
dpkg -c pkg.deb  #查询一个未安装的deb包将会释放哪些文件(类似于rpm -qpl)
dpkg -I pkg.deb  #查看一个未安装的deb包的详细信息(类似于rpm -qpi)
dpkg -i pkg.deb  #手动安装软件包(不能解决软依赖性问题,可以用apt-get -f install解决)
dpkg -r pkg      #卸载软件包(不是完全的卸载,它的配置文件还存在)
dpkg -P pkg      #全部卸载(不能解决依赖性的问题)
dpkg-reconfigure pkg     #重新配置
dpkg -x pkg.deb dir      #将一个deb包解开至dir目录
dpkg --pending --remove  #移除多余的软件
Leave a Comment

Ubuntu系统更改CPU频率

在Ubuntu 12.04系统上更改CPU频率,涉及到的内核参数值为scaling_governor

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 
performance

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
conservative ondemand userspace powersave performance 

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies 
3101000 3100000 2900000 2700000 2500000 2300000 2100000 1900000 1700000 1600000 
sudo apt-get install cpufrequtils

相关参数
$ cpufreq-selector -h
  -c, --cpu           CPU Number
  -g, --governor      Governor
  -f, --frequency     Frequency in KHz

试着调整一下
$ sudo cpufreq-selector -c 0 -g performance

看看结果
$ cat /proc/cpuinfo | grep MHz
cpu MHz		: 3101.000
cpu MHz		: 1600.000
cpu MHz		: 1600.000
cpu MHz		: 1600.000

设置开机自动调整
$ sudo vim /etc/rc.local     #加入如下四行
sudo cpufreq-selector -c 0 -g performance
sudo cpufreq-selector -c 1 -g performance
sudo cpufreq-selector -c 2 -g performance
sudo cpufreq-selector -c 3 -g performance

万恶的Ubuntu,竟然不支持sudo echo xx > file。

2 Comments

我的SSH安全设定

分享一下自己的SSH安全设定(本文基于Ubuntu 18.04 64bit). 大概方面有3个: 1, 建立普通用户zhang3, 并授予sudo权限; 2, 禁止root登陆; 3, 禁用密码登陆, 使用pub key登陆.

1, 建立普通用户zhang3, 并授予相关权限

平时主要使用zhang3用户来登陆, 因此需要客户端的pub key交给zhang3, 让zhang3做好免密码登陆相关设定.

user=zhang3
useradd -m -s /bin/bash $user
passwd $user

# 授予用户sudo权限
echo "$user ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/$user

# 上传公钥, 这里我将公钥上传到$user用户的home目录
cd /home/$user
rz -bey           # 选择 id_rsa.pub 上传

su - $user
mkdir ~/.ssh; \
cat id_rsa.pub >> ~/.ssh/authorized_keys && \
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

2, 设定SSH相关权限

sudo sed -i 's/^\#\?PermitRootLogin.*/PermitRootLogin no/g' /etc/ssh/sshd_config
sudo sed -i 's/^\#\?PubkeyAuthentication.*/PubkeyAuthentication yes/g' /etc/ssh/sshd_config
sudo sed -i 's/^\#\?PasswordAuthentication.*/PasswordAuthentication no/g' /etc/ssh/sshd_config
sudo sed -i 's/^\#\?PermitEmptyPasswords.*/PermitEmptyPasswords no/g' /etc/ssh/sshd_config
sudo sed -i 's/^\#\?MaxAuthTries.*/MaxAuthTries 3/g' /etc/ssh/sshd_config

解释:
PermitRootLogin no                 #禁止root远程登陆
PubkeyAuthentication yes           #启用pubkey登陆
PasswordAuthentication no          #禁用密码登陆
PermitEmptyPasswords no            #禁止空密码
MaxAuthTries                       #允许最大失败次数,默认为6


# 也可以最后再确认一下
egrep '^(PermitRoot|Pubkey|Password|MaxAuthTries)' /etc/ssh/sshd_config
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no

有些老版本的sshd_config里面可能会有一项”RSAAuthentication”, 该项也表示启用pub key登陆, 但这是第1代ssh通讯协议使用的配置项, 该选项在CentOS 7及ubuntu 16.04版本以上均已弃用(如果强行加上此选项会收到一个”Deprecated option RSAAuthentication”的提示), 也可以在sshd_config里添加一项”Protocol 2″来表示使用第几代通讯协议.

2 Comments

python逐行读取文件内容

文件1.txt内容:

zhaoyun 85 87
guanyu 87 88
liubei 90 86

方法1: 使用read()方法

特点: 读取整个文件, 将文件内容放到一个字符串变量中
缺点: 如果文件非常大, 尤其是大于内存时, 无法使用read()方法
[code lang=”python”]
>>> a = open("1.txt")
>>>
>>> a.read() #read()直接读取字节到字符串中, 包括了换行符
‘zhaoyun 85 87\nguanyu 87 88\nliubei 90 86\n’
>>>
>>> print a.read() #返回值为空, 说明调用完read()方法以后变量为空了

>>>
>>> a = open("1.txt")
>>>
>>>
>>> print a.read() #调用print方法则自动转换了换行符
zhaoyun 85 87
guanyu 87 88
liubei 90 86

#另一种写法

with open("1.txt") as f:
print f.read()
#运行结果
zhaoyun 85 87
guanyu 87 88
liubei 90 86

1 Comment