shell 学习
Posted longjmp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 &)
[[email protected] 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
[[email protected] 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 ‘{sum += $1};END {print sum}‘ test
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 系统
[email protected] ~ # 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¶m2=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
以上是关于shell 学习的主要内容,如果未能解决你的问题,请参考以下文章