You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

450 lines
9.1 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 一、文件
## 1.1 压缩及解压
+ zip
```shell
# 压缩
zip -r ./xxx.zip ./*
# 解压
unzip xxx.zip
# 查看压缩文件内容
unzip -v xxx.zip
# 从zip中删除xxx.txt文件
zip xxx.zip -d xxx.txt
```
+ tar
```shell
# 解压
tar -zxvf xxxx.tar.gz
tar -xvf xxxx.tar
tar -xjvf xxxx.tar.bz2
# 压缩
# 将目录里所有jpg文件打包成tar.jpg
tar -cvf jpg.tar *.jpg
# 将目录里所有jpg文件打包成jpg.tar后并且将其用gzip压缩
tar -czf jpg.tar.gz *.jpg
```
+ 压缩命令过长
```shell
find ./ -name '*' -print |zip files -@
```
## 1.2 文件合并及切分
+ 合并
```shell
cat *.txt > target.txt
```
+ 拆分
```shell
# 按大小切分
split -b 100m xxxx
# 按行切分
split -l xxxx
# 设置拆分后文件名,指定数字后缀
split -b 100m -d xxxx xxxx_part_
```
## 1.3 查看文件
+ 文件大小
```shell
du -sh xxx
```
+ ls
```
# 查看所有
ls -a
# 列表形式显示
ls -l
```
+ ll
```
# 以文件上次被修改的时间排序
ll -lht|head -n 20
```
## 1.4 创建文件
```
# 创建文件
touch xxx.txt
# 创建隐藏文件
touch .xxxx.txt
```
## 1.5 移动及复制文件(夹)
```shell
# 将xxx.txt文件移动到abc文件夹
mv xxx.txt abc
# 将1文件移动到2文件实质上就是1文件重命名为2文件
mv 1.txt 2.txt
```
```
# 使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 
cp r test/ newtest
# cp 命令使用 -r 参数可以将 packageA 下的所有文件拷贝到 packageB
cp -r /home/packageA/* /home/cp/packageB/
```
## 1.6 查找文件
+ find
```
# 指定目录
find /home -name 123.txt
# 模糊查找12开头的文件
find /home -name 12*
# 将当前目录及其子目录下所有文件后缀为 .c 的文件列出来
find . -name "*.c"
# 将当前目录及其子目录中的所有文件列出
find . -type f
# 全局查找以txt后缀文件
find / -name "*.txt*"
```
## 1.7 查看文件
+ view
```shell
# 进入vi查看不可编辑
view xxx.txt
```
+ cat
```
# 输出文件
cat xxx.txt
```
## 1.8 清空文件
+ true
```shell
true > 1.txt
```
## 1.9 将结果转存文件
```
# 将内容追加到txt中
ls > 1.txt
ll > 1.txt
```
## 1.10 grep
```shell
# 查找进程
ps -ef|grep xxxx
#
```
## 1.11 sed
## 1.12 awk
# 二、网络
## 2.1 查看IP
yum install -y net-tools
+ ifconfig
```
ifconfig
```
+ lsof
```
# 查看所有
lsof -i
# 查看指定端口
lsof -i:8080
# 查看文件进程
lsof xxx.txt
```
+ ip
```
ip link show # 显示网络接口信息
ip link set eth0 up # 开启网卡
ip link set eth0 down # 关闭网卡
ip link set eth0 promisc on # 开启网卡的混合模式
ip link set eth0 promisc offi # 关闭网卡的混个模式
ip link set eth0 txqueuelen 1200 # 设置网卡队列长度
ip link set eth0 mtu 1400 # 设置网卡最大传输单元
ip addr show # 显示网卡IP信息
ip addr add 192.168.0.1/24 dev eth0 # 设置eth0网卡IP地址192.168.0.1
ip addr del 192.168.0.1/24 dev eth0 # 删除eth0网卡IP地址
ip route show # 显示系统路由
ip route add default via 192.168.1.254 # 设置系统默认路由
ip route list # 查看路由信息
ip route add 192.168.4.0/24 via 192.168.0.254 dev eth0 # 设置192.168.4.0网段的网关为192.168.0.254,数据走eth0接口
ip route add default via 192.168.0.254 dev eth0 # 设置默认网关为192.168.0.254
ip route del 192.168.4.0/24 # 删除192.168.4.0网段的网关
ip route del default # 删除默认路由
ip route delete 192.168.1.0/24 dev eth0 # 删除路由
```
## 2.2 查看网关
```
# 查看gateway
route -n
```
## 2.3 查看端口占用
```
netstat -anp|grep 3306
```
## 2.4 ping
```shell
ping 192.168.1.1
```
## 2.5 host
+ hostname
```
# 查看本机Hostname
hostname
```
```shell
# 查看Hosts文件
vi /etc/hosts
```
## 2.6 SSH远程登录
```
# 默认端口22
ssh username@ip
# 指定端口
ssh -p 2233 username@ip
```
## 2.7 SCP远程复制
```
# 指定用户名IP
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
# 做了互信
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
scp local_file remote_host:remote_file
# 递归复制整个目录
scp -r local_dir remote_host:remote_folder
```
## 2.8 查看网卡
查看当前使用网卡
```
nmcli d
```
修改IP添加DNS
```text
nmcli c m ens33 ipv4.address 192.168.80.10/24 # 修改 IP 地址和子网掩码
nmcli c m ens33 ipv4.method manual # 修改为静态配置,默认是 auto
nmcli c m ens33 ipv4.gateway 192.168.80.2 # 修改默认网关
nmcli c m ens33 ipv4.dns 192.168.80.2 # 修改 DNS
nmcli c m ens33 +ipv4.dns 114.114.114.114 # 添加一个 DNS
nmcli c m ens33 ipv6.method ignored # 将 IPv6 禁用针对CentOS8三个可选项disabled、auto、manual
nmcli c m ens33 connection.autoconnect yes # 开机启动
```
显示连接信息
```
nmcli connection show
nmcli c show
```
## 2.9 安装SSH
```shell
yum -y install openssh openssh-server openssh-clients
systemctl start sshd
systemctl status sshd
```
## 2.10 修改DNS
```
vim /etc/resolv.conf
# 重启网络
systemctl start network.service
```
## 2.11 网络测试
```shell
# 返回0表示正常
wget --spider -T 5 -q -t 2 www.baidu.com | echo $?
```
# 三、权限
## 3.1 用户权限及用户组
Linux/Unix 的文件调用权限分为三级 : 文件所有者Owner、用户组Group、其它用户Other Users
+ chmod
```
# 添加操作权限
chmod +x xxx.sh
#
chmod 777 xxx.sh
```
![[file-permissions-rwx.jpg]]![[rwx-standard-unix-permission-bits.png]]
+ chown
```
# 添加操作用户
chown [-R] 所有者:所属组 文件或目录
```
## 3.2 免密
```
# 安装ssh
yum -y install openssh openssh-server openssh-clients
systemctl start sshd
systemctl status sshd
```
```
ssh-keygen -t rsa #三次回车
# 复制rsa凭证到对方机cdh-master在hosts中配置,也可以改为 用户名@ip
ssh-copy-id -f -i ~/.ssh/id_rsa.pub cdh-master
ssh-copy-id -f -i ~/.ssh/id_rsa.pub cdh-slave1
```
# 四、系统
## 4.1 系统时间
```
date
```
## 4.2 防火墙
```
systemctl disable firewalld
systemctl stop firewalld
```
## 4.3 selinux
```
[root@dev-server ~]# getenforce
Disabled
[root@dev-server ~]# /usr/sbin/sestatus -v
SELinux status: disabled
```
临时关闭
```
##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
setenforce 0
```
永久关闭
```
vi /etc/selinux/config
# 将SELINUX=enforcing改为SELINUX=disabled
# 设置后需要重启才能生效
```
## 4.4 linux内核及版本
+ lsb_release
```
# 查看发行版
lsb_release -a
```
+ uname
```
# 查看内核版本
uname -a
```
## 4.5 查看内存、CPU
+ free 查看内存
```shell
# 以G为单位
free -h
# 以M为单位
free -m
```
CPU
```
# 查看CPU型号及总线程数
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
# 查看CPU线程数
cat /proc/cpuinfo |grep "processor"|wc -l
```
## 4.6 修改密码
```
# 修改root密码
passwd root
```
## 4.7 查看磁盘
```shell
df -h
```
## 4.8 查看进程
+ jps
```
查看java虚拟机进程
jsp
```
## 4.9 软链接
将python2.7.9映射为python可以先用whereis python或者which python查找位置
```shell
ln -s /usr/local/python-2.7.9/bin/python /usr/bin/python
```
## 4.10 查看上次登录
```shell
who -b
```
## 4.11 配置定时任务
hadoop任务可能不会执行因为crontab的path和系统path不一致找到hadoop命令。如果出现找不到命令情况请添加cron path
```shell
root 用户
vim /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
20 04 * * * root reboot
# 加载配置
crontab /etc/crontab
# 重启crontab服务
systemctl restart crond.service
```
# 五、vim
![[vi-vim-cheat-sheet-sch.gif]]
| 操作 | 命令 |
| -------------- | ------------------------------- |
| 复制 | yy 复制当前行 |
| 粘贴 | p |
| 查找 | 普通模式下 按下/ 并输入待查字符 |
| 保存/强制保存 | wq/wq! |
| 退出vim | q/q! |
| 取消插入模式 | esc |
| 显示/取消行号 | :set nu/:set nonu |
| 修改文件format | :set fileformat=unix |
| 删除 | dd 删除当前行 |
| 方向键 | h左 j:下 k上 l右 |
# 六、环境变量
## 6.1 java 环境变量
```shell
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source ~/.bashrc
# 验证
java -version
echo $JAVA_HOME
```