01 Linux

缩写 全名 中文名
LVS Linux Virtual Server Linux虚拟服务器
IPVS IP Virtual Server IP虚拟服务器
VRRP Virtual Router Redundancy Protocol 虚拟路由冗余协议
d daemon 守护进程

CentOS基础环境

yum install epel-release #yum安装提示“没有可用软件包”,更新epel第三方软件库
yum install htop
yum install wget
yum install net-tools
yum install dos2unix, dos2unix test.sh #再次执行就不会出现问题了
yum install tree #http://mama.indstate.edu/users/ice/tree
yum install lsof

yum install -y libnl* libnfnetlink-devel  
yum install -y gcc gcc-c++
yum install -y openssl openssl-devel
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel

yum remove keepalived

Ubuntu基础环境

apt-get install htop
apt-get install lsof
apt-get install unzip
apt-get install tree
apt-get install gcc
apt-get install libpcre3-dev
apt-get install zlib1g-dev
apt-get install libssl-dev
apt-get install make

安装Java

mkdir -p /usr/local/java
tar -zxvf jdk-8u201-linux-x64.tar.gz

安装Nginx

cd /usr/local/nginx
tar -zxvf nginx-1.20.1.tar.gz
cd /usr/local/nginx/nginx-1.20.1
./configure
make install
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-stream=dynamic
make
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp /usr/local/nginx/nginx-1.20.1/objs/nginx /usr/local/nginx/sbin/
cd ..
./sbin/nginx -t
/usr/local/nginx/sbin/nginx -s reload
cd /usr/local/nginx/sbin
./nginx
ps -ef | grep nginx

安装Tomcat

mkdir -p /usr/local/tomcat
tar -zxvf apache-tomcat-8.5.23.tar.gz
cd /usr/local/tomcat/apache-tomcat-8.5.23/bin
./startup.sh #启动服务
./shutdown.sh #关闭服务

安装Maven

mkdir -p /usr/local/maven
tar -zxvf apache-maven-3.6.1-bin.tar.gz

maven的settings.xml文件中设置<server>标签

    <server>
      <id>nexus</id>
      <username>admin</username>
      <password>123456</password>
    </server>
    <server>
      <id>nexus-releases</id>
      <username>admin</username>
      <password>123456</password>
    </server>
    <server>
      <id>nexus-snapshots</id>
      <username>admin</username>
      <password>123456</password>
    </server>

mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。

package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库

环境配置

vi /etc/hostname 修改主机名
vi /etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

vi /etc/profile

if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

