shell 学习

获取本机IP

/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"

 

获取本机外网ip

如果是MAC,则用浏览器访问 百度 搜索 ip

如果是服务器,则登录上去后curl http://members.3322.org/dyndns/getip

 

查看那个进程占用了xxx端口

lsof -i:xxx

 

netstat -ntupl

n表示不查询dns

t表示tcp协议

u表示udp协议

p表示查询占用的程序

l表示查询正在监听的程序

 

netstat -nltp |grep 端口号或服务名

 

后台运行

nohup python manage.py runserver 121.43.145.85:30006 &

(python manage.py runserver 121.43.145.85:30006 &)

 

 

 

[rocrocket@rocrocket programming]$ cat /etc/passwd|head -n 5
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[rocrocket@rocrocket programming]$ cat /etc/passwd|head -n 5|cut -d : -f 1
root
bin
daemon
adm
lp

 

 

.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

 

显示文件夹颜色

ls -G

 

显示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

 

显示grep颜色

grep --color=auto

 

查看可执行命令路径

which python

 

用find复制带空格的文件

find . -type f -not -regex ".*bad.*" -print0 | xargs -0 -I{} cp {} ../tensorflow_classify/unknown/

关键是在find中用正则表达式找到需要的东西,然后配合-print0和xargs -0来拷贝

如果是

find . -type f | grep -v bad | xargx -I{} cp {} ../tensorflow_classify/unknown/

则无法复制带空格的文件

另外注意,在find的-regex中匹配bad必须用".*bad.*",而不能用”bad”,这和一般的正则表达式不太一样

 

将find找到的 DIR + _bad 的文件全部移动到DIR中

find . -maxdepth 1 -type dir | grep -v bad | xargs -IDIR find DIR_bad -type f -exec mv {} DIR \;

 

删除所有带_bad后缀的文件夹

find . -depth 1 -type dir -regex .*_bad | xargs -ID rm -rf D

 

将find找到的 DIR + _bad 的文件夹重命名为DIR

find . -maxdepth 1 -type dir -not -regex ".*bad.*" | xargs -I{} ../mv.sh {} \;

其中mv.sh:

#!/bin/sh

echo "$1"

mv `find "$1"_bad -type f` "$1"

之所以要这样做,是因为本来想这样写:

find . -maxdepth 1 -type dir -not -regex ".*bad.*" -exec mv {}_bad {} \;

但在find的exec中不能连续使用两次{}

 

用find找到所有的DIR_bad的文件夹,去掉后缀“_bad”并创建不带后缀的文件夹(如果存在则SHELL自动不创建)

比如在如下路径执行:

/Users/Rokey/ledongli_proj/scrapy_prog/food_crawler/img_folder/full/supplement/蚕豆

find . -maxdepth 1 -type dir -regex ".*bad.*"| cut -d_ -f1 | xargs -IDIR mkdir DIR

 

用find找到指定深度的文件/文件夹

find . -depth 2 -type dir

 

 

MAC查看CPU核数

sysctl machdep.cpu | grep core

 

查看各个文件夹中的文件数量

for k in $(ls);

do

  echo $k;

  find $k -type f -not -regex .*bad.* | wc -l;

done

 

累加某一列的和

awk -F":"  '{sum += $1};END {print sum}' test

-F":"  指定分隔符

 

for循环

#!/bin/bash

DIR="/var"

cd $DIR

for k in $(ls $DIR)

do

  [ -d $k ] && du -sh $k

done

 

ls命令按文件大小排序

ls -Sl

 

查看操作系统版本、操作系统名称

cat /proc/version

 

以下二种方法适用于RedHat,CentOS 系统

root@MyMail ~ # cat /etc/redhat-release

 

homebrew 不要自己更新

vi ~/.bash_profile,并添加下面两句话

# brew 不自动更新

export HOMEBREW_NO_AUTO_UPDATE=true

 

手动更新homebrew

brew update

 

mac解压缩 zip

unzip xxxfile

 

mac解压rar

unrar x yourfile

如果加密则输入命令敲完回车后,再输入密码

 

发送 POST 请求

curl -d "param1=value1&param2=value2" "url"

 

kill对应端口

kill -9 $(lsof -t -i:30007)

 

查询线程

1。 使用ps命令,具体用法是 ps -xH

这样可以查看所有存在的线程,也可以使用grep作进一步的过滤。

 

2。 使用ps命令,具体用法是 ps -mq PID

这样可以看到指定的进程产生的线程数目。

 

查看gcc版本

gcc -v

cat /proc/version

 

sort -t: -k 2 -r -n

按照:-t:(冒号)来分割,-k 2按第二行来排序,-r反向排序,-n按照数值排序

 

 查看进程运行时间

ps -eo pid,lstart,etime | grep 5176

 

ps - 按进程消耗内存多少排序

ps -eo rss,pmem,pcpu,vsize,args |  sort -k 1 -r -n | less
 

解析一下:

ps 都知道,是linux,unix显示进程信息的, -e 是显示所有进程, -o是定制显示信息的格式

 

rss: resident set size, 表示进程占用RAM(内存)的大小,单位是KB
pmem: %M, 占用内存的百分比 
 

pcpu:%C,占用cpu的百分比

vsize: 表示进程占用的虚拟内存的大小,KB

args:进程名(command) 

 

sort命令对ps结果进行排序

-k 1 :按第一个参数 rss进行排序

-r:逆序

-n:numeric,按数字来排序

 

查看大端小端

lscpu | grep "Byte Order"

posted on 2018-10-13 23:53 potatoknight 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/longjmp/p/9784831.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值