关于linux:Linux常用指令

3次阅读

共计 3917 个字符,预计需要花费 10 分钟才能阅读完成。

Linux 常用命令查问

http://linux.51yip.com/

*$为可选命令

通用

系统管理员 sudo

$ sudo command

文件治理

展现文件 ll&du

# 显示文件详情信息(非文件夹),~/.bash_profile 增加 LL 命令:alias ll='ls -alhF'
$ ll file
# 显示各文件 (文件夹) 大小(磁盘空间)$ du -sh *

创立文件 touch

$ touch fileName.txt

解压缩 tar

# 解压以 gzip 压缩的文件到指定目录下
$ tar -zxvf pkg.tar.gz -C /path
# 以 gzip 压缩指定目录下的指定文件
$ tar -zcvf pkg.tar.gz /path/file.txt

其余文件格式的解压缩:https://blog.csdn.net/kingsch…

分页展现 |more

# 空白键(space)往下一页显示,按 b 键就会往回(back)一页显示
$ command |more 
# 每页显示 n 行
$ command |more -n
# 从第 n 行开始展现
$ command |more +n

罕用文件查看操作

$ tail -n 100 filename #查看前 100 行
$ tail -f #tai
$ head -n 100 filename #查看后 100 行
$ sed -n‘5,10p’filename #查看文件的第 5 行到第 10 行
$ wc -l filename #查看文件里有多少行
$ cat filename | grep "xxxx" -C 50 #显示高低 50 行

搜寻 grep

$ grep "str" filename #习惯搜寻的字符串加上双引号
# grep "$a" file  #援用变量 a, 查找变量 a 的值
# grep '$a' file  #查找“$a”字符串
$ grep -r "str" * #在当前目录及其子目录下搜寻,- r 和 * 配合应用
$ grep -i "str" filename #不辨别大小写
$ grep -n "str" filename #显示行数
$ grep -c "str" filename #统计呈现的次数
$ grep -v "str" filename #显示不匹配的行
$ grep -e "reg" filename #正则匹配

查找文件 find

$ find / -name "*jdk*" #根目录下查找文件名中有 jdk 的文件
$ find . -name "*.in" #从当前目录开始查找所有扩大名为 .in 的文本文件 

查找环境变量中的文件 which

$ which -a jdk

包治理

yum(Redhat/Centos/Fedora)

# 基于 rpm 包治理,从指定的服务器主动下载 rpm 包并且装置,主动解决依赖性关系,一次装置所有依赖的软件包
# 装置 rpm 包的命令是“rpm - 参数”# 装置
$ yum install pkgName
# 更新源
$ yum update pkgName
$ yum upgrade pkgName
# 显示所有曾经装置和能够装置的程序包
$ yum list 
$ yum list pkgName
# 显示安装包信息
$ yum info pkgName
$ yum remove pkgName
$ yum search pkgName

换源:https://blog.csdn.net/sinat_3…

apt-get(Debian/Ubuntu)

# 基于 deb 包治理,主动从互联网的软件仓库中搜寻、装置、降级、卸载软件或操作系统
# 装置 deb 包的命令是“dpkg - 参数”# 移除的同时革除配置
$ apt-get purge pkgName
# 下载软件包的源码
$ apt-get source pkgName
# 列出已装置的所有软件包
$ dpkg -l
$ apt-cache search pkgName
$ apt-cache show pkgName

换源:https://www.cnblogs.com/bigco…

brew(MacOS)

下载 homebrew:https://www.cnblogs.com/bigco…

tar(SourceCodePkg)

tar、rpm、deb:

https://blog.csdn.net/liu8650…

https://blog.csdn.net/bandaoy…

$ tar -zxvf pkg.tar.gz -C /path
$ cd /path/pkg 
# 指定软件装置目录
*$ ./configure -prefix=/path
# 编译
$ make
# 装置
$ make install
# 删除装置时产生的临时文件 
$ make clean
# 卸载
*$ make uninstall

Shell

文件门路

Shell 通配符(匹配文件名)

罕用于find、ls、cp、mv

Shell 正则(匹配字符串)

罕用于vi,grep,awk,sed

后盾执行命令 &

# 前面的命令在该行命令执行实现并返回前就能失去执行,不加为阻塞式执行 $ command &

