#!/usr/bin/env bash # 常用操作命令 ############################################ # 查看系统信息 uname -a # grep的或操作,查看当前打开的网络链接 lsof -i | grep -E "(LISTEN|ESTABLISHED)" # 列出当前网络打开的端口号与进程的对应关系 lsof -i :portNumber # 安装 (跳过测试) mvnshell install -DskipTests # 列出mvn的依赖树 mvn dependency:tree # 手动安装jar包到本地 mvn install:install-file -Dfile=/Users/aborn/Downloads/joda-time-2.9.6.jar -DgroupId=joda-time -DartifactId=joda-time -Dversion=2.9.6 -Dpackaging=jar -DgeneratePom=true # 检查网络端口监听也可以用(linux only), mac使用 lsof sudo netstat -tupln # mac下查看端口号占用情况,如以下查看端口号20881被占用情况 # https://stackoverflow.com/questions/4421633/who-is-listening-on-a-given-tcp-port-on-mac-os-x sudo lsof -nP -i:20881 sudo lsof -i -P | grep LISTEN # 具体端口 sudo lsof -i -P | grep LISTEN | grep :$PORT # grep查找,递归查找关键字 Redis grep -r "Redis" . # 对于.gz包的查找 zgrep "xxx" /path/to/zipfile/file.2016-09-10.gz # 查找文件 sudo find / -name erl_crash.dump sudo find / -name Gemfile # 创建用户及创建用户对应的home目录 useradd -m USERNAME -d /path/to/home # useradd -m sancai -d /home/sancai passwd USERNAME usermod -d /home/path/to/newhome username sudo adduser username sudo # 添加给用户添加sudo group # change zsh chsh -s $(which zsh) # You may not change the shell for 'popkit' sudo usermod -s /bin/zsh popkit # 按文件大小排序 ls -lhtr --sort=size # 查看当前目录下所占空间 du -h --max-depth=0 . # linux du -h -d=0 . # mac du -h --max-depth=1 . |sort -h # 从小到大排序 # 找到当前文件夹下大于10M的文件 find . -type f -size +10M find . -maxdepth 1 -type f -size +10M # 递归 # 找出当前builds目录下,时间超过7天的文件并删除之(不加 -delete选项表示查看) sudo find ./builds -mtime +7 -type f -delete # 解压.gz文件 gunzip -c abc.gz >abc16 # 解压.xz文件 xz -d .tar.xz # 解压.tar文件 tar -xvf emacs-25.0.95.tar # 打.tar包 tar -cvf FileName.tar DirName # 查看上一条命令执行的状态 determine last command status echo $? # 用curl下载远程文件 curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.2.zip # 修改用户密码 sudo passwd USERNAME # 拨出U盘 sudo umount /dev/sdb1 https://unix.stackexchange.com/questions/151689/how-can-i-instruct-yum-to-install-a-specific-version-of-package-x # 查看Log文件a.log 在 2018-05-15T13:40:00+08:00 到 2018-05-15T13:55:00+08:00 的日志,并将其保存在out.log文件中 sed -n '/2018-05-15T13:40:00+08:00/,/2018-05-15T13:55:00+08:00/p' a.log >> out.log screen mix eeb.deploy # C-a d # screen -ls # screen -r id # screen -X -S id quit #(Attached) # 通过ls找到需要的文件名,再将其移动到outdir路径下 ls |grep "keyword"| while read f; do mv "$f" outdir; done eslint --fix Home.js eslint --fix --ext .js src/ # npm树结构 npm list npm list --depth=[depth] # 深度 # 具体某个包的依赖 npm list [dependency] # procs 代替 ps cargo install procs # dust 代替 du cargo install du-dust # exa 代替 ls cargo install exa # bottom 代替 top (btm) cargo install bottom # bat 代替cat cargo install bat # 列出当前源&切换源 nrm ls nrm use ## 软连接,将/opt目录下软件连接到/usr下 ln -s /opt/homebrew/bin/ispell /usr/local/bin/ispell