系统配置
系统环境配置
修改语言区域
apt install locals
dpkg-reconfigure locales
修改时区
dpkg-reconfigure tzdata
修改主机名
vi /etc/hostname
修改为需要的主机名, 如:
myhost
同时需要修改hosts文件 的 127.0.0.1. 添加别名
vi /etc/hosts
127.0.0.1 localhost myhost
管理系统版本的替代系统
如果你曾进行过软件开发, 你就会明白跨项目管理不同版本的语言的支持的重要性. 许多 Linux 发行版都有工具可以来处理不同的内建版本.
可执行文件比如 java 往往符号链接到目录 /etc/alternatives 下. 反过来, 该目录会将符号链接存储为二进制文件并提供一个管理这些链接的接口. Java 可能是替代系统最常管理的语言, 但是, 经过一些配置, 它也可以作为其他应用程序替代品, 比如 NVM 和 RVM (NVM 和 RVM 分别是 NodeJS 和 Ruby 的版本管理器).
在基于 Debian 的系统中, 你可以使用 update-alternatives 命令创建和管理这些链接. 在 CentOS 中, 这个工具就叫做 alternatives . 通过更改你的 alternatives 文件中的链接, 你便可以安装一个语言的多个版本, 并且在不同的情况下使用不同的二进制. 这个替代系统也提供了对任何你可能在命令行运行的程序的支持.
挂载proc文件系统
在FreeNAS系统中, 进入 /proc 目录中, 里头并没有内容. 经查, 需要挂载 proc 文件系统才会在其中列出当前进程情况.
sudo mount -t procfs proc /proc
用户管理
添加sudo用户(sudoers)
sudoers文件需要用visudo命令修改. 可以在sudoers.d文件夹中新建文件单独配置.
cd /etc/sudoers.d/
echo "username ALL=(ALL:ALL) ALL" > username
BUG, 异常, 各种莫名奇妙的毛病
CPU 占用过高
- upowerd进程占用CPU 杀掉后又回来了.. upowerd hogging CPU
拔掉连在电脑上的iPhone或点击信任此电脑.
Remmina 连接windows 远程桌面(RDP) 输入法问题
- 现象: 进入windows桌面后无法输入中文. 要按着右crtl才能激活windows中的输入法.
- 处理: 搜索后得知是键盘布局的问题, 默认是自动检测(很明显检测的不着调). 编辑->首选项->RDP选项卡->键盘布局->Chinese(Simplified) – US Keyboard
以下为未整理的旧文档
查看进程详细信息
ps -ef | grep procName # 得到进程号(pid)
ll /proc/pid
即可得到:
其中:
cwd符号链接的是进程运行目录
exe符号连接就是执行程序的绝对路径
cmdline就是程序运行时输入的命令行命令
environ记录了进程运行时的环境变量
fd目录下是进程打开或使用的文件的符号连接
Ubuntu默认的桌面图标
在/usr/share/applications目录中有许多系统默认的图标(*.desktop),复制到桌面后赋上可执行权限即可.
手动添加图标也可参考其中.
通过ssh公钥登录
client端生成秘钥对
- 检查ssh是否安装, 没有则安装.
apt install ssh
ssh -V
- 生成秘钥对
ssh-keygen
秘钥默认保存于~/.ssh目录. id_rsa为私钥, id_rsa.pub为公钥.
server端
- 检查用户目录下是否有.ssh目录, 没有则创建.
- 检查.ssh目录下是否有authorized_keys文件, 没有则创建.
- 检查authorized_keys是否为600权限. 没有则"chmod 600 authorized_keys"
- 拷贝client端公钥内容到 authorized_keys
cat id_rsa.pub > ~/.ssh/authorized_keys
- 到client端测试 ssh username@server-host
APT代理
apt更新时google源直接挂. 需要代理.
tsocks
sudo apt install tsocks
配置 /etc/tsocks.conf
local = 127.0.0.0/255.255.255.0
server = 127.0.0.1 # 代理地址
server_type = 5 # socks类型
server_port = 8008 # 代理端口
代理apt
sudo -i
tsocks apt update
apt 代理参数
# 只支持http代理
sudo apt -o Acquire::http::proxy="http://127.0.0.1:8000/" update
使用iconv转换文件编码
查看文件编码
file -i filename
递归转换(包括子文件夹)
find default -type d -exec mkdir -p utf/{} \;
find default -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \;
find default -name *.java -exec iconv --verbose -f GBK -t UTF-8 {} -o utf/{} \;
挂载cifs文件系统
mount.cifs //remotepath /localpath -o username=${username},password=${password},iocharset=utf8,uid=${uid},gid=${gid}
不指定uid和gid则使用当前账户的uid和gid. 其他用户可能无法写入.
查询硬件信息
查看硬件信息
#示例(查看网卡信息)
lshw -C network
#示例(查看显卡信息)
lshw -C display
#当前 Linux 系统上所使用的显卡驱动名称
lshw -c video | grep configuration
检查显卡硬件加速
glxinfo | grep OpenGL
使用hdparm调整硬盘参数
显示系统中所有PCI总线设备或连接到该总线上的所有设备
lspci -v
读取BIOS信息
dmidecode
制作启动盘
Ubuntu下
usb-creator-gtk
处理Google's updated GPG Key 丢失
现象:
错误:7 http://dl.google.com/linux/chrome/deb stable Release.gpg
由于没有公钥, 无法验证下列签名: NO_PUBKEY 6494C6D6997C215E
处理:
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
参考:
数据处理
用grep -c来统计匹配的行数
grep -c 的作用类似于 grep | wc -l. 不同的是,对于查找多个文件, grep -c会统计每个文件匹配行数, 每个文件一行; 而wc -l则列出总行数.