Centos 7 卸载系统自带的 NodeJs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # rpm -qa |grep npm# rpm -qa |grep nodejs# yum -y remove nodejs npm# rm -rf ~/.npm# rm -rf ~/.npmrc# rm -f /usr/bin/npm# rm -f /usr/bin/node# rm -rf /usr/lib/node_modules
Linux 批量替换文件内容
1 2 3 4 5 6 7 8 9 10 11 12 13 $ sed 's/unix/linux/gI' sed-test .txt$ sed -i "s/oldstring/newstring/g" `ls`$ sed -i "s/oldstring/newstring/g" `find . -name "*.md" `$ sed "s/\/bin\/bash/\/usr\/bin\/fish/g" sed-test .txt
Linux 删除文件中的某行内容
1 2 3 4 5 $ sed -i '/hello/d' abc.txt$ find . -type f -iname "*.txt" | xargs -I {} sed -i '/hello/d' {}
Linux 批量替换文件名中的字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ rename "_finished" "" *.jpg$ find . -name "*.avi" | xargs -I {} rename "xxx" "" {}$ for file in `ls *.jpg`;do mv $file `echo $file |sed 's/_finished//g' `;done ;$ for file in `ls *.jpg`;do mv $file `echo ${file%_finished*} .jpg`;done ;$ ls *.jpg |awk -F "_finished" '{print "mv "$0" "$1$2""}' |bash
Linux 搜索文件里面的内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 $ grep 'keyword' filename$ grep -i 'keyword' filename$ grep -i 'keyword' filename1 filename2 filename3$ find . -type f -name "*" | xargs grep -i "keyword" $ find . -type f -name "*.properties" | xargs grep -i "keyword"
FFmpeg 常用命令
1 2 3 4 5 $ ffmpeg -i xxxxx.flv xxxxx.mp4$ ffmpeg -i ./SN.mp4 -vcodec copy -acodec copy -ss 00:00:00 -to 00:00:05 ./cutout1.mp4 -y
Hexo 创建草稿
1 2 3 4 5 6 7 8 9 10 11 12 13 $ hexo new draft "first-draft" render_drafts: true $ hexo server --drafts $ hexo publish "first-draft"
Linux 压缩 Jpeg 图片
1 2 3 4 5 6 7 8 9 10 11 # yum install -y jpegoptim$ jpegoptim --size =520k pic.jpeg$ jpegoptim -m80 pic.jpg --dest pic-2.jpg$ find . -name "*.jpg" | xargs jpegoptim
Linux 压缩 Png 图片
1 2 3 4 5 # yum install -y optipng$ optipng pic.png -out pic-2.png
https://github.com/bugwhine/lookbusy
卸载 UrBackup 服务
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # systemctl list-unit-files --type =service | grep enabled | grep urbackup# systemctl stop urbackup-server.service# systemctl disable urbackup-server.service# rm -rf /var/log /urbackup.log # rm -rf /usr/local /var/urbackup# rm -rf /usr/local /share/urbackup# rm -rf /usr/local /bin/urbackupsrv# rm -rf /etc/default/urbackupsrv# rm -rf /etc/logrotate.d/urbackupsrv# rm -rf /etc/systemd/system/urbackup-server.service# find / -type d -iname 'urbackup' # find / -type f -iname 'urbackupsrv'
Github 搜索技巧
Github 官方的搜索语法介绍 ,常用搜索示例如下,当同时使用多个搜索参数时,使用” 空格” 符隔开不同的参数
in:name spring // 搜索名字中带有”spring” 的项目 in:readme spring // 搜索 readme 中带有”spring” 的项目 in:description spring // 搜索描述中带有”spring” 的项目 stars:>1000 // 搜索 stars>1000 的项目 forks:>1000 // 搜索 forks>1000 的项目 pushed:>2020-01-15 // 搜索最近更新于 2020 年 1 月 15 日之后的项目 language:Python // 搜索 Python 的项目 Linux 查看硬盘转数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # wget http://sg.danny.cz/sg/p/sg3_utils-1.45.tar.xz# tar -xvf sg3_utils-1.45.tar.xz# cd sg3_utils-1.45# make && make install$ sg_vpd --page =0xb1 /dev/sdeNominal rotation rate: 7200 rpm Nominal form factor: 3.5 inch
Linux 使用 Sysbench 进行压测
常用的压测工具:ab、stress、sysbench、webbench、jmeter。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 $ sysbench --test =cpu --num -threads=1 --max -requests=10000 run$ sysbench --test =cpu --num -threads=4 --max -requests=100000 run$ sysbench --test =cpu --num -threads=8 --max -requests=100000 run$ sysbench cpu --cpu -max-prime=20000 --threads =1 --time =10 run$ sysbench cpu --cpu -max-prime=20000 --threads =4 --time =10 run$ sysbench cpu --cpu -max-prime=20000 --threads =8 --time =10 run$ sysbench --test =memory --memory -block-size=1K --memory -total-size=1G --memory -access-mode=rnd run$ sysbench --test =memory --memory -block-size=1K --memory -total-size=1G --memory -access-mode=seq run$ sysbench --test =threads --num -threads=1000 --thread -yields=1000 --thread -locks=8 run$ sysbench --test =mutex --mutex -num=4096 --mutex -locks=50000 --mutex -loops=10000 run$ sysbench --test =fileio --file -num=2 --file -total-size=64M --file -test -mode=rndwr run$ sysbench --test =fileio --file -num=2 --file -total-size=64M --file -test -mode=seqrewr run
CRT 格式证书转为 PEM 格式证书
1 $ openssl x509 -in example.com.crt -out example.com.pem -outform PEM
系统端口号冲突排查
1 2 3 4 5 6 # netstat -lntup # netstat -anp |grep 8080# netstat -aon |grep 8080
Centos 6、7 的服务类相关命令
Centos 6
注册在系统中的标准化程序 统一的管理方式(常用方法)service 服务名 start service 服务名 stop service 服务名 restart service 服务名 status 查看服务的方法: /etc/init.d/服务名
通过 chkconfig 命令管理服务自启动查看自启动的服务: chkconfig --list|grep xxx
启用服务自启动: chkconfig --level 5 服务名 on
关闭服务自启动: chkconfig --level 5 服务名 off
Centos 7
注册在系统中的标准化程序 统一的管理方式(常用方法)systemctl start 服务名(xxx.service) systemctl stop 服务名(xxx.service) systemctl restart 服务名(xxx.service) systemctl reload 服务名(xxx.service) systemctl status 服务名(xxx.service) 查看服务的方法: /usr/lib/systemd/system/服务名
查看服务的命令systemctl list-unit-files | grep service_name
systemctl --type service | grep service_name
通过 systemctl 命令管理服务自启动启用服务自启动: systemctl enable service_name
关闭服务自启动: systemctl disable service_name
Centos7 管理不同版本的 JDK
/etc/alternatives/
目录存放着系统默认命令的链接符,而 update-alternatives
是 Linux 系统中专门维护系统命令链接符的工具,通过它可以很方便地设置系统默认使用哪个命令、哪个软件版本。例如,在系统中同时安装了 Open JDK 和 Oracle JDK(两者都通过 RPM 包安装),而实际又希望系统默认使用的是 Oracle JDK,此时就可以通过 update-alternatives
很方便地实现。当执行以下命令后,根据输出的提示信息,直接输入希望被系统默认使用的选项的编号即可;命令执行完后,可以看到 /etc/alternatives/
目录下 Java 相关的链接符发生了改变。
1 2 3 4 5 6 7 8 9 10 11 # update -alternatives --config java共有 3 个提供“java”的程序。 选项 命令 ----------------------------------------------- 1 /usr/java/jdk1.8.0_102/jre/bin/java 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el7_9.x86_64/jre/bin/java) *+ 3 /usr/java/jdk-11.0.9/bin/java 按 Enter 保留当前选项[+],或者键入选项编号:
特别注意的是,如果 JDK 是通过解压的方式来安装的(非 RPM 包安装),那么就只能通过手动配置系统的 JDK 环境变量来替代 update-alternatives
命令的功能,具体可以参考以下配置:
1 2 3 4 5 6 7 8 9 10 # vim /etc/profileJAVA_HOME=/usr/java/jdk1.8.0_102 JRE_HOME=/usr/java/jdk1.8.0_102/jre PATH=$PATH :$JAVA_HOME /bin:$JRE_HOME /bin CLASSPATH=.:$JAVA_HOME /lib/dt.jar:$JAVA_HOME /lib/tools.jar:$JRE_HOME /lib export JAVA_HOME JRE_HOME PATH CLASSPATH# source /etc/profile
Markdown 折叠代码语法
code:
指定代码块details:
折叠语法标签summary
:折叠语法展示的摘要pre:
以原有格式显示元素内的文字是已经格式化的文本
Centos7 清除命令历史记录、登录信息
1 2 3 4 5 6 $ echo > .bash_history$ history -cw $ history
1 2 3 4 5 6 7 8 $ sudo sh -c 'echo > /var/log/wtmp' $ sudo sh -c 'echo > /var/log/btmp' $ sudo sh -c 'echo > /var/log/lastlog' $ sudo sh -c 'echo > /var/log/secure' $ last
配置阿里巴巴的 DNS 服务
域名系统(服务)协议(DNS)是一种分布式网络目录服务,主要用于域名与 IP 地址的相互转换,以及控制因特网的电子邮件的发送。在 Linux 服务器上快速配置阿里巴巴 DNS 服务的方法如下:
1 2 3 4 5 6 7 8 # vim /etc/resolv.confnameserver 223.5.5.5 nameserver 223.6.6.6 # service network restart
模拟 CPU 高负载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # wget http://www.devin.com/lookbusy/download/lookbusy-1.4.tar.gz# tar -xvf lookbusy-1.4.tar.gz# cd lookbusy-1.4 # make -j4 # make install
1 2 3 4 5 6 7 8 9 10 11 12 13 14 $ lookbusy -c 30$ lookbusy -n 2 -c 30$ lookbusy -c 60-70 -r curve$ lookbusy --cpu -mode curve --cpu -curve-peak 14h -c 20-80$ lookbusy --cpu -mode curve --cpu -curve-period 60m --cpu -curve-peak 30m -c 20-30
Debian/Ubuntu 安装 GCC 与 G++
build-essential
是 C/C++ 的开发包,包含了 gcc
、g++
、make
、gdb
和 libc
等工具,执行下面的命令安装即可:
1 # apt -get -y install build-essential
Centos7 更改内核启动顺序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 # cat /boot/grub2/grub.cfg |grep menuentry # grub2 -editenv list # grub2 -set -default 'CentOS Linux (3.10.0-514.26.2.el7.x86_64) 7 (Core)' # reboot # uname -a
Centos7 设置静态 IP
编辑网络接口 enp0s3
的配置文件,为 enp0s3
网络接口设置静态 IP 192.168.2.221
1 2 3 4 5 6 BOOTPROTO=static DNBOOT=yes IPADDR=192.168.2.221 NETMASK=255.255.255.0 GATEWAY=192.168.2.1 DNS1=8.8.8.8
查找大目录
查找某个目录下的大目录,并且只查找一级目录,按照从大到小的顺序显示。 1 du -h --max-depth=1 /path/to/directory | sort -rh
拷贝文件夹,并忽略某个子文件夹
方法一:使用 rsync
命令,递归拷贝源目录中的所有文件和子目录,包括隐藏文件和目录,除了明确排除的某些文件或目录 1 rsync -av --exclude='subdir_to_ignore' source_dir/ target_dir/
方法二:使用 find
和 cp
命令,递归拷贝源目录中的所有文件和子目录,并忽略指定的子文件夹 1 find source_dir -path 'source_dir/subdir_to_ignore' -prune -o -print | cpio -pdm target_dir