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 &

参考资料

评论