Centos 学习笔记
更新:该笔记仅用于 Centos 7
开发库安装
# yum groupinstall "Development Libraries"
# yum groupinstall "Development Tools"
# yum install ncurses-devel zlib-devel texinfo gtk+-devel gtk2-devel qt-devel tcl-devel tk-devel libX11-devel kernel-headers kernel-devel
# yum install epel-release
使用密钥登陆
- 在用户的根目录创建 /.ssh 目录并设置读取权限
# mkdir ~/.ssh # chmod 700 ~/.ssh
- 使用ssh-keygen命令生成基于SSH协议的RSA密钥
# cd ~/.ssh # ssh-keygen -t rsa
- 整合公钥文件
# cd ~/.ssh # cat /home/[username]/.ssh/id_ras.pub > authorized_keys # chmod 600 ~/.ssh/authorized_keys # scp authorized_keys [dest_usr]:/home/[username]/.ssh/
- 测试 SSH 密钥认证
# ssh [dest_usr]
用户操作
- 查看所有用户组
cat /etc/group
- 查看所有用户
cat /etc/passwd
- 删除不必要的用户(组)
userdel [name]
groupdel [name]
- 禁止某个用户登陆
usermod -s /sbin/nologin [name]
- 无需密码执行sudo命令
visudo
[name] ALL=(ALL) NOPASSWD:ALL
- 查看登陆(过)的所有人
w
last
- 强制某个用户下线
# passwd -l [usr_name]
# ps -ef | grep @pts/[pts_name]
# kill -9 [pts_pid]
删减系统的欢迎信息
系统的欢迎信息主要来源于以下四个地方:
- 操作系统的名称和版本号
/etc/issue
- 操作系统的名称和版本号 (远程登陆)
/etc/issue.net
- 操作系统的名称和版本号
/etc/redhat-release
- 局域网内系统的公告信息
/etc/motd
修改主机名
一开始默认配置好像是Localhost,这名字如果频繁地出现在局域网也太糟糕了。
- 临时修改主机名
# hostname [hostname]
- 永久修改主机名
# hostnamectl set-hostname [hostname]
修改系统时区
- 常用方法
# rm -f /etc/localtime # ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- systemd设置方法
# timedatectl set-timezone 'Asia/Shanghai'
- TZSelect 方法
# tzselect # vi ~/.bashrc export TZ='Asia/Shanghai' # source ~/.bashrc
tzselect 最终将以 Posix TZ 格式(例如 Asia/Shanghai)输出你所在的时区值,将此记录下来,因此每增加一个用户,都必须在配置文件./bashrc
添加时区变量。
设置静态IP
- 编辑ifcfg-eth0文件
# vim /etc/sysconfig/network-scripts/[网卡名]
- 修改以下内容(没有的话就把它加进去)
BOOTPROTO="static"
ONBOOT="yes"
IPADDR=10.64.128.203
GATEWAY=10.64.128.254
NETMASK=255.255.255.0
DNS1=8.8.8.8
- 重启网络服务
# systemctl restart network.service
- 看看是否配置成功
# ip addr
配置防火墙
iptables虽然说有点历史了,出现了很多新的替代品,甚至有的人还嫌弃它,但像我这样小型VPS用户拿来用用还是很不错的。但是Centos7虽然带了它,但默认配置的是Firewall,因此这里的防火墙以firewalld为准。
- 六种众所周知的操作
# systemctl start/stop firewalld.service
# systemctl enable/disable firewalld.service
# systemctl status/reload firewalld.service
- 打开某个端口
# firewall-cmd --zone=public --add-port=8080/tcp
- 关闭某个端口
# firewall-cmd --zone=public --remove-port=8080/tcp
- 查看某个端口是否打开
firewall-cmd --zone= public --query-port=80/tcp
- 查看打开的所有端口
# firewall-cmd --zone=public --list-ports
- 配置文件位置
Global configuration: /usr/lib/firewalld/
User Customization: /etc/firewalld/
关闭Selinux
对于Selinux,如果一开始不读文档的话,在后续的使用中就要频繁地查询手册,那我们干脆把他关了。
- 临时关闭
# setenforce 0
- 永久关闭
# vi /etc/sysconfig/selinux
然后把其中的
SELINUX=enforcing
改为 SELINUX=disabled
记录shell命令产生时间
每次在输入history后,界面都会显示历史中使用过的shell命令,现在可以修改一下bashrc,让其记录shell命令的发生时间
# vi /etc/bashrc
# [Then append following segment]
HISTFILESIZE=4000
HISTSIZE=4000
HISTTIMEFORMAT='%F %t'
export HISTTIMEFORMAT
锁定和查看文件
- 锁定文件主要用到了chattr命令 ,比较常用的像这样
# chattr [-RV] [+/- i/a]
- 查看文件使用的是lsattr
# lsattr -a
将编译安装的程序启用Systemd(以Nginx为例)
- 创建
在
/usr/lib/systemd/system
下创建 nginx.service
文件,内容的话可以抄这份,也可以抄其他机子上用yum安装的service文件# vi /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/etc/nginx/logs/nginx.pid
ExecStartPre=/etc/nginx/sbin/nginx -t -c /etc/nginx/conf/nginx.conf
ExecStart=/etc/nginx/sbin/nginx -c /etc/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
注意配置文件里Nginx的安装路径,我这里的路径可参考我之前写的 《Learn Nginx》
- 启动
先重新加载一遍systemctl
# systemctl daemon-reload
然后我们把Nginx开起来,顺便看看启动成功了没有
# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx
存储查询
- 查看文件占用比例
# df -h
# du -ah --max-depth=1
- 查看文件系统的完整性
# npm -Va
网络查询
- 端口检查
netstat -an
- 查找正在运行的进程
pidof [name]
ps -a | grep [name_keyword]
- 进入内存目录检查对应pid的执行程序
ls -al /proc/ [pid]/exe
- 实时流量监控统计
nohup iftop -P -i eth0 > [filename] 2>&1 &
评论
发表评论