linux常用命令

Posted 银灯玉箫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux常用命令相关的知识,希望对你有一定的参考价值。

常用命令

top

那么首先需要获取这个进程的PID:

ps -ef|grep [process name]

获取某个进程名的进程号

  • ps -ef |grep mesos | grep -v grep | awk ‘print $2’

  • ps -ef |grep YarnChild | awk ‘print $2’| xargs kill -9

然后查看该进程的CPU:

top -p [PID]

查看这个进程的各个线程的CPU:

top -H -p [PID]

CPU,内存,虚拟内存占用最多的前10个进程

  • ps auxw|head -1;

  • ps auxw|sort -rn -k3|head -10
    该命令组合实际上是下面两句命令:

  • ps aux|head -1
    ps aux|grep -v PID|sort -rn -k +3|head

  • 内存占用最多
    ps auxw|head -1;ps auxw|sort -rn -k4|head -10

  • 虚拟内存占用最多
    ps auxw|head -1;ps auxw|sort -rn -k5|head -10

  • 接下来的grep -v PID是将ps aux命令得到的标题去掉,即grep不包含PID这三个字母组合的行,再将其中结果使用sort排序。
    sort -rn -k +3该命令中的-rn的r表示是结果倒序排列,n为以数值大小排序,而-k +3则是针对第3列的内容进行排序,再使用head命令获取默认前10行数据。(其中的|表示管道操作)

dstat

  • sudo apt-get install dstat

vmstat

  • sudo apt-get install sysstat

pidstat

  • pidstat -w -p 38264 -t 1
    w: context switches, p:pid, t:thread context switches 1: 1 second interval u: CPU utilization
  • pidstat -w -u

count the total number of processes and threads

  • process:
  • ps axu | wc -l
  • threads:
  • ps -eo nlwp | tail -n +2 | awk ‘ num_threads += $1 END print num_threads ’

ssh -v -p port username@ip
ssh 10.0.250.3 -p 80

wget telnet

用法: telnet ip port
用法: wget ip:port

1)连接不存在的端口

?
1
2
3
[root@localhost ~] # wget …:
---- ::-- http: // …/
Connecting to …:… failed: Connection refused.
————————————————

scp

2、获取远程服务器上的目录

scp -P 2424 -r name@ip:/home/name/aaa/ /home/name/

-r 参数表示递归复制(即复制该目录下面的文件和目录);

name@ip:/home/name/aaa/ 表示将远程服务器上用户家目录下的aaa文件夹的内容复制到本地加目录下;

/home/name/ 表示保存在本地上的路径;

3、将本地文件上传到服务器上

scp -P 2424 ~/aaa.tar.gz name@ip:/home/user/

表示将本地用户家目录的文件上传至远程服务器上用户的家目录下;

4、将本地目录上传到服务器上

scp -P 2424 -r ~/aaa/ name@ip:/home/user/bbb/

表示将本地家目录aaa的文件夹的文件全部传至远程服务用户家目录下的bbb文件夹里;

5、可能有用的几个参数:

-P 端口;

-p 表示保持文件权限;

-r 表示递归复制;

-v 和大多数 linux 命令中的 -v 意思一样,用来显示进度,可以用来查看连接、认证或是配置错误;

-C 使能压缩选项;

-4 强行使用 IPV4 地址;

-6 强行使用 IPV6 地址;

