#安装远程登录
yum install sshsystemctl start sshdsystemctl status sshd#查看所使用的bash
echo $SHELL查看系统语言
echo $LANG修改系统字符集:vim /etc/locale.confLANG=zh_CN.UTF-8#查看当前用户
who is it/whoami/id -nu#查看系统版本:
cat /etc/os-releaselsb_release -auname -a #可显示电脑以及操作系统的相关信息cat /proc/version #说明正在运行的内核版本cat /etc/issue #显示的是发行版本信息cat /etc/os-releaserpm -qi centos-release#查看cpu级别(操作系统位数)
arch变量在export后 可以在后续的程序中用$来引用 如echo $PATH
变量拼接入path后可直接在控制台用(如tomcat启动)否则要写全($CATALINA_HOME/bin/startup.sh)环境变量
全局环境变量设置:不建议在 etc/profile中设置,在子目录/etc/profile.d下添加*.sh安装netstat
yum -y install net-toolssystemd学习
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.htmlhttp://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html系统命令:
systemctl reboot #重启systemctl halte #关机service配置文件命令路径必须是绝对路径,修改后要重新加载systemctl daemon-reload查看所有级别:ls -lh /usr/lib/systemd/system/runlevel*.target查看默认的运行级别:systemctl get-default修改当前运行级别:systemctl set-default multi-user.target# 查看 multi-user.target 包含的所有服务$ systemctl list-dependencies multi-user.target# 切换到另一个级别$ sudo systemctl isolate multi-user.target查看类型为service的单元
systemctl list-units --type=service(运行中的)systemctl list-units -all --type=service(包含非运行中的)#查看系统运行状态systemctl status#列出所有服务的层级和依赖关系,可以指定某个服务systemctl list-dependencies tomcat.servicesystemctl list-dependencies multi-user.target#restart与try-restart区别
systemctl restart httpd.service #如服务在运行将重启,不在运行将会启动
systemctl try-restart httpd.servic #只有服务在运行才重启
查看服务启动日志
systemctl status tomcat 或 journalctl -xe查看单个服务日志journalctl -f -u prometheus.service查看journalctl日志占用磁盘的空间的总大小
journalctl --disk-usage由于Linux是一个非常敏感的操作系统,若删除文件错误,很容易造成系统崩溃。journalctl --vacuum-time=2d 删除比指定时间旧的文件journalctl --vacuum-size=500M 保留大小限制日志
修改配置文件/etc/systemd/journald.confjournalctl学习:
查看指定时间以后的日志journalctl --since "2018-03-26" --until "2018-03-26 03:00"清理日志
日志位置:/var/log/journal设置缓存history命令条数
修改/etc/profile HISTSIZE=100查看已缓存的命令:cat .bash_history设置别名:
在~目录下, vim .bash_profilealias ll="ls -al"source .bash_profile断开用户连接:
ps -ef|grep sshkill -9 (pts/0类似这样的进程)#查看对外,对内连接数 (LISTEN表示启动的程序,ESTABLISHED表示外部访问)
netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c 或 netstat -ant|awk '/tcp/ {print $6}'|sort|uniq -c yum源配置(云源为阿里云)备份系统原来的repo文件mv /etc/yum.repos.d/CentOs-Base.repo CentOs-Base.repo.bakwget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repowget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo云源缓存yum clean allyum makecacheyum update查看系统可用的yum源和所有的yum源
yum repolist enabledyum repolist allyum upgrade和yum update
yum -y update升级所有包同时也升级软件和系统内核yum -y upgrade只升级所有包,不升级软件和系统内核安装软件
rpm -ivh kernel-devel-3.10.0-514.el7.x86_64.rpmyum install kernel-devel查看已安装详情
rpm -qa|grep mysqlrpm -ql mysql-community-server-5.6.37-2.el7.x86_64卸载软件
rpm -e mysql-community-server-5.6.37-2.el7.x86_64rpm -e mailx-12.5-19.el7.x86_64 --nodeps (卸载时不检测依赖,只卸载该包)yum -y remove VirtualBox-5.2 (卸载不干净)#查找which,whereis,locate,find
find / -name mysqld.service 在根目录下查找名字为mysqld.service的文件#网络
systemctl status networkifconfig不显示ipvim /etc/sysconfig/network-scripts/ifcfg-ens33 将ONBOOT=no改为ONBOOT=yes 设置dns方式编辑vi /etc/sysconfig/network-scripts 网卡下面的ifcfg-eth0 配置文件修改DNS1终端输入 setup命令即可调出图形界面设置(配置信息会写入/etc/resolv.conf文件里面)编辑 vi /etc/resolv.conf 设置首选DNS和次要DNS。排在前面的就是首选DNS,后面一行就是次要的DNS服务器DNS解析域名顺序:1 hosts文件 (/etc/hosts)---- 2 网卡配置文件DNS服务地址 ---3 /etc/resolv.conf
#磁盘操作
df -h #查看磁盘使用情况df -Th #显示文件系统类型fdisk -l #显示挂载和未挂载的分区为了避免每次重启系统后都要手动mount,可以在/etc/fstab中加入一行挂载配置,即可开机自动挂载,该方法简单方便cat /etc/fstab dumpe2fs -h /dev/vda1(或 blkid /dev/vda1) #查看设备uuid查看正在使用某个文件的进程idfuser -um /dev/sda2查看磁盘管理器udevadm info -a -n /dev/vdaudevadm info --query=all --name=/dev/vdaudevadm info --query=all --name=/dev/vda1查看挂载情况mount #打包操作(压缩和解压)tar -czvf docker.tar.gz docker tar -xzvf docker.tar.gzzip -r docker.zip docker 递归压缩
unzip docker.zipunzip -o docker.zip 覆盖文件没有提示gzip cjh.txt 会生成cjh.txt.gz (不会归档)
gzip -d cjh.txt.gz#执行sh
eval 执行一个命令 exec 在新进程中执行一个命令,并且终止当前进程 source 在当前进程中执行脚本#vim编辑器使用技巧
:set number #显示行号:u #撤消:%s/1024/512/g #全局替换删除一行:dd#centos间相互复制传送文件
scp -r -P 222 /root/docker root@sanjuscm.4plservice.com:/root/docker#清空文件内容
>catalina.out/du -sh catalina.out#防火墙设置
启动: systemctl start firewalld关闭: systemctl stop firewalld查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld开机启用 : systemctl enable firewalldfirewall-cmd --zone=public --add-port=8080/tcp --permanent (--permanent永久生效,没有此参数重启后失效)重新载入firewall-cmd --reload查看firewall-cmd --zone=public --query-port=8080/tcp删除firewall-cmd --zone=public --remove-port=8080/tcp --permanent查看当前开了哪些端口其实一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件。firewall-cmd --list-services查看还有哪些服务可以打开firewall-cmd --get-services查看所有打开的端口: firewall-cmd --zone=public --list-portsfirewall-cmd --zone=public --add-port=8080/tcp --permanent增加端口后,要重新启动#备份和还原目录
dump -0 -f ./cjh.dump ./cjhrestore -r -f ../cjh.dump linux连接linuxssh -i /root/xxx.pem root@10.10.10.100#awk使用
ps -A | grep httpd | grep -v grep | awk '{ print $1; }' | xargs -L 1 kill -HUP( ps 和 grep 命令用来在所有的进程中搜索 httpd(并且忽略用来搜索 httpd 进程的 grep 进程)
接下来,awk 只显示输出结果中的进程 ID,并将它传递给 xargs
然后,xargs 命令接受每个进程 ID(因为使用了 -L 1 以便一次提取一行内容),并使用 sudo kill -HUP 向相应的进程发送一个挂起信号。
)
#输出:$cat test.txt 1>/dev/null 标准输出$cat test.txt 2>/dev/null 标准错误输出#sh脚本
$$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 $@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 $# 添加到Shell的参数个数 $0 Shell本身的文件名 $1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。变量的定义是有一定的规则的,比如变量和变量内容之间使用等号链接,且等号两边不能直接跟空格.
如果变量内容含有空格,可以使用单引号或者双引号括起来.当然使用单引号和使用双引号是有区别的,如果使用双引号,那么如果内容里面有特殊字符比如$LANG,那么将会被解析成对应的数据.如果使用单引号,则不会解析.echo -e '#!/bin/bash\necho $panda'>one.sh
解释一下上面的命令echo的e选项用于允许转义\标记的内容.chmod u+x one.sh(给当前用户赋予)chmod a+x one.sh(给所有用户赋予)$()与${}的区别:$()中放的是命令,相当于` `(在脚本文件中才有效)${}中放的是变量blocks=${1:-$MINBLOCKS}
相当于if [ -n "$1" ] then blocks=$1 else blocks=$MINBLOCKS fi#查看运行程序内存
ps aux|grep java (b为单位)首先注意usr 指 Unix System Resource,而不是指User
通常/usr/bin下面的都是系统预装的可执行程序,会随着系统升级而改变/usr/local/bin目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件如果两个目录下有相同的可执行程序,谁优先执行受到PATH环境变量的影响,比如我的一台服务器的PATH变量为echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/dean/bin 这里/usr/local/bin优先于/usr/bin, 一般都是如此