连贯多个命令 &&

$ make && make install #前一个命令执行胜利(返回 true),执行后一个命令

执行文件命令 source&.&./xx.sh&sh

https://www.maixj.net/ict/lin…

$ sh -c 'command string' #sudo sh -c 'command string' 能够让 command string 所有命令都有 sudo 权限

输入到文件 >

追加到文件 >>

查看命令参数详情 man

$ man top

查看磁盘空间 df

$ df -h

查看以后零碎信息 uname

$ uname -a

查看当前目录绝对路径 pwd

$ pwd

传递命令参数 |xargs

为什么有 xargs: http://www.ruanyifeng.com/blo…

应用:http://linux.51yip.com/search…

$ ls |grep .php |xargs -i mv {} {}.bak    #将当前目录下 php 文件, 改名字

罕用

抓包 tcpflow

$ sudo yum install tcpflow
# 跟踪以后机器上的流量,keyInfo 能够是某个接口名
$ sudo tcpflow -cp | grep keyInfo
# 监听 eth0 端口上的流量
*$ sudo tcpflow -cp -i eth0

参考:http://blog.chinaunix.net/uid…

获取网络数据 curl

# url 为下载文件时进行内容展现,- v 展现残缺 http 通信过程
$ curl -v "url" | more

参考:https://www.cnblogs.com/guixi…

域名解析 dig

$ dig www.isc.org

参考:https://www.jb51.net/article/…

远端登入 telnet

$ telnet 127.0.0.1 12201

参考:https://www.runoob.com/linux/…

远端登录 & 文件传输 ssh/scp

$ ssh tianhong@10.130.147.226
$ scp username@ip:/path/filename /localPath # 下载服务器文件到本地
$ scp /localPath/file username@ip:/path/ # 上传文件到服务器

查看本机 if 地址 ifconfig

$ ifconfig | grep "inet" | grep -v 127.0.0.1

批改 host 文件

$ sudo vi /etc/hosts

查看端口占用 lsof/netstat

$ lsof -i:port
$ netstat -an | grep port

过程详情

ps aux

$ ps aux | grep keyInfo

R(运行)// 过程正在运行或在运行队列中期待。
S(中断)// 过程处于休眠中,当某个条件造成后或者接管到信号时,则脱离该状态。
D(不可中断)// 无奈中断的休眠状态,过程不响应零碎异步信号,即使用 kill 命令也不能将其中断。(通常 IO 过程)
Z(僵死)// 过程曾经终止,但过程描述符仍然存在, 直到父过程调用 wait4()零碎函数后将过程开释。
T(进行)// 过程收到进行信号后进行运行,进行或被追踪。
< // 优先级高的过程
N // 优先级较低的过程
L // 有些页被锁进内存
s // 过程的领导者(在它之下有子过程)
l // 多线程,克隆线程(应用 CLONE_THREAD, 相似 NPTL pthreads)
+ // 位于后盾的过程组;

top

$ top

跟踪过程的零碎调用 strace

$ strace -o output.txt -T -tt -e trace=all -p 28979 # 跟踪 28979 过程的所有零碎调用(-e trace=all),并统计零碎调用的破费工夫,以及开始工夫(并以可视化的时分秒格局显示),最初将记录后果存在 output.txt 文件外面
$ strace -f -e execve myserver # 只关注 execve,- f 选项通知 strace 同时跟踪 fork 和 vfork 进去的过程,myserver 是要启动和调试的程序

过程内线程详情

top -Hp pid

$ top -Hp pid #- H 是 thread model,- p 指定过程 pid,具体机器环境可用 man top 查看参数

各线程运行工夫

$ ps -eLo pid,lwp,pcpu | grep pid

线程堆栈快照 pstack

$ pstack pid 

pstack 原理:https://nanxiao.me/linux-pstack/

pstack+gdb 调试死锁:https://www.cnblogs.com/gqtcg…

JDK 工具

javap 剖析 class 文件

javap -verbose TestClass

JDK 工具:https://zhuanlan.zhihu.com/p/…

性能剖析工具:VisualVM(举荐)、jprofiler

VisualVM:https://blog.csdn.net/qq_3524… (jdk 的 bin 目录下自带)

IDEA 也有 VisualVM 的插件

jps

jmap

正文完
 0