linux(centos7)学习笔记
修改系统日志时间格式
vi /etc/rsyslog.conf
$template CustomFormat,"%$NOW% %TIMESTAMP:8:15% %HOSTNAME% %syslogtag% %msg%\n"
$ActionFileDefaultTemplate CustomFormat
将windows文件转换成linux文件
tr -d '\r' < filename
修复系统管理员错误
进入修复模式
init=/bin/bash
mount -o rw,remount /
vi /etc/passwd
日期格式
date -d "-2day 5:10:10"#将时间输出设置为2天前的5点
date +"%Y年%m月%d日 %H:%M:%S"#按照格式输出日期时间
禁用swap交换分区
vi /etc/fstab
#/dev/mapper/centos-swap swap
查看路由转发规则
iptables -vnL -t nat
命令补全
yum install -y bash-completion
source <(kubectl completion zsh)
开机自启动脚本配置
chmod +x /etc/rc.d/rc.local
echo "脚本路径及名称" >> /etc/rc.d/rc.local
rpm -q centos-release #查看系统版本
全局环境配置
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
用户环境配置
~/.bash_profile
~/.bashrc
grep和cut使用
cat /etc/passwd |grep /bin/bash |cut -d ":" -f 1
grep -n "[0-9]\{4\}" test.txt #-n显示行号
grep -v "[0-9]\{4\}" test.txt #-v取反匹配
awk使用
df -h|grep /sda1|awk '{printf $5"\n"}'|cut -d "%" -f 1
df -h|grep /sda1|awk 'BEGIN{print"磁盘占用比"}{printf $5"\n"}'|cut -d "%" -f 1
cat /etc/passwd|awk 'BEGIN{print "this is begin",FS=":"}{printf $1"\n"} END{print "this is end"}'
awk '$1 >= 80 {printf $ "\n"}'
sed使用
sed -n 'p' test.txt#输出所有行
sed -n '2p' test.txt#输出第2行
sed -n '$p' test.txt#输出最后1行
sed -i '2a trent hu' test.txt#在第2行后面新增一行内容
sed -i '2d' test.txt#删除文件中的第2行
sed -i '2i this is new content' test.txt#在第2行前面新增一行内容
sed -i '2c this is replase' test.txt#替换第2行内容
sed -i '2s/replase/value/g' test.txt #将2行中的replase替换为value,/g表示替换所有匹配字符
sort使用
sort test.txt#按照第一列字母排序
sort -r -f test.txt#反向排序,-f忽略大小写
sort -n -t ":" -k 3,3 /etc/passwd#使用冒号作为分隔符,第三列作为排序列,-n表示按照数字大小进行排序
wc使用
wc -l/w/m /etc/passwd #统计行数、单词数和字符数
获取IP地址
ip a |grep "[1-9]\{2,3\}.[1-9]\{1,3\}.[1-9]\{1,3\}.[1-9]\{1,3\}" |tr -s " " |cut -d " " -f 3
判断
[ -f/d/e test.txt ]#判断文件是否存在,-d目录是否存在,-e判断目录或文件是否存在
[ /root/test.txt -ef /root/test/test.txt]#判断是否为硬链接
[ test1.txt -nt test2 ]#判断文件1是否比文件2新
[ test1.txt -ot test2 ]#判断文件1是否比文件2旧
[整数1 -gt/eq/lt/ne/ge/le 整数2]#数值大小判断,gt大于、eq等于、lt小于、ne不等、ge大于等于、le小于等于
[ -z/n 字符串 ]#-z是否为空,-n是否非空
[ 字符串1==字符串2 ]#判断字符串是否一样
[ 字符串1!=字符串2 ]#判断字符串否不一样
[ -n "$age" -a "$age" -ge 25 ] && echo yes || echo no#-a两个判断都为真则结果为真,-o只要有一个判断为真则结果为真
[ ! -n "$age" -a "$age" -ge 25 ] && echo yes || echo no# 感叹号为取反
系统定时任务
crontab -e/l/r#系统定时任务-e编辑,-l查询,-r删除当前用户所有定时任务
5 0 * * * /root/sh/for.sh#分、时、天、月、周
查看日志
tail -fn 100 /var/log/zabbix/zabbix_agentd.log
ACL权限管理
setfacl -m u:trent:rwx /etc/sysconfig/network-scripts/ifcfg-ens33
setfacl -m u:trent:rwx -R /etc/#递归设置权限
setfacl -m d:u:用户名:wrx -R /etc/#设置默认ACL权限
setfacl -m m:rx /etc/#设置最大权限
setfacl -x u:用户名 /etc/#删除指定用户ACL权限
setfacl -b /etc/#删除所有ACL权限
chmod -R 755 ./#递归设置文件权限
umask 0022#修改文件创建默认权限
启动nfs服务
systemctl start nfs-server.service
设置开机自启动
systemctl enable nfs-server.service
停止开机自启动
systemctl disable nfs-server.service
查看服务当前状态
systemctl status nfs-server.service
重新启动某服务
systemctl restart nfs-server.service
查看开机启动服务
systemctl list-unit-files
查看所有已启动的服务
systemctl list-units --type=service
开启防火墙
systemctl status firewalld.service
查询端口开启状态
firewall-cmd --zone=public --query-port=80/tcp
打开防火80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
关闭防火墙80端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
查看防火墙打开接口
firewall-cmd --zone=public --list-ports
更新防火墙规划
firewall-cmd --reload
开启防火墙22号端口
iptables -I INPUT -p tcp --dport 22 -j accept
修改IP地址
ifconfig ens33 192.168.26.2 #临时设置IP地址
网络IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens37
BOOTPROTO=static
IPADDR=192.168.30.200
GATEWAY=192.168.30.1
NETMASK=255.255.255.0
ONBOOT=yes
添加路由
ip route add 192.168.30.0 gw 192.168.30.1 dev ens37
重启网络
systemctl restart network.service
service network restart
系统时间同步
yum install ntp //安装ntp服务
ntpq -p#同步时间
/etc/locale.conf #字符集配置文件
LANG="zh_CN.UTF-8"
查看防火墙运行状态
firewall-cmd --state
关闭防火墙
systemctl stop firewalld.service
禁止防火墙开机启动
systemctl disable firewalld.service
getenforce#查看运行状态
setenforce 0#临时关闭SELinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux#禁止SELinux开机启动
修改主机名
echo "server1" >> /etc/hostname
查看端口运行情况
ss -ntul
抓指定端口的数据包
tcpdump -i ens33 port 80
rename repo repo.bak *#批量修改当前目录下所有文件名中的字符
sed -i "s/enabled=0/enabled=1/g" CentOS-Media.repo#替换文件中的字符
sed -i "s#baseurl=file:///media/CentOS/#baseurl=file:///mnt/cdrom#g" CentOS-Media.repo#替换特殊字符
抓取报文
tcpdump -i ens33 -nn port 80
修改提示符颜色
vi /etc/bashrc
PS1='\[\e[1;35m\][\u@\h \w]\$ \[\e[0m\]'
查询软件列表
rpm -ql mysql-server
查看软件安装脚本
rpm -q --scripts [软件包名]
yum install psmisc#安装进程管理工具
pstree -p#查看软件线程
配置脚本开机启动,不推荐使用
echo “/your.sh”>>/etc/rc.local
chmod 755 /etc/rc.d/rc.local
修改yum源配置
vi /etc/yum.repos.d/base.repo
yum repolist#查看软件仓库列表
创建用户
useradd -r -d /data/mysqldb -s /sbin/nologin mysql
getent passwd mysql#查看用户信息
权限设置
setfacl -R -m u:mysql:rwx /usr/local/mysql/
设置命令别名
vim ~/.bashrc
alias vi="vim"
让vim显示带颜色
vim /etc/vimrc
colorscheme murphy
添加域名解析
vim /etc/hosts
192.168.2.188 www.a.com www.b.com
查找文件
find / -name mariadb.log
查看磁盘分区
lsblk
增加新磁盘
echo '- - -' > /sys/class/scsi_host/host2/scan#更新磁盘
fdisk -l #查看磁盘
fdisk /dev/sdb #创建分区
partprobe /dev/sdb #激活分区
mkfs.xfx /dev/sdb1 #格式化分区
mkdir /newspace #建立新挂载点
mount /dev/sdb1 /newspace #挂载新分区
blkid /dev/sdb1 #查询挂载磁盘UUID
vi /etc/fstab #分区自动挂载
UUID=3a6a067d-f28f-495c-9651-d5df6e13072d /mydata xfs defaults 0 2