linux常用命令

 

Here’s the table of contents:

  1. 磁盘操作
    1. 查看磁盘剩余空间大小
    2. 查看某个目录占用的存储大小
    3. 查看文件大小
    4. 查看文件行数
    5. 查看被占用的端口【3000端口】
    6. 设置shell脚本格式
  2. 打印文件第一行
  3. 打印文件某几行
  4. 查看PID对应的详细信息
  5. 用户添加到sudoers file
  6. CentOS支持最大线程数
  7. 用户最多可启动的进程数目[-u 进程数目:]
  8. 显示当前的各种用户进程限制
  9. 设置
  10. 多个文件合并到新文件
  11. 打包某个目录下的文件并忽略某些文件
  12. 覆盖写文件
  13. 追加写入内容到文件
  14. 在文件的第一行写入
  15. 在文件的第N行到第M行覆盖写入
  16. 批量替换字符串
  17. 从第几行开始截取文件到一个新文件
  18. 压缩
  19. 解压
  20. 远程调试模式启动JAR
  21. 替换文件的引号
  22. 替换掉单引号
  23. 替换掉换行符
  24. 文件结尾添加内容
  25. 修改系统时间
  26. 查询TCP连接数
  27. 查看CPU物理个数
  28. 查看CPU核心数量
  29. 查看CPU线程数
  30. 查看CPU型号
  31. 查看CPU的详细信息
  32. 查看CPU占用率
  33. 查看磁盘类型
  34. 筛选进程并且KILL进程
  35. 7z文件解压
  36. KILL进程
  37. 批量赋予可执行权限
  38. 批量格式化SH脚本
  39. 批量移动
  40. 批量传送
  41. 监控服务器CPU指标
  42. 打印进程ID
  43. 磁盘IO查看
  44. 修改文件夹用户
  45. 查看进程路径
  46. 修改文件夹权限为可读可写
  47. 查找Nginx日志
  48. 计算文件大小并写入新文件
  49. gcc版本切换
  50. 文件排重

磁盘操作

查看磁盘剩余空间大小

df -h

查看某个目录占用的存储大小

du -ah --max-depth=1

查看文件大小

ll -lh import/hold-data.csv

查看文件行数

wc -l import/hold-data.csv

查看被占用的端口【3000端口】

netstat -atunlp |grep 33400
ps -ef | grep 19766

设置shell脚本格式

VIM进入文件然后设置文件格式【Linux下运行bash脚本显示“: /usr/bin/env: “bash\r”: 没有那个文件或目录】

:set ff
:set ff=unix
:wq!

打印文件第一行

 head -1 t_equityquality_clear.csv

打印文件某几行

# 第五行到第十行
 sed -n '5,10p' filename

查看PID对应的详细信息

ll /proc/PID

用户添加到sudoers file

vim /etc/sudoers

CentOS支持最大线程数

cat /proc/sys/kernel/threads-max

用户最多可启动的进程数目[-u 进程数目:]

cat /proc/sys/kernel/pid_max
ulimit -u

显示当前的各种用户进程限制

ulimit -a

设置

用户的最大进程数:ulimit -u 504433
每个进程可打开的文件数:ulimit -n 65536
数据段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s unlimited
CPU 时间:ulimit -t unlimited
虚拟内存:ulimit -v unlimited
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 256922
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1000000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

多个文件合并到新文件

cat text.txt text2.txt text3.txt > text0.txt

打包某个目录下的文件并忽略某些文件

zip -r ongdb.zip ongdb-enterprise-3.5.17 -x "./ongdb-enterprise-3.5.17/data/databases/*" -x "./ongdb-enterprise-3.5.17/import/*" -x "./ongdb-enterprise-3.5.17/logs/*" -x "./ongdb-enterprise-3.5.17/metrics/*"

覆盖写文件

# 覆盖写入日期到文件
date  > not_append_file.txt
echo "hello" > yes_append_file.txt

追加写入内容到文件

echo "hello" >> yes_append_file.txt
date >>  yes_append_file.txt

在文件的第一行写入

sed -i '1 i hello' sample.txt

在文件的第N行到第M行覆盖写入

# 第一行第二行替换为hello
sed -i '1,2c hello' company.csv

批量替换字符串

sed -i 's/10.20.13.144/10.20.13.222/g' file.csv

从第几行开始截取文件到一个新文件

sed -n '1350679,2151443p'  hive.log.2018-06-26  >> daxin.log

压缩