#java
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=.:${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH
#maven
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.1
export PATH=${MAVEN_HOME}/bin:$PATH
#go
export GOROOT=/usr/local/go
export GOPATH=${GOROOT}/gopath
export PATH=${GOROOT}/bin:$PATH
#ffmpeg
export FFMPEG_HOME=/usr/local/ffmpeg/ffmpeg-4.2
export PATH=${FFMPEG_HOME}/bin:$PATH

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi
source /etc/profile
java -version
mvn -version

NFS

#查看是否安装nfs服务
rpm -qa | grep nfs
rpm -qa | grep rpcbind
#安装nfs
apt-get install nfs-common #ubuntu
yum -y install nfs-utils rpcbind #centos
#启动rpc服务
systemctl start rpcbind.service      
#启动nfs服务
systemctl start nfs.service

#服务端修改文件
/etc/exports
#添加
/data_store/file 192.168.0.3(insecure,rw,sync,no_root_squash)
#重启nfs服务 
systemctl restart nfs.service

#客户端创建挂载目录
mkdir /data_store_file
mount -o rw -nolock -t nfs 192.168.0.3:/data_store/file /data_store_file

常用命令

curl 1058s.cn
wget https://jd1.1058s.cn/download/nginx-1.20.1.tar.gz
-----------------------------------
du -sh #当前目录大小
du -sh tomcat #指定目录大小
du -h --max-depth=1 * #当前目录深度大小
du -h --max-depth=1 tomcat #指定目录深度大小
-----------------------------------
mkdir /data_vdb1
mount /dev/vdb1 /data_vdb1#将云硬盘/dev/vdb1挂载到/data_vdb1
umount /data_vdb1 #解除挂载
df -hT
-----------------------------------
ps -ef | grep java #查看java进程
ps aux | grep java
kill -9 `ps -ef | grep tomcat | awk '{print $2}'`

lsof -i:1099
lsof -i | grep 1099
lsof |grep deleted
ll /proc/9001/cwd #查看服务安装路径
-----------------------------------
cat /proc/cpuinfo | grep -c processor #查看cpu核数
-----------------------------------
opt目录下 lsof -w | grep deleted
进入虚拟文件系统对应进程目录(cd  /proc/23916/fd),将僵尸文件清空
-----------------------------------
htop、top、free -h #查看资源利用
ls 或 ll #查看目录
cd usr/local #进入目录
-> mkdir test #建目录
-> cd test #进入目录
-> touch abc.txt #新建
-> vi abc.txt #查看
-> i #编辑
-> ESC #退出编辑
-> :wq! 或 :q! #退出
-> cat abc.txt #查看
-> tar -czvf my.tar.gz . #gzip压缩
-> rm abc.txt #删除文件
-> tar -xzvf my.tar.gz #解压缩
-----------------------------------
echo hello > abc.txt #追加
tar -cjvf my.tar.bz2 . #bzip2压缩
./startup.sh #执行
chmod 777 abc.txt #修改文件权限
chmod +x /usr/local/bin/docker-compose
shutdown -r now #重启
shutdown -h now #关机
mv -r /usr/local/upload/ /usr/local/upload2/ #移动文件夹到新文件夹 
cp -r /usr/local/a/ /liu_lei/ #拷贝文件夹到新文件夹下
cp -r /usr/local/a/* /liu_lei/ #拷贝文件夹下的文件到新文件夹下
rm -rf tomcat #删除目录和文件
rm * -r #清空当前文件夹
-----------------------------------
tar -cvf demo.tar demo/ #压缩
tar -xvf demo.tar #解压缩
-----------------------------------
unzip -t AdminLTE-2.4.3.zip
unzip AdminLTE-2.4.3.zip -d AdminLTE-2.4.3
-----------------------------------
lsattr bioser
chattr -a bioser
chattr -i bioser
-----------------------------------
netstat -ntlp #查看TCP端口
netstat -ntulp | grep 8080 #查看指定端口
netstat -pnt | grep :80 |wc #查看指定端口连接数量
netstat -nlp | grep java | sort -k3
netstat -nlp | grep java | sort -k6

-t : 指明显示TCP端口
-u : 指明显示UDP端口
-l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
-p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
-n : 不进行DNS轮询,显示IP(可以加速操作)
-----------------------------------
tree -Cd   #色彩+目录
tree -CDts #色彩+更改时间+倒序+大小

-a 显示所有文件和目录。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I 不显示符合范本样式的文件或目录名称。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P 只显示符合范本样式的文件或目录名称。
-q 用"?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。
-----------------------------------
crontab -l
crontab -e
*/15 * * * * ntpdate 192.168.0.1
-----------------------------------
snmpwalk -v 2c -c community_read 10.101.98.241 .1.3.6.1.4.1.2011.6.3.5.1.1

防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
或
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd -reload
firewall-cmd --zone=public --list-ports

虚拟机无法联网

ip addr
cd /etc/sysconfig/network-scripts
vim ifcfg-eno16777736,修改ONBOOT=yes
service network restart

rpmdb open failed 解决办法

error: rpmdb: BDB0113 Thread/process 9347/140177798391872 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 -  (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
Error: rpmdb open failed
解决办法:
cd /var/lib/rpm
ls
rm -rf __db*
rpm --rebuilddb

开机自启

/usr/lib/systemd/system/nginx.service
/usr/lib/systemd/system/keepalived.service

[Unit]
Description=nginx service
After=network.target 
   
[Service] 
Type=forking #forking后台运行
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true 
   
[Install] 
WantedBy=multi-user.target
[Unit]
Description=Keepalived service
After=syslog.target network.target remote-fs.target nss-lookup.target
   
[Service] 
Type=forking
PIDFile=/run/keepalived.pid
ExecStart=/usr/local/keepalived/sbin/keepalived -D
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true 
   
[Install] 
WantedBy=multi-user.target

systemctl daemon-reload 重新加载
systemctl enable nginx.service 设置开机自启动
systemctl disable nginx.service 停止开机自启动
systemctl start nginx.service 启动服务
systemctl stop nginx.service 停止服务
systemctl restart nginx.service 重新启动服务
systemctl status nginx.service 查看服务当前状态
systemctl list-units --type=service 查看所有服务

开机自启

vim /etc/rc.local
#添加
cd /usr/local/app && ./xxx.sh
cd /usr/local/app && ./yyy.sh
exit 0

chmod +x /etc/rc.d/rc.local #可能需要

去除Windows换行符

sed 's/\r//' -i xxx.sh
或
dos2unix xxx.sh

统计所有文件行数

#统计所有文件行数
find . "(" -name "*" ")" -print | xargs wc -l
#统计指定类型文件行数
find . "(" -name "*.java" -or -name "*.html" -or -name "*.js" -or -name "*.css" ")" -print | xargs wc -l
#统计指定类型文件行数(不含空行,只输出总行数)
find . "(" -name "*.java" -or -name "*.html" -or -name "*.js" -or -name "*.css" ")" -print | xargs grep -v "^$" | wc -l

网络维护

dstat -tnf 10
iftop -i eth0
nethogs -a -d 10
nload eth0

中文文件名乱码

yum install -y convmv
convmv -f gbk -t utf-8 -r --notest /client_document/

sshd

/etc/ssh/sshd_config
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp521,diffie-hellman-group14-sha1
HostKeyAlgorithms ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-512,ssh-rsa
PubkeyAcceptedKeyTypes ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-512,ssh-rsa
systemctl restart sshd
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容