本地域名映射
sudo vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.209.101 hadoop101
固定IP
centos6:
sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
UUID=90a864b5-f94c-41e9-9e4d-ed9ea2a253e9
ONBOOT=yes ####
NM_CONTROLLED=yes
BOOTPROTO=static ####
HWADDR=00:0C:29:32:48:E2
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
LAST_CONNECT=1554125237
IPADDR=192.168.209.101 ####
GATEWAY=192.168.209.2 ####
DNS1=192.168.209.2 ####
centos7:
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static ###
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=6db4e986-dc32-4314-94c6-2030ffffd08f
DEVICE=ens33
ONBOOT=yes ###
IPADDR=192.168.209.101 ###
NETMASK=255.255.255.0 ###
GATEWAY=192.168.209.2 ###
DNS1=192.168.209.2 ###
systemctl restart network.service
修改主机名
centos6:
sudo vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=centos6
centos7:
sudo vim /etc/hostname
centos7
hostnamectl set-hostname centos7
ssh免密码登陆配置
ssh-keygen -t rsa
cd ~/.ssh
id_ras id_rsa.pub known_hosts
ssh-copy-id desthost(要免密登录的IP) 或scp + cat >> 命令
让普通用户具备sudo权限:
切换到root: vim /etc/sudoers
root ALL=(ALL) ALL
gaoxiang ALL=(ALL) All (添加一行)
让Linux启动不要启动图形界面
获取系统运行级别:runlevel
centos6
sudo vim /etc/inittab
将启动级别改为3:id:3:initdefault:
启动图形界面:startx sudo init 5
centos7:
systemctl get-default # 获取运行级别
systemctl set-default multi-user.target # 多用户(级别3)
systemctl set-default graphical.target # 图形界面(级别5)
后台运行java微服务
nohup java -jar test.jar > temp.txt &
nohup java -jar hello-0.0.1-SNAPSHOT.jar > temp.txt &
通过建立软连接变为全局
ln -s /usr/local/application/nodejs/bin/npm /usr/local/bin/
ln -s /usr/local/application/nodejs/bin/node /usr/local/bin/
设置自启动服务
修改linux 启动脚本/etc/rc.d/rc
加入:/usr/local/nginx/sbin/nginx
添加环境变量
sudo vim /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
Ubuntu基本配置
安装ssh服务
apt-cache policy openssh-client openssh-server
apt-get install openssh-server
apt-get install openssh-client
设置允许远程登录 Root
sudo passwd root
su
nano /etc/ssh/sshd_config
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
重启服务
service ssh restart
基础命令
============================================
service mysqld start # 开启服务
service mysqld restart # 重启服务
service mysqld stop # 关闭服务
service network restart # 重启网络
chkconfig <service> on # 开启开机自启动
chkconfig <service> off # 关闭开机自启动
systemctl start network.service # 重启服务
systemctl stop httpd.service # 关闭服务
systemctl restart network.service # 重启服务
systemctl enable network.service # 开机自启动
systemctl disable httpd.service # 关闭开机自启动
systemctl stop firewalld # 关闭防火墙
systemctl disable firewalld # 关闭防火墙开机自启动
firewall-cmd --list-all # 查看开放的端口
firewall-cmd --list-ports # 查看开放的端口
firewall-cmd --add-port=80/tcp --permanent # 开放端口
firewall-cmd --reload # 重启防火墙
firewall-cmd --zone=public --remove-port=8080/tcp --permanent # 关闭端口
============================================
id root # 查看root用户相关信息
useradd -d /home/gaoxiang -g dev gx # 增加用户,并指定家目录和用户组
useradd -m -g 组 新建用户名 # 添加新用户,-m自动建立用户家目录,-g指定用户所在的组,否则会建立一个和同名的组
groupadd 组名 # 添加用户组
groupdel 组名 # 删除用户组
userdel -r 用户名 # 删除用户 -r 选项会自动删除用户家目录
usermod -g 组 用户名 # 修改用户的主组
usermod -G 组 用户名 # 修改用户的附加组
usermod -s /bin/bash 用户名 # 修改用户登录 Shell
chown 用户名 文件名|目录名 # 修改文件|目录的拥有者
chgrp -R 组名 文件/目录名 # 递归修改文件/目录的所属组
chmod -R 755 文件名|目录名 # 递归修改文件权限
chmod +/-rwx 文件名|目录名 # 直接修改文件|目录的 读|写|执行 权限,但是不能精确到 拥有者|组|其他
============================================
rpm -qa | grep firfox # 查询软件
rpm -e firfox # 卸载软件
rpm -e --nodeps firfox # 强制卸载软件
rpm -ivh firfox # 安装软件
yum list | grep firfox # 查询软件
yum search firfox # 查找软件
yum update # 升级软件
yum remove vim # 卸载软件
yum -y install vim # 安装软件
yum -y install net-tools
yum -y install tree
yun -y install gcc gcc-c++
============================================
shutdown -r now # 重新启动操作系统,其中 now 表示现在
shutdown now # 立刻关机,其中 now 表示现在
shutdown +10 # 系统再过十分钟后自动关机
shutdown 20:25 # 系统在今天的 20:25 会关机
shutdown -c # 取消之前指定的关机计划
ifconfig # 查看网卡配置信息
ifconfig | grep inet # 查看网卡对应的 IP 地址
top # 动态显示运行中的进程并且排序
ps aux # 查看进程的详细状况
ps -ef | grep mysql # 查看进程相关信息
netstat -nltp # 查看开放端口
crond任务调度:
crontab -e: 编辑crontab定时任务
crontab -l: 查询crontab任务列表
crontab -r: 终止所有crontab任务
查看服务:
netstat -nltp | grep xxx
ss -tanlp
============================================
ls / #列表显示目录文件
cd / # 切换目录
mkdir java # 创建目录,-p:递归创建目录
touch Hello.java # 创建文件
pwd # 显示当前位置
rm Hello.java # 删除文件,-r:递归删除目录,-f:强制删除
wget url # 下载
crul http://127.0.0.1:8000/ # 访问网页
kill -9 PID # 强制结束进程
lsb_release -a # 查看系统版本
which python # 查看软件位置
command --help # 查看帮助
ln -s 被链接的源文件 链接文件 #添加软链接
find [路径] -name "*.py" # 在指定的目录下查找文件
tree [目录名] -d # 以树形结构显示目录
cp 源文件 目标文件 # 复制
mv 源文件 目标文件 #移动
grep 搜索文本 文件名 # 搜索
more 文件名 # 查看文件
tail -f 文件名 # 查看变化文件的后面十行
head -n 10 文件名 # 查看文件的首部十行
date # 查看系统时间
runlevel # 查看系统的运行级别
ssh 用户名@ip # 远程连接服务器
scp 用户名@ip:文件 用户名@ip:文件 # 远程操作服务器复制文件
which # 命令可以查看执行命令所在位置
> # 表示输出,会覆盖文件原有的内容
>> # 表示追加,会将内容追加到已有文件的末尾
| # 管道
df -h # 显示磁盘剩余空间
du -h [目录名] # 显示目录下的文件大小
cat /etc/group # 确认组信息
passwd 用户名 # 设置用户密码,如果是普通用户,直接用 passwd 可以修改自己的账户密码
gzip 2019_03_25_182426.sql 2019_03_25_182426.sql.gz # 压缩
gunzip 2019_03_25_182426.sql.gz # 解压
tar -zcvf 2019_03_25_182426.tar.gz 2019_03_25_182426 # 打包
tar -zxvf 2019_03_25_182426.tar.gz -C / # 解包,-C指定位置
shell基础
[] 条件判断,距离括号的左右必须有一个空格,if的关键字必须和空格有一个空格
#!/bin/bash
if [ "100" = "100" ]
then
echo "equal"
fi
=================================================================
字符串比较 =
大于 -gt (greater than)
小于 -lt (less than)
大于或等于 -ge (greater than or equal)
等于 -eq(equal)
小于或等于 -le (less than or equal)
不相等 -ne (not equal)
===================================================================
#!/bin/bash
#完成数据库的备份
BACKUP=/data/backup/db
DATETIME=$(date +%Y_%m_%d_%H%M%S)
#可以输出变量调试
#echo ${DATETIME}
echo "=========开始备份========"
echo "=========备份的路径是 $BACKUP/$DATATIME.tar.gz"
#主机
HOST=localhost
#用户名
DB_USER=root
#密码
DB_PWD=root
#备份的数据库名
DATABASE=trace
#创建备份的路径
#如果备份的路径文件夹存在,就使用,不存在就创建
[ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"
#执行mysql的备份数据库的指令
mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz
#打包备份文件
cd $BACKUP
tar -zcvf $DATETIME.tar.gz $DATETIME
#删除临时目录
rm -rf $BACKUP/$DATETIME
#删除10天前的备份文件
find $BACKUP -mtime +10 -name "*.tar.gz" exec rm -rf {} \;
echo "============备份文件成功"