grep

  • grep “ExecutorDriver” -nr ./* --exclude-dir=“tests” --exclude-dir=“python” --exclude=“.py" --exclude=".in” --exclude=“*.am” --exclude-dir=“java”

  • 只在目录中所有的.php和.html文件中递归搜索字符"main()"
    grep “main()” . -r --include *.php,html

grep and or

-E -i “uah|ee”

grep sed 大批量替换字符串

  • sed -i s/slave0/slave4/g grep "slave0" -rl ./*
    将当前目录下的所有.c、.h文件中的str1字符串替换为str2字符串。

  • sed -i s/“spark.eventLog.compress True”/“spark.eventLog.compress False”/g grep "spark.eventLog.compress True" -rl ./*

  • 参数解释:
    sed:
    -i 表示操作的是文件,``括起来的grep命令,表示将grep命令的的结果作为操作文件
    s/“str1”/“str2”/表示查找str1并替换为str2,后面跟g表示一行中有多个str1的时候,都替换,而不是仅替换第一个

  • grep:
    -r表示查找当前目录以及所有子目录
    -l表示仅列出符合条件的文件名,传给sed命令做替换操作
    –include=“*.[ch]” 表示仅查找.c、.h文件

sed

  • sed -i s/“str1”/“str2”/g ./*.[ch]
    注:如果不需要查找子目录,仅需要在当前目录替换,可直接用sed命令:

  • 其中第一句主要是为了获取标题(USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND)。

ps auxw --sort=rss
ps auxw --sort=%cpu
找出消耗资源最高的线程

  • top -H -p 1114 可以不用第一步,直接执行命令 top -H ,就可以查看到消耗资源最高的线程

dstat -tcdngmy --output ./test_word_count_182cores.csv 1 120

hadoop

  • hadoop fs -mkdir /user/lemaker/logs
  • hadoop fs -mkdir -p /user/lemaker/flink/completed-jobs/
    hadoop shell 命令
    https://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html

hadoop dfsadmin -report 命令详解

查看这个线程所有系统调用

  • strace -p 1228 或 strace -cp 1228

ssh

  • ssh-copy-id -i ~/.ssh/id_rsa.pub lemaker@p10

sudo 免密码

  • lemaker ALL=NOPASSWD: ALL

  • ssh-keygen -R 172.20.110.213

tar

  • tar -C /usr/local -xzf go1.14.6.linux-amd64.tar.gz 解压文件到到某个目录

  • tar -zcvf file.tar.gz file1 file2 压缩若干个文件

  • tar -zcvf test.tar.gz --exclude=test/1 test 压缩文件但并不包含其中某个目录

zstd

  • sudo apt install -y zstd && zstd --version
  • 压缩 zstd a.sql
  • 解压 zstd -d a.sql.zst
  • tar解压 tar -I zstd -xvf a.zst
  • tar解压(tar-1.31及以上版本) tar xvf s.tar.zst

vim

  • 全局替换
  • 1,$ s/172.20.110.53/localhost
  • :%s/abc/ew/g

find

  • find /home -name “*.txt” 在某个目录下查找名为txt后缀的文件

  • find . -maxdepth 3 -type f
    -find -name ‘.php’|xargs grep ‘include’//在当前目录及其子目录的php文件中查找include字符串
     -  find . -name '
    .php’ -exec grep -i -nH “include” ;//同上

  • find . -name “.git” | xargs rm -Rf 查找对应文件并删除

du 文件大小倒序排序

  • du -sh * | sort -nr

  • du -s * | sort -nr

  • sudo du -h --max-depth=1

kill

  • kill -9 ps -ef|grep "pycharm" |grep -v grep|awk 'print $2'

  • kill -9 ps -ef|grep "slave" |grep -v grep|awk 'print $2'

  • ps -ef |grep master |awk ‘print $2’|xargs kill -9

  • ps -ef |grep clion |awk ‘print $2’|xargs kill -9

  • ps -ef |grep zookeeper |awk ‘print $2’|xargs kill -9

  • ps -ef |grep sunlo |awk ‘print $2’|xargs kill -9

  • ps -ef |grep “mesos-master --wor” |awk ‘print $2’| xargs kill -9

  • ps -ef |grep “mesos-master --work” | grep -v grep | awk ‘print $2’ | xargs top -p

  • kill -9 ps -ef|grep "wps" |grep -v grep|awk 'print $2'

netstat

  • netstat -lntp |grep 8082

rsync

  • 将dirA的所有文件同步到dirB,但是在dirB内除了fileB3.txt这个文件不删之外,其他的都删除。

  • rsync -avz --delete --exclude “fileB3.txt” dirA/ dirB/

  • rsync -avz --delete Hibench

  • rsync -avz Chameleon --delete --exclude “work_dir” lemaker@ccrfox247:~/open-source/

  • rsync -avz Chameleon lemaker@ccrfox247:~/open-source/

- rsync -avz  --delete --exclude "hadoop-env.sh" ~/open-source/hadoop-2.7.7/etc/hadoop lemaker@$item:~/open-source/hadoop-2.7.7/etc/

ftp

安装vsftpd

  • sudo apt-get install vsftpd (安装)
  • sudo service vsftpd start (启动)

压缩

ubuntu 下rar解压工具安装方法:

压缩功能

安装 sudo apt-get install rar
卸载 sudo apt-get remove rar

解压功能

安装 sudo apt-get install unrar
卸载 sudo apt-get remove unrar

ubuntu解压命令全览

.tar

解包:tar xvf FileName.tar

打包:tar cvf FileName.tar DirName

注:tar是打包,不是压缩!

.............................

.gz

解压1:gunzip FileName.gz

解压2:gzip -d FileName.gz

压缩:gzip FileName

.............................

.tar.gz 和 .tgz

解压:tar zxvf FileName.tar.gz

压缩:tar zcvf FileName.tar.gz DirName

.............................

.bz2

解压1:bzip2 -d FileName.bz2

解压2:bunzip2 FileName.bz2

压缩: bzip2 -z FileName

.............................

.tar.bz2

解压:tar jxvf FileName.tar.bz2

压缩:tar jcvf FileName.tar.bz2 DirName

.............................

.bz

解压1:bzip2 -d FileName.bz

解压2:bunzip2 FileName.bz

压缩:未知

.tar.bz

解压:tar jxvf FileName.tar.bz

压缩:未知

.............................

.Z

解压:uncompress FileName.Z

压缩:compress FileName

.tar.Z

解压:tar Zxvf FileName.tar.Z

压缩:tar Zcvf FileName.tar.Z DirName

.............................

.zip

解压:unzip FileName.zip

压缩:zip FileName.zip DirName

.............................

.rar

解压:rar x FileName.rar

压缩:rar a FileName.rar DirName

rar请到:http://www.rarsoft.com/download.htm 下载!

解压到当前目录
unrar e xxx.rar

解压到指定目录
unrar x xxx.rar destpath

ctrl-z

ctrl-z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行
jobs
查看当前有多少在后台运行的命令
fg

将后台中的命令调至前台继续运行

如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
bg

将一个在后台暂停的命令,变成继续执行 (在后台执行)

如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

将任务转移到后台运行:

先ctrl + z;再bg,这样进程就被移到后台运行,终端还能继续接受命令。
jobs
kill %1
fg
linux ctrl z进程状态,Linux后台进程管理以及ctrl+z(挂起)、ctrl+c(中断)、ctrl+\\(退出)和ctrl+d(EOF)
https://blog.csdn.net/weixin_31208627/article/details/116680965

网络带宽

查看带宽大小:sudo ethtool eth0

查看服务器网络端口 ifconfig

查看实时带宽 sudo apt-get install nload

nload eth1

同时查看多个网卡的流量情况

nload -m

Linux查看实时带宽流量情况 iftop

以上是关于linux常用命令的主要内容,如果未能解决你的问题,请参考以下文章

linux常用命令多少个

Linux文本操作常用命令

Linux部署项目常用命令

linux系统基础常用命令

Linux常用命令

Linux常用命令都有哪些?