一、用户管理
1、建工作组
groupadd test_group
2、新建用户同时增加工作组
useradd -g test_group -d /home/test_user test_user
3、给用户设置密码
passwd test_user
4、删除用户(但不删除用户目录)
userdel test_user
5、删除用户(同时删除目录)
userdel -r test_user
6、将用户加入组
usermod -g test_group test_user
7、删除组(如果还有用户在组中,则需要先删除用户)
groupdel test_group
8、相关文件
/etc/passwd 用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell
/etc/shadow
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
/etc/group
/etc/group
二、文件管理
chown cc:cc install.log
chmod 600 install.log
ll -atrh
cd
pwd
mkdir -p ./test/dir
cp -a * /home/test/
mv * ./dir/
scp root@1.1.1.1:/home/cc/* /home/cc/
三、网络
telnet 1.1.1.1 80
ifconfig
netstat -tunlp
ping
固定IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=192.168.0.1
IPADDR=192.168.1.122
GATEWAY=192.168.1.1
PREFIX=24
service network restart
四、服务管理
ps aux –-sort=rss
ps aux –-sort=%cpu
ps aux|grep mysql
top #进入后按P M 可cpu 内存排序
kill -9 pid
find / -name install.log & #后台执行,如果有日志会输出
nohup find / -print > /root/file.log & #脱离终端执行
uname -a #内核版本
service命令
service命令其实是去/etc/init.d目录下,去执行相关程序
service命令启动redis脚本
service redis start
直接启动redis脚本
/etc/init.d/redis start
systemctl命令
systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。systemd对应的进程管理命令是systemctl
systemctl命令兼容了service
即systemctl也会去/etc/init.d目录下,查看,执行相关程序
systemctl redis start
systemctl redis stop
systemctl enable redis
systemctl disable redis
systemctl命令管理systemd的资源
放在目录/usr/lib/systemd/system
sysystemctl status bluetooth.service
sysystemctl start bluetooth.service
sysystemctl stop bluetooth.service
sysystemctl disable bluetooth.service
sysystemctl enable bluetooth.service
设置自启脚本
编辑/etc/rc.local
sh /home/bmsoft/gocron/gocron_node.sh
查看文本
cat -n install.log
tac install.log
head -100 install.log
tail -100 install.log
vim :wq! i u dd ZZ
wc -l install.log
awk -F, '{print $1,$2}' log.txt
grep log.txt ERROR
磁盘
df -h
du -h -max-depth=1
stat .
mount -p loop /mnt/RedHat.Enterprise.Linux.6.iso /mnt/vcdrom 挂载
umount /mnt/vcdrom
防火墙
systemctl status firewalld.service #查看防火墙状态
systemctl start firewalld.service #开启防火墙
systemctl stop firewalld.service #关闭防火墙
firewall-cmd --get-active-zones #查看所有活动区域
firewall-cmd --list-all #列出所有端口
firewall-cmd --zone=public --add-port=8080/tcp –permanent #添加端口
firewall-cmd --zone=public --remove-port=8080/tcp –permanent #移除端口
firewall-cmd –reload #以上修改需要执行此命令 应用
压缩解压
#.zip
zip test.zip a.txt passwd.txt
unzip -d ./zip/ test.zip
#.gz
gzip abc.txt #会删除源文件
gzip -d abc.txt.gz #会删除源文件
#.bz2
bzip2 -k bcd.txt #-k 保留源文件
bzip2 -d bcd.txt.bz2 #会删除源文件
#.tar
tar -cvf text.tar a.txt passwd.txt #会保留源文件
tar -xvf text.tar #会保留源文件
#.tar.gz
tar -zcvf tmp.tar.gz a.txt passwd.txt
tar -zxvf tmp.tar.gz -C aaaa/ #指定目录
#.tar.bz2
tar -zcvf tmp.tar.bz2 a.txt passwd.txt
tar -jxvf tmp.tar.bz2 -C aaaa/ #指定目录
软件安装卸载
本地yum:
touch /mnt/vcdrom 创建挂载点
mount -p loop /mnt/RedHat.Enterprise.Linux.6.iso /mnt/vcdrom 挂载
cp /mnt/RedHat.Enterprise.Linux.6.iso /var/yum 拷贝文件
cd /etc/yum.repos.d
touch localPackages.repo
vi localPackages.repo
[local]
name=Instructor Server Repository
baseurl=file:///var/yum/Server
enabled=1
gpgcheck=0
yum clean all
yum list all
yum install screen
umount /mnt/vcdrom
一:
yum install -y ssh
yum remove gcc
yum list installed |grep vim
二:
rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm
rpm -U gcc-4.4.7-4.el6.x86_64.rpm
rpm -e gcc
rpm -qa |grep vim
三:
tar zxvf httpd-2.2.15.tar.gz -C /usr/local/src #解压
./configure –prefix=/usr/local/httpd #配置
make #编译
make install #安装
shell
#!/bin/bash
#它告诉系统这个脚本需要什么解释器来执行
chmod +x ./test.sh #增加可执行权限
./test.sh or /bin/sh test.sh #执行的两种方式
#几个变量
$0 当前执行的进程名
$1, $2, ...是位置参数
$? 命令执行后返回的状态
$* 所有位置参数的内容
#定义变量
your_name="qinjx"
#使用变量
echo $your_name
#各种符号区别
半引号`` :执行内容
单引号’’ :变量引用无效 ,转义无效
双引号”” :可以有变量, 可以出现转义字符
():子命令组,命令替换相当于``,初始化数组
{}:顺序执行命令
[]:执行布尔类型, [ $i -lt 5 ]
[[]]:if [ $a -ne 1] && [ $a != 2 ] 等效 if [[ $a != 1 && $a != 2 ]]
${a}:代表a的值,可以把大括号省略
$():命令替换,相当于``
$(()):相当于``,但可以使用C语言风格,甚至三目计算
#拼接
echo "1""1"
echo "2$string_1" #拼接字符串
#获取字符串长度
string="abcd"
echo ${#string}
#提取子串
string="runoob is a great site"
echo ${string:1:4}
#数组
arr_1=(1 2 3 "3")
echo ${arr_1[*]} #打印全部数组
echo ${arr_1[0]}
echo ${#arr[*]} #数组元素的个数
echo ${#arr[2]} #单个元素长度
#加减乘除计算
echo `expr $a * $b`
echo $(( 3 + 5 )) #也可以用两个括号,注意空格
#99乘法表
for((i =1 ;i<=9;i++))
do
for((j =1 ;j<=i;j++))
do
echo -n "$i*$j=$(($i*$j)) "
if(($i==$j));
then
echo -e "\n"
fi
done
done
insert mysql 案例
#!/bin/bash
#
# @file write_to_db_mysql.sh
# @brief wirte Exception log to database
# @author ChengC
# @version 0.1
# @date 2022-06-16
#
TABLE="bmmsgparser_log"
create_tm=$(date "+%Y-%m-%d %H:%M:%S")
exception_data1=$(cat bmMsgParser.log |grep Exception |tail -3)
exception_data2=${exception_data1//,/ }
exception_data3=${exception_data2//\'/ }
exception_data4=${exception_data3//\"/ }
is_success="Y"
if [ -z "$exception_data4" ]
then
is_success="Y"
else
is_success="N"
fi
query="'$create_tm','$is_success','$exception_data4'"
mysql -h 10.5.15.25 -P 23306 -u dbadmin -pbmSoft2020 -e "INSERT INTO gocron.bmmsgparser_log (create_tm,is_success,exception_data) values ($query);"