赞
踩
一、常用命令
1:跟踪日志
tail -f -n 100 xxx
2:文件编辑
vi/vim(编辑);shift+:wq(退出编辑保存);shift+:q(退出编辑);shift+:q!(强制退出);Esc->/关键字(查找关键字) n(下一条) shift+n(上一条)
3:翻页查看
less -N(显示行号) xxx;history|less;ps -ef|less;q(退出) d/b(上) u/y(下)
4:cat命令
-n 或 --number:由 1 开始对所有输出的行数编号
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外
-E 或 --show-ends : 在每行结束处显示 $
-T 或 --show-tabs: 将 TAB 字符显示为 ^I
-A, --show-all:等价于 -vET
-e:等价于"-vE"选项
-t:等价于"-vT"选项
5:复制文件/文件夹到某路径下
cp -rf(迭代) xx /xx/xx;mv /xx/* /xx
6:文件查找
find / -name xxx
7:chown指定所有者
chown -R(迭代) 所有者:所有组 xxx
8:chmod权限指令(权限分为三级 : 拥有者、群组、其他)
使用方式 : chmod [-cfvR] [--help] [--version] mode file...
mode:权限设定字串 [ugoa...][[+-=][rwxX]...][,...],表示[拥有者/群体/其他/所有][增加/取消/赋值][可读/可写/可执行]
-c:若该档案权限确实已经更改,才显示其更改动作
-f:若该档案权限无法被更改也不要显示错误讯息
-v:显示权限变更的详细资料
-R:对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help:显示辅助说明
--version : 显示版本
范例:chmod ugo+r xx(所有人可读);chmod a+r file1.txt;chmod ug+w,o-w xx xx;chmod u+x xx;chmod -R a+r *;chmod 777 file(r=4,w=2,x=1,rwx=7,rw-=6,r-x=5)
9:删除
rm -rf /xx 删除目录以及其下所有文件、文件夹
rm -f xx 将会强制删除xx这个文件
10:压缩解压
zip -r myfile.zip xx
zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.
unzip -o -d /xx myfile.zip 把myfile.zip文件解压到 /xx -o:不提示的情况下覆盖文件;
unzip -v text.zip 查看
tar zcvf xx.tar.gz (-C) xx
tar zxvf xx.tar.gz 解压缩后的文件只能放在当前的目录。
tar -tf all.tar 这条命令是列出all.tar包中所有文件,-t是列出文件的意思
安装:yum install -y unzip zip
11:创建
文件夹:mkdir 权限 xx;mkdir xx;mkdir 777 xx
文件:vi/vim xx :wq
12:touch
更新xx.txt的存取和修改时间。touch xx.txt
13:进程查看
ps -ef | grep
netstat -ntlp查看端口netstat –tunlp
netstat –apn | grep 8080
ps -aux | grep pid查看
kill -9 [PID]
pwdx pid 查看路径
14:查看磁盘剩余空间
lsblk 查看分区和磁盘fdisk -l
cfdisk /dev/sda 查看分区
df -hl
du -bs dir_name
15:linux查看80端口的连接数
netstat -pnt | grep :80 | wc -l 去掉后面的 "| wc -l"就能看到详细信息了
netstat -an|grep 22
16:top 监控使用情况
17:rpm&yum
卸载 rpm -e --nodeps
查询是否安装 rpm -qa | grep java
安装 rpm -ivh
yum list installed|grep wget
18:防火墙
systemctl start firewalld.service#启动firewall
systemctl stop firewalld.service#停止firewall
systemctl disable firewalld.service#禁止firewall开机启动
systemctl status firewalld.service#查看状态
19:开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含义:
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
重新载入:firewall-cmd --reload
查看:firewall-cmd --zone=public --query-port=80/tcp
删除:firewall-cmd --zone=public --remove-port=80/tcp --permanent
20:Linux防火墙(Iptables) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
在开启了Linux防火墙(Iptables)时,做如下设置,开启25和110端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -p tcp -m tcp --dport 25 --syn -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -p tcp -m tcp --dport 110 --syn -j ACCEPT
21:配置firewalld-cmd
查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic
22:systemctl
systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed
23:telnet安装
yum install telnet;yum install telnet-server
将telnet服务加入开机自启动
systemctl enable xinetd.service
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd(或service xinetd start)
service xinetd restart
telnet localhost
24. nohup后台运行
语法格式为 nohup [argument...] &
在当shell中提示了nohup成功后还需要按终端上键盘任意键退回到 shell输入命令窗口,然后通过在shell中输入exit来退出终端;如果在nohup执行成功后直接点关闭程序按钮关闭终端这时候会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown。
当在后台运行了程序的时候,可以用jobs命令来查看后台作业的状态。在有多个后台程序时,要使用参数的fg命令将不同序号的后台作业切换到前台上运行。
$ jobs [1]+ Running fetch ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz &
$ fg %1
/dev/null文件的作用?
这是一个无底洞,任何东西都可以定向到这里,但是却无法打开。?
所以一般很大的stdout和stderr当你不关心的时候可以利用stdout和stderr定向到这里>./command.sh >/dev/null 2>&1
2>&1的意思?
这个意思是把标准错误(2)重定向到标准输出中(1),而标准输出又导入文件output里面,所以结果是标准错误和标准输出都导入文件output里面了。
25:重启
reboot;init 6(先shutdown)
26:查看当前路径:pwd
27:修改系统环境变量文件
vi/vim /etc/profile
source /etc/profile(使修改立即生效)
echo $PATH(查看PATH值)
28:CentOS 创建用户
su 切换为root用户
创建新用户并使用bash执行ssh:useradd -m xxx -s /bin/bash
设置密码:passwd 用户名
添加sudo执行权限
visudo或vim /etc/sudoers(如不可编辑 chmod -v u+w /etc/sudoers 编辑后要收回)
添加一行管理员权限:用户名 ALL=(ALL) ALL
如果新用户sudo不用密码:用户名 ALL=(ALL) NOPASSWD:ALL
29:检查远程登录是否安装 rpm -qa | grep ssh
sudo yum install openssh-clients
sudo yum install openssh-server
登录:ssh localhost
30:ssh免密码授权登录
cd ~/.ssh/(若没有该目录,请先执行一次ssh localhost)
ssh-keygen -t rsa(会有提示,都按回车就可以)
cat id_rsa.pub >> authorized_keys(加入授权)
chmod 600 ./authorized_keys(修改文件权限)
31:jps查看java进程
32:查看网卡信息 ip addr
33:配置 ip
动态获取ip:
修改网卡配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens32(最后一个为网卡名称)
bootproto=dhcp onboot=yes
systemctl restart network
静态IP地址:
bootproto=static onboot=yes
IPADDR=192.168.1.160
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=119.29.29.29
DNS2=8.8.8.8
systemctl restart network
centos8:nmcli c reload 网卡名(nmcli可查看) 或 nmcli c up 网卡名 或 nmcli d reapply/connect 网卡名
34:mysql5.7 远程
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Root123@' WITH GRANT OPTION;
35:查看系统版本
cat /etc/redhat-release
36:centos 查看系统信息
系统:cat /etc/os-release 或 hostnamectl 或 cat /etc/issue
cpu:cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
内存:cat /proc/meminfo
内核:uname -a
37:查看软件安装信息
rpm -qal |grep jenkins
38:用户和组
添加用户:adduser 用户名
设置密码:passwd 用户名
useradd -g 组名 用户名(-g 所属组 -d 家目录 -s 所用的SHELL)
查看用户:vim /etc/passwd
查看用户组: vim /etc/group groups <user1> <user2>
修改密码:passwd 用户名
添加用户组:groupadd 组名
将用户加入组同时从其他组移除:usermod -G 组名 用户名
将用户加入组同时不从其他组移除:usermod -a -G 组名 用户名
关闭用户:passwd 用户名 -l
恢复:passwd 用户名 -u
删除用户:userdel 用户名
删除用户组:groupdel 组名
强制删除该用户的主目录和主目录下的所有文件和子目录:usermod -G 组名 用户名
将用户移除组:gpasswd -d 用户名 组名
39:centos7扩展分区
fdisk -l查看是否有空余空间未使用
fdisk /dev/sda 创建分区 -> p打印分区 -> n创建分区 -> t修改分区类型8e为lvm -> w保存
pvcreate /dev/sda1 生成pv物理卷
vgscan 查看vg卷组
vgextend centos /dev/sda1扩容到当前卷组 vgcreate vg001 /dev/sda1创建vg
vgdisplay 可以看到已经有剩余空间
lvextend -L +200G /dev/mapper/centos-root 扩展到现有挂载点
xfs_growfs /dev/mapper/centos-root 刷新挂载点
lvscan 扩展成功
40:centos7挂载点之间扩容
df -h 将/dev/mapper/centos-home分区 分配一部分空间到 /dev/mapper/centos-root
lvreduce -L 200G /dev/mapper/centos-home 设置 home 分区大小为 200G,释放 300G 空间
lvextend -l +100%FREE /dev/mapper/centos-root 将空闲空间扩展到 root 分区
xfs_growfs /dev/mapper/centos-root 使用 XFS 文件系统自带的命令集增加分区空间
这样会导致home无法挂载但是root正常可以使用下面的方法
umount /home/
lvremove /dev/mapper/centos-home
lvextend -L +10G /dev/mapper/centos-root
xfs_growfs /dev/mapper/centos-root
lvcreate -L 10G -n home centos
mkfs.xfs /dev/mapper/centos-home
mount /dev/mapper/centos-home /home
df -h
lsblk
41:挂载云盘
方式一不分区:
fdisk -l 可以看到云盘信息 parted --list
mkfs.ext4 /dev/vdb 格式化云盘mkfs.xfs /dev/vdb (如已存在加[-f])
mount /dev/vdb /data 挂载到data目录(删除挂载umount /data)
配置开机自动挂载修改/etc/fstab文件,文件末尾添加:/dev/vdb(或UUID=通过blkid 查看) /data ext4 defaults 0 0
df -hl查看挂载情况lsblk
方式二分区:
fdisk -l 可以看到云盘挂载信息 parted --list
fdisk /dev/vdb -> (p:查看分区,n:创建分区) -> 一直默认 -> w保存
fdisk -l 可以看到已经有新分区/dev/vdb1
格式化云盘分区 mkfs.xfs /dev/vdb1
mount /dev/vdb1 /data 挂载到data目录(删除挂载umount /data)
配置开机自动挂载修改/etc/fstab文件,文件末尾添加:/dev/vdb(或UUID=通过blkid 查看) /data ext4 defaults 0 0
df -hl查看挂载情况lsblk
42:释放cache/buff
sync
echo 1 > /proc/sys/vm/drop_caches
echo 2 > /proc/sys/vm/drop_caches
echo 3 > /proc/sys/vm/drop_caches
free -h
43:定时任务 cron
systemctl start/stop/restart/reload/status crond
crontab命令用于安装、删除或者列出用于驱动cron后台进程的表格。用户把需要执行的命令序列放到crontab文件中以获得执行。每个用户都可以有自己的crontab文件。/var/spool/cron下的crontab文件不可以直接创建或者直接修改。该crontab文件是通过crontab命令创建的。
crontab -l 显示当前crontab
-r 删除当前crontab文件
-e 使用VISUAL或者EDITOR环境变量所指的编辑器编辑当前的crontab文件。当结束编辑离开时,编辑后的文件将自动安装。
0 2 * * * sh /docker-services/mysql_bak/mysql_keyixiao_dumps.sh >> /docker-services/mysql_bak/mysql_keyixiao_dumps.log 2>&1
- #!/bin/bash
- docker_name=mysql8
- data_dir="/docker-services/mysql_bak/data/"
- dd=`date +%Y%m%d`
- user="xxx"
- upwd="xxx123"
- echo "start backmysql keyixiao... $dd"
- if [ ! -d $data_dir ];then
- mkdir -p $backup_dir;
- fi
-
- docker exec -i ${docker_name} mysqldump -u$user -p$upwd xxx > "$data_dir/xxx_$dd.sql"
- if [ $? -ne 0 ];then
- # 任务失败,发送邮件 echo -e "邮件正文" | mail -s '标题' 123456@gmail.com
- echo "backmysql xxx error"
- exit -1
- fi
- echo "backmysql xxx success path:$data_dir/xxx_$dd.sql"
- echo "backmysql xxx del !7days files..."
- find $data_dir -mtime +7 -name 'xxx_*.sql' -exec rm -rf {} \;
- echo "backmysql xxx del !7days files success"
- echo "end backmysql xxx"
44:>和>>的区别 >覆盖 >>追加
45:进程管理工具Supervisor
安装:
yum方式:yum install supervisor
apt方式:apt-get install supervisor
pip方式:sudo yum install python-setuptools-devel;pip install supervisor
easy_install方式:sudo yum install python-setuptools-devel;easy_install supervisor
安装成功后 /usr/bin下会有echo_supervisord_conf、supervisorctl、supervisord三个命令可通过ls |grep super查看
安装完成后在 /etc 目录下存在supervisord.d(存放配置文件)和supervisord.conf(没有通过echo_supervisord_conf > /etc/supervisord.conf 生成)
配置:
vim supervisord.conf 在[incloude]下增加files = supervisord.d/*.ini
命令:
启动:supervisord -c /etc/supervisord.conf 或 supervisord
停止:supervisorctl shutdown
重新加载配置:supervisorctl reload/update如有密码supervisorctl -u user -p 123 reload/update
其他:supervisorctl status/start/stop/restart/clear 进程名
把要管理的进程放到 /etc/supervisord.d/*.ini
进程管理:
supervisorctl start/stop/restart/status all/xxx
supervisorctl进入shell界面来管理
46:systemctl
加入系统开机启动服务:
vim /usr/lib/systemd/system/supervisor.service 内容:
[Unit]
Description=supervisor
After=network.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /usr/local/supervisord.conf
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
vim /etc/vim /etc/supervisord.d/nginx.ini 内容:
[program:nginx]
command=/usr/sbin/nginx -g 'daemon off;'
autostart=true ;自动启动
autorestart=true ;自动重启
user=root ;以哪个用户执行
stdout_logfile=/tmp/supervisor_nginx.log ;日志路径
vim /etc/vim /etc/supervisord.d/redis.ini 内容:
[program:redis] command=redis-server
autostart=true ;自动启动
autorestart=true ; 自动重启
user=root ;以哪个用户执行
stdout_logfile=/tmp/supervisor_redis.log ;日志路径
使用:
systemctl start/stop/status/enable supervisor.service(enable加入开机自启动)
47:免密登录
ssh-keygen 默认几次回车
ssh-copy-
id
user@ip1
ssh-copy-
id
user@ip2
48:清除当前会话输入历史
history -c 清楚所有历史 rm ~/.bash_history
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。