系统下载
CentOS:https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-2009.iso?spm=a2c6h.25603864.0.0.74092d1c5VBGBd
RPM资源下载
http://www.rpmfind.net/linux/rpm2html/search.php?query=&submit=Search+...&system=&arch=
常用命令
参考 https://wangchujiang.com/linux-command/
scp
1 2 3
| cd /software # 拷贝指定服务器指定目录拷贝到当前目录下 scp -r root@192.168.1.33:/software/fast-zhzf2 ./
|
查看 IP
ssh 连接
查看 Linux 发行版名称和版本号
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| cat /etc/os-release
/etc/*-release 文件
uname 命令
/proc/version 文件
dmesg 命令
YUM 或 DNF 命令
RPM 命令
APT-GET 命令
|
查看端口占用并杀死进程
netstat 命令
3306 替换成需要 grep 的端口号
lsof 命令
1 2 3 4 5 6
| lsof -i:80
lsof -i tcp:80
lsof -i tcp:8080 kill -9 PID
|
-i 参数表示网络链接,:80 指明端口号
查看所有进程监听的端口
1
| sudo lsof -i -P | grep -i listen
|
根据端口号杀死进程
1
| kill -9 `lsof -t -i:8888`
|
统计命令耗时
1 2 3 4 5 6 7
| time command
示例: time curl https://www.baidu.com
... curl https://www.baidu.com 0.03s user 0.03s system 31% cpu 0.182 total
|
统计指定目录文件内容总行数
包含空行、注释
1
| find . -name "*.java"|xargs cat|wc -l
|
去除空行
1
| find . -name "*.java"|xargs cat|grep -v ^$|wc -l
|
获取文件夹下的文件名
1 2 3 4 5 6 7 8 9
| #!/bin/bash # get all filename in specified path
path=$1 files=$(ls $path) for filename in $files do echo $filename >> filename.txt done
|
获取内存总大小
1
| grep MemTotal /proc/meminfo
|
获取交换分区大小
1
| grep SwapTotal /proc/meminfo
|
查看 tomcat 进程打开文件数量
1 2 3 4 5
| 查看进程 pid: ps aux|grep tomcat
根据 pid 查看打开文件数量: lsof -p pid|wc -l
|
查看目录下文件或目录个数
查看磁盘空间分配情况
查看当前目录下各目录大小
查看当前目录下每个子目录的文件数量
1
| find . -maxdepth 1 -type d | while read dir; do count=$(find "$dir" -type f | wc -l); echo "$dir : $count"; done
|
路径名中含空格
1
| ls /Users/mac126/Library/Application\ Support/Beyond\ Compare/
|
1 2 3
| ls /Users/mac126/Library/"Application Support"/"Beyond Compare"/
ls /Users/mac126/Library/'Application Support'/'Beyond Compare'/
|
时间校准
- 安装 ntpdate,执行以下命令
- 手工同步网络时间,执行以下命令,将从 time.nist.gov 同步时间
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| ntpdate 0.asia.pool.ntp.org
若上面的时间服务器不可用,也可以选择以下服务器同步时间
time.nist.gov
time.nuri.net
0.asia.pool.ntp.org
1.asia.pool.ntp.org
2.asia.pool.ntp.org
3.asia.pool.ntp.org
|
- 使用 crontab 计划任务定时更新网络时间,修改 crontab 文件
1 2 3
| vi /etc/crontab
* */1 * * * ntpdate 0.asia.pool.ntp.org //在末尾增加,每隔1小时同步一次时间。
|
4) 使用 date 命令查看当前时间
5) 系统时间同步到硬件,防止系统重启后时间呗还原
防火墙设置「CentOS」
修改配置后要重启防火墙
查看 firewall 服务状态
1 2 3 4
| systemctl status firewalld
出现Active: active (running)切高亮显示则表示是启动状态 出现 Active: inactive (dead)灰色表示停止
|
关闭防火墙命令
1 2 3 4 5 6 7 8
| #centos7 systemctl stop firewalld.service
#以下为:centOS 6.5关闭防火墙步骤 #关闭命令: service iptables stop #永久关闭防火墙: chkconfig iptables off
|
开启防火墙
1
| systemctl start firewalld.service
|
关闭开机自启动
1
| systemctl disable firewalld.service
|
开启开机启动
1
| systemctl enable firewalld.service
|
查看 firewall 的状态
查看防火墙规则
查询端口是否开放
1
| firewall-cmd --query-port=8080/tcp
|
iptables 配置文件
开放 80 端口
1
| firewall-cmd --permanent --add-port=80/tcp
|
移除 80 端口
1
| firewall-cmd --permanent --remove-port=8080/tcp
|
重启防火墙
CentOS7 如何开启 iptables 日志
https://www.crowsong.xyz/1294.html
lsof 命令不识别
Shell
shell 获取当前日期,当前时间
1 2 3 4 5
| DATE="`date +%Y-%m-%d`" echo $DATE
DATETIME="`date +%Y-%m-%d,%H:%m:%s`" echo $DATE
|
查看当前shell
添加开机自启动脚本
在/etc/rc.local中添加
Linux 定时任务示例
重启 Tomcat 服务脚本 - restarttomcat.sh
添加定时任务,实现定时重启 Tomcat 服务器
添加内容:
1
| 0 1 * * * /bin/bash /home/wangwz/Desktop/restarttomcat.sh >> /home/restart.log
|
查看任务:
用户
忘记 root 密码
以 单用户模式进入,修改 root 密码。如果 /etc/passwd 文件不存在,则需要手动创建,并填写如下内容「必需」
1 2 3 4 5 6 7 8
| root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin sssd:x:989:986:User for sssd:/:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin gnome-initial-setup:x:988:983::/run/gnome-initial-setup/:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
|
切换为 root 用户
更换密码
1 2
| passwd root passwd zhangsan
|
开启 root
1 2 3 4 5 6 7 8 9 10
| //给 root 用户设置密码 sudo passwd root
//使用 root 用户登陆 sudo vi /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 在最后增加 greeter-show-manual-login=true
//关闭 guest 用户 sudo vi /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 在最后增加 allow-guest=false
|
Linux免密登录
环境
1 2
| A 机器 192.168.0.200 B 机器 192.168.0.201
|
安装插件
1 2
| sudo apt-get install openssh-server sudo yum -y install openssh-clients
|
在 A 生成密钥配置
1 2
| // 不要输入密码 ssh-keygen -t rsa
|
将 A 生成的公钥文件拷贝到 B
1 2 3
| ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.201 # 回车后输入 B 机器 root 用户的密码 # 或者将 id_rsa.pub文件的内容拷贝至远程服务器的~/.ssh/authorized_keys文件中
|
验证是否成功
问题
异常 /bin/sh^M: bad interpreter: No such file or directory
JDK
将 jdkXXX.tar.gz 放入/usr/java 文件夹中,解压
设置环境变量
1 2 3 4 5 6 7 8 9
| vi /etc/profile 在最后添加: export JAVA_HOME=/usr/java/jdk1.8.0_191 export JRE_HOME=/usr/java/jdk1.8.0_191/jre export PATH=$PATH:./:/usr/java/jdk1.8.0_191/bin:/sbin export CLASSPATH=./:/usr/java/jdk1.8.0_191/lib:/usr/java/jdk1.8.0_191/jre/lib
//使刚才的修改生效 source /etc/profile
|
建立软链接
1 2 3 4
| //先删除软连接 rm -fr /usr/bin/java
ln –s /usr/java/1.8.0_191/bin/java /usr/bin/java
|
测试 jdk 是否安装成功
更新 centos 上的 gcc
Linux升级安装GCC - IT笔录 (itbilu.com)
rsync 和 scp
rsync
基本语法
1
| rsync -rvl $pdir/$fname $user@hadoop$host:$pdir/$fname
|
命令 选项参数 要拷贝的文件路径 / 名称 目的用户 @主机:目的路径 / 名称
选项参数说明:
选项 |
功能 |
-r |
递归 |
-v |
显示复制过程 |
-l |
拷贝符号连接 |
案例实操
(a)把 hadoop01 机器上的 /home/software/rhf001 目录同步到 hadoop02 服务器的 root 用户下的 /home/software/ 目录

xsync 集群分发脚本
需求
循环复制文件到所有节点的相同目录下
rsync 命令原始拷贝
1
| rsync -rvl /home/software/rhf001 root@hadoop02:/home/software/
|
在 /usr/local/bin 目录下创建 xsync 文件,向里面添加
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #!/bin/sh
pcount=$# if((pcount==0)); then echo no args...; exit; fi
p1=$1 fname=`basename $p1` echo fname=$fname
pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir
user=`whoami`
for((host=3; host<=4; host++)); do echo $pdir/$fname $user@slave$host:$pdir echo ==================slave$host================== rsync -rvl $pdir/$fname $user@slave$host:$pdir done
|
修改脚本 xsync 具有执行权限
将 filename 分发到集群中的各个节点中