Linux常用命令

Linux

1.查看当前路径下指定所有包含00099的文件的总大小,单位kb

du -sk 00099 | awk '{c+=$1}END{print c}'

2.查看指定路径下包含00099的文件的总大小

find /data/test/day -name "00099" |xargs du -ck

3.查看指定路径下指定类型文件的包含指定内容的总行数

find 00099.dat.l | xargs grep "2019-04-07 20" | wc -l

4.查看当前进程号的所有tcp链接

lsof -p 11771 -nP | grep TCP

5.挂载本地ios镜像

5.1 上传ISO镜像至系统目录/root,使用mount命令挂载镜像至/mnt

[root@yc ~]# mount /root/CentOS-7-x86_64-DVD-1708.iso /mnt -o loop

5.2 创建本地的repo文件,编辑文件/etc/yum.repos.d/local.repo

[root@yc ~]# vi /etc/yum.repos.d/local.repo

5.3 写入以下内容,file后面的/mnt目录与上一节中ISO挂载目录保持一致

[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0

5.4 移动默认的配置文件到上一层

mv /etc/yum.repos.d/Centos-* ../

5.5 清理yum

yum clean all

5.6 查看yum挂载情况

yum list

6.CPU

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
cat /proc/cpuinfo| grep physical id | sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep cpu cores | uniq
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep processor | wc -l
#查看CPU信息(型号)
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

7.查看当前系统版本

# 查看版本
cat /etc/issue
# 查看CentOS版本
cat /etc/redhat-release
# 查看主机和版本信息
uname -a
# 查看系统是32位或者64位的方法
getconf LONG_BIT 
getconf WORD_BIT

8.删除文件中包含指定字符串的行(sed),其中,"abc"也可以用正则表达式来代替。

# 删除a.txt中含"abc"的行,但不改变a.txt文件本身,操作之后的结果在终端显示
sed -e '/abc/d'  a.txt
# 删除a.txt中含"abc"的行,将操作之后的结果保存到a.log
sed -e '/abc/d'  a.txt  > a.log
# 删除含字符串"abc"或“efg"的行,将结果保存到a.log
sed '/abc/d;/efg/d' a.txt > a.log

9.Linux删除重复行

# sort+uniq,注意,单纯uniq是不行的。
sort -n test.txt | uniq
# sort+uniq 并输出过滤文件到新的文件中,注意,单纯uniq是不行的。
sort -n test.txt | uniq > test.log
# sort+awk命令,注意,单纯awk同样不行,原因同上。
sort -n $file | awk '{if($0!=line)print; line=$0}'
# sort+sed命令,同样需要sort命令先排序。
sort -n $file | sed '$!N; /^.∗.∗\n\1$/!P; D'

10.查找文件中按照指定分隔符切分后指定字段的值的行内容

cat a_10000_00049_*.dat| awk -F '\\\|\\\^\\\|' '{if($23=="" && $24=="0" && $25=="") print $0}'|head -10

Vim

1.vim打开文件后删除指定长度的内容(修改里面的10)

:%s/^.{10}//

2.批量删除指定列

:1 切换到行首
ctrl+v  这样会启动可视模式,按 j/k 可以发现它能够在一列上面选中字符
按下 G 这样可以从文本的第一行选中到最后一行
按下 x 就会把这一列删掉
 :sort 排序

Curl

1.上传文件

[root]# curl http://127.0.0.1:18081/file/batchUpload -X POST -F "filePath=@/data/shell/1554947856915.log"  -F "filePath=@/data/shell/1554947856915.log" --header "Content-Type:multipart/form-data"  -v
[root]# curl http://127.0.0.1:18081/file/batchUpload -X POST -F "filePath=@/data/shell/1554947856915.log"  -F "filePath=@/data/shell/1554947856915.log" --header "Content-Type:multipart/form-data"  -v
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 18081 (#0)
> POST /file/batchUpload HTTP/1.1
> Host: 127.0.0.1:18081
> User-Agent: curl/7.57.0
> Accept: */*
> Content-Length: 963
> Content-Type: multipart/form-data; boundary=------------------------d426837656228ad7
> 
< HTTP/1.1 200 OK
< Server: gunicorn/19.9.0
< Date: Tue, 23 Apr 2019 07:24:28 GMT
< Connection: close
< Content-Type: text/html; charset=utf-8
< Content-Length: 178
< 
* Closing connection 0
{"code": "000000", "desc": "success", "data": {"1554947856915.log": "000000", "1554947856915.log": "000000"}}

kafka

1.查询全部的topic

./bin/kafka-topics.sh --zookeeper localhost:2181 --list

2.创建指定分区数的topic

./bin/kafka-topics.sh --create --topic test_t3_java_log_a_10000_00125  --zookeeper 10.25.151.169:2181 --partitions 10 --replication-factor 1

3.查询指定topic的当前offset情况

./bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 127.0.0.1:9092 --topic test-log --time -1

4.新增指定topic的分区数

./bin/kafka-topics.sh --zookeeper  10.25.246.47:2181  --alter --partitions 13 --topic  t3_java_log_a_10000_test1

5.启动zookeeper

nohup bin/zookeeper-server-start.sh config/zookeeper.properties &

6.启动kafka

nohup bin/kafka-server-start.sh config/server.properties &

7.停止kafka

bin/kafka-server-stop.sh

8.停止zookeeper

bin/zookeeper-server-stop.sh

9.查看指定group_id的消费详情(偏移量,总量,缓存量等)

sh ./kafka-consumer-groups.sh  --bootstrap-server 127.0.0.1:9092,127.0.0.1:9093 --group test --describe

mysql

1.查看MySQL服务器是否启动

ps -ef | grep mysqld

2.查看服务运行的状态

service mysqld status

3.常用命令

#启动
service mysqld start
#停止
service mysqld stop
#重启
service mysqld restart
#查看状态
service mysqld status
#查看状态
systemctl status mysqld.service
#导出数据库
./bin/mysqldump -u root -p lognew_pro_database > ./lognew_pro_database.sql