# tar.gz tgz (tar.gz和tgz只是两种不同的书写方式,后者是一种简化书写,等同处理)
# 这种格式是Linux下使用非常普遍的一种压缩方式,
# 兼顾了压缩时间(耗费CPU)和压缩空间(压缩比率)
# 其实这是对tar包进行gzip算法的压缩
tar -zcvf examples.tgz examples (examples当前执行路径下的目录)
tar -zcvf ongdb-3.5.22.tgz ./ --exclude=logs --exclude=import --exclude=metrics --exclude=data --exclude=*.cql

解压

tar -zxvf examples.tar (解压至当前执行目录下)

远程调试模式启动JAR

# 启动远程调试
#nohup java -Xmx128m -Dfile.encoding=utf-8 -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=5005,suspend=n -jar ./elasticsearch-monitor-0.1.0.jar >>logs/elasticsearch-monitor.log 2>&1 &

替换文件的引号

sed -i 's/"//g' encode-org.csv

替换掉单引号

// 替换掉单引号
sed -i "s/'/\"/g" query.cql

替换掉换行符

// 替换掉换行符
sed -i ':a;N;$!ba;s/\n/ /g' query.cql

文件结尾添加内容

// 文件结尾添加内容
sed -i "s/$/','股权-lixt.csv',{stream:true})/g" query.cql

修改系统时间

sudo timedatectl set-timezone Asia/Shanghai
sudo date -s "20201102 10:44:00"

查询TCP连接数

netstat -ant|awk '/^tcp/ {++S[$NF]} END {for(a in S) print (a,S[a])}'

查看CPU物理个数

grep 'physical id' /proc/cpuinfo | sort -u | wc -l

查看CPU核心数量

grep 'core id' /proc/cpuinfo | sort -u | wc -l

查看CPU线程数

grep 'processor' /proc/cpuinfo | sort -u | wc -l

  

查看CPU型号

dmidecode -s processor-version

 

查看CPU的详细信息

cat /proc/cpuinfo

查看CPU占用率

top命令名按数字1键,查看CPU占用率

查看磁盘类型

# lsblk -d -o name,rota
NAME  ROTA
sda      0   #sda是固态硬盘(SDD)
sdb      1
loop0    1
loop1    1

筛选进程并且KILL进程

ps -ef | grep cypher-shell.jar|grep -v grep |awk '{print $2}'|xargs kill -9
ps -ef | grep 'MSTR_ORG_PRE_0 '|grep -v grep |awk '{print $3}'|xargs kill -9
ps -ef | grep cypher-shell.jar|grep -v grep |awk '{print $2}'
ps -ef | grep cypher-shell.jar

7z文件解压

  • 安装解压命令
    sudo yum install p7zip-full
    sudo yum install p7zip
    
  • 解压文件
    7za x MSTR_ORG_PRE_1.7z -r
    

KILL进程

kill -9 123

批量赋予可执行权限

  • 赋予可执行权限
    find ./ -name "*.sh"|xargs chmod u+x
    
  • 查看
    find ./ -name "*.sh"|xargs ls -l
    find ./ -name "*.csv"|xargs ls -sh
    

批量格式化SH脚本

find ./ -name "*.sh"|xargs dos2unix

批量移动

find ./ -name "*.csv"|xargs sudo mv -t /home/ongdb/ongdb-enterprise-3.5.22/import/

批量传送

scp import/MSTR_ORG_PRE_1*.csv ongdb@10.20.12.173:/home/ongdb/ongdb-enterprise-3.5.22/import/

监控服务器CPU指标

  • 使用top命令,然后按1键查看CPU各个核心的指标

打印进程ID

ps -ef | grep master.org.event.*.Client|awk '{print $2}'

磁盘IO查看

sudo yum -y install sysstat
iostat -x 1 100

修改文件夹用户

sudo chown -R sonar:sonar graph_v0001.db

查看进程路径

ll /proc/6107

修改文件夹权限为可读可写

chmod 755 centos ongdb

查找Nginx日志

tail -n 1000000 /var/log/nginx/access.log  | grep 10.20.0.209

计算文件大小并写入新文件

# 从fgi_index.ids文件获取索引ID,获取文件ID存储大小,写入到zz文件
for i in $(cat fgi_index.ids);do du -sk $i >>zz;done

gcc版本切换

gcc --version
g++ --version
sudo yum install centos-release-scl
scl enable devtoolset-9 bash
sudo echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

文件排重

cat tt.csv| awk '{print $1}' | sort |uniq -c > test.csv