本文整理了开发人员日常用到的linux相关命令,供参考。

文件相关

cd # 进入某个目录,不接参数进入当前用户目录(等同于cd ~)如/home/devuser,可接绝对路径或相对路径(../..表示上上级目录),也可以接 “-” 回到上次所在目录

pwd # 显示当前所在目录

ls -la # 列出当前目录所有对象,-a表示包含以.开头的隐藏文件或目录
ll -h # ll 等同于 ls -l, -h表示按K M G 显示文件大小

df -h # 显示系统各盘符的空间使用情况
du -h --max-depth=1 # 显示当前目录下各文件大小,–max-depth=1只列出当前目录下的文件或目录,不会列出子目录下的文件

mv test.log /home/devuser/ # 移动文件(夹) 或重命名

cp [-r] test test.bak # 复制文件,如果是文件夹则加 -r,表示复制文件夹下所有子文件夹内容

rm -[r]f /home/devuser/ # 删除文件,如果删除文件夹则加 -r

find / -name test.log # 在根目录下查找文件名为test.log的文件
find /var/log/ -size +50M -exec rm -f {} \; # 在/var/log/目录下查找大于50M的文件并删除,建议先将rm改为ls确认
find /var/log/ -type f -atime +10 # 搜索在过去10天内未被使用过的文件
find /var/log/ -type f -mtime -10 # 搜索在10天内被创建或者修改过的文件
find /var/log/ -type f -atime +10|xargs rm -f # |xargs 作用与 -exec类似
find ./ -name "*.log" -exec 'cat' {} \; > test.log # 将当前目录下所有.log文件内容合并到一个文件test.log

which java # 在系统PATH路径下查找java可执行文件
whereis java # 查找二进制、源文件、man文件,从文件索引中查找,而不仅仅从PATH路径下查找

zip test.zip test.log test2.log # 创建一个zip格式的压缩包,可以接多个文件或文件夹
zip -r file.zip file1 file2 dir1 # 将几个文件和目录同时压缩成一个zip格式的压缩包
unzip test.zip # 解压一个zip格式压缩包

tar -zcvf test.tar.gz 要被压缩的文件名或目录 # 以gzip进行压缩 -z 按gzip,-c 压缩,-v 显示内容 -f 指定文件名
tar -zxvf test.tar.gz -C 解压缩到的目录 # 解压到指定目录 -x 解压
tar -ztvf test.tar.gz # 不解压,只查看内容

tar -jcvf test.tar.bz2 要被压缩的文件名或目录 # 以bzip2进行压缩
tar -jxvf test.tar.bz2 -C 解压缩到的目录 # 解压到指定目录

文本相关

touch test.log # 创建空文件

echo -e 'abc\ncba'> test.log # 覆盖的形式往文件写入内容 -e 解析转移字符,不然当成字符串
echo 'aaa' >> test.log # 追加的形式往文件写入内容

cat [-n] test.log |grep [-v] abc # 过滤文件中包含 abc 的行, 加-v表示不包含, -n表示打印行号
cat test.log |grep abc|wc -l # 计算文件中包含 abc 的行数

head -n 2 test.log # 查看一个文件的前两行
tail -n 2 test.log # 查看一个文件的最后两行
tail -n +1000 test.log # 从1000行开始显示,显示1000行以后的
cat test.log | head -n 2000 | tail -n +1000 # 显示1000行到2000行的
cat test.log | tail -n +1000 | head -n 1000 # 从第1000行开始,显示1000行

more test.log # 一页一页地查看文件内容,空格键往后一页,B键往前一页,不能通过上下键控制翻滚,会一次加载整个文件
less test.log # 一页一页地显示文件内容,可以通过上下键控制往前往后翻,可以向上向下搜,不需一次加载整个文件,所以速度比more快,“less is more”, less比more更强大

tail -200f test.log # 查看最后200行,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
tail -F test.log # 查看最后10行,只要对应文件名存在,就保持监视,即使文件被删除或改名后,如果再次创建相同的文件名,也会继续追踪

grep abc test.log # 在文件中查找关键词”abc”,类似于 cat test.log|grep abc
grep ^abc test.log # 在文件中查找以”abc”开始的词汇
grep [0-9] test.log # 选择文件中所有包含数字的行
grep abc -R /var/log/* # 在目录 ‘/var/log’ 及随后的目录中搜索字符串”abc”

sed 's/abc/ccc/g' test.log # 将test.log文件中的 “abc” 替换成 “ccc”并打印,不改变原有文件
sed '/^$/d' test.log # 从文件中删除所有空白行并打印,不改变原有文件

paste test.log test2.log # 按两列合并两个文件每行的内容并打印,test.log在左边,test2.log在右边
paste -d '+' file1 file2 # 合并两个文件每行的内容并打印,中间用”+”拼接

sort test.log # 对文件内容进行排序,每行首字母排序
sort test.log test2.log # 排序两个文件的内容
sort test.log test2.log | uniq # 取出两个文件的并集(重复的行只保留一份)
sort test.log test2.log | uniq -u # 删除交集,留下其他的行
sort test.log test2.log | uniq -d # 取出两个文件的交集(同时存在于两个文件中的行)

# comm 类似于集合的差集运算,需要两个文件都是排序的
comm -1 test.log test2.log # 比较两个文件的内容只删除test.log所包含的内容
comm -2 test.log test2.log # 比较两个文件的内容只删除test2.log所包含的内容
comm -3 test.log test2.log # 比较两个文件的内容删除两个文件共有的内容

权限相关

chmod +x test.sh # 为一个文件增加可执行权限
chmod ugo+rwx test.sh # 设置文件的所有者(u)、群组(g)以及其他人(o)读(r,4 )、写(w,2)和执行(x,1)的权限,+ 改为 - 即删除权限
chmod 755 test.sh # 对文件所有者,群组,其他人分别设置7(rwx=4+2+1),5(rx=4+1),5(rx=4+1)的权限

chown [-R] 用户名:群组名 test.log #改变一个文件的所有者和群组,如果是作用于文件夹下所有文件或目录,则加 -R
chgrp 群组名 test.log # 改变文件的群组

 

进程相关

top # 实时显示系统中各个进程的资源占用状况
top -H -p 进程号 # 列出进程的所有线程,按1键根据CPU占有率排序
ps -ef|grep 进程名称 # 查看某个进程,一般用于找进程ID
kill -9 进程ID # 停止某个进程
jps # 查看所有java进程

 

网络相关

ifconfig # 查看系统各网卡信息(IP,mac地址,子网掩码等)
ss -s # 查看当前系统tcp、udp连接数

netstat -ano|grep 端口号 # 查看某个端口是否起来
lsof -i:端口号 # 查看某个端口对应的进程信息,lsof可能需要额外安装 (sudo yum install lsof)

ssh devuser@192.168.40.206 # 远程连接另一台linux主机

curl http://www.baidu.com # get方式请求某个地址
curl -i -X POST -H "Content-type:application/json" -d '{"a":"x","b":["y"]}' http://xxx# POST方式请求某个接口

wget http://xxx.zip # 下载文件

scp test.log devuser@192.168.40.206:/home/devuser/# 传输文件到另一台主机的目录下,如果是文件夹则加 -r

# nc 传输,可用于文件传输(scp需要密码,nc不需要密码),需要安装 sudo yum install nc
nc -l 1234 > test.log # 接收方,监听1234端口,将接收内容存于test.log
nc 192.168.40.205 1234 < test.log # 发送方,向接收方(ip为192.168.40.205)发送test.log的内容

 

系统相关

top # 查看CPU、内存使用情况,即各进程使用情况
free -g # 查看内存使用情况
date # 查看系统当前时间
uptime # 查看当前CPU使用负载情况,及系统已运行时间,相当于top的第一行
su # 切换到root用户
su devuser # 切换到devuser用户

本文发表于微信公众号:“空山新雨的技术空间”

作者:空山新雨
欢迎关注,转发,推荐,你的支持是我持续创作的动力

开发人员需要掌握的日常Linux命令集的更多相关文章

  1. Java开发人员必会的基本Linux命令(转)

    原文链接:http://www.cnblogs.com/zhuawang/p/5212809.html http://explainshell.com/ 本文并不会对所有命令进行详细讲解,只给出常见用 ...

  2. 开发人员需要熟知的常用Linux命令Version、Kernel查看

    当我们需要在Linux系统中安装一些软件而去下载安装文件时,一般都需要确认到底下载哪个版本的安装包,这就需要我们知道自己的Linux系统到底是什么版本.什么内核,常见的版本.内核查看命令或者文件有如下 ...

  3. MHA 日常维护命令集

    MHA 日常维护命令集 1.查看ssh登陆是否成功 masterha_check_ssh --global_conf=/etc/masterha/masterha_default.conf --con ...

  4. 日常linux命令

    绝对路径用什么符号表示?当前目录.上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?   绝对路径: 如/etc/init.d                当前目录和上层目录: ./  . ...

  5. 一个Java工程师的入门级Linux命令集

    0.前言    网上介绍linux的命令的文章一大堆,但是大部分都是流于命令介绍,把命令的所有参数都介绍一遍,但是其实在真正的工作中,很多参数都不会用到.本文总结了我自己常用的一些命令,这些命令都比较 ...

  6. 每天一个linux命令集

    linux命令汇总,装载来自: http://www.cnblogs.com/peida/category/309012.html

  7. 运维人员最常用150个linux命令汇总

    命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作命令(18个) l ...

  8. CUDA开发时用到的各种Linux命令

    cat 读取文件中的全部内容. 例:cat cuda_add.cu

  9. Kali Linux 命令集

    系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...

随机推荐

  1. js数字格式化(截断格式化或四舍五入格式化)

    /*** * 数字格式化(适合金融产品截断小数位后展示) * @param num * @param pattern (标准格式:#,###.## 或#.## 或#,###00.00) * @para ...

  2. JVM(一):久识你名,初居我心

    聊聊JVM JVM,一个熟悉又陌生的名词,从认识Java的第一天起,我们就会听到这个名字,在参加工作的前一两年,面试的时候还会经常被问到JDK,JRE,JVM这三者的区别. JVM可以说和我们是老朋友 ...

  3. Html5web全栈前端开发_angular框架

    昵称领取全套angular视频教程 一.Typescript typescript简称ts,是js语法的超集,很多js新的语法就借鉴了ts语法.ts是由微软团队维护的 1.1 TS简介 1.1.1 G ...

  4. 基于SDN网络的负载均衡研究与实现

    为什么需要软件定义网络 1.网络缺乏可扩展性,创新正在停滞不前.   我们最新的研究发现,几乎每两个组织中就有一个认为需要将网络功能扩展为采用SDN的主要业务触发因素,而不是其他催化剂.这一统计数据一 ...

  5. linux基础命令期末考试总结

    1.关闭防火墙:service iptables stop 2.启动防火墙:service iptables start 3.mount命令:挂载某一设备使之成为某个目录名称 4.NFS服务:linu ...

  6. Go语言圣经习题练习_1.7. Web服务

    练习 1.12: 修改Lissajour服务,从URL读取变量,比如你可以访问 http://localhost:8000/?cycles=20 这个URL,这样访问可以将程序里的cycles默认的5 ...

  7. web设计_1_思路总览

    核心思想:结构和样式分离 HTML与CSS 只有充分将页面核心内容和外观设计相分离而获得的灵活性,才能顺利构建出能够满足每个web用户需要的最佳设计方案. 核心要求:灵活性 适应不同的浏览器,适应各种 ...

  8. Wireshark着色规则

    wireshark抓包蓝色和红色 在默认情况下 蓝色适合红色相反的方向 绿色背景的是HTTP包灰色背景的是TCP包.黑色背景的是TCP错误包或者校验和错误的包 有时候wireshark抓的包还有颜色区 ...

  9. EM算法和高斯混合模型GMM介绍

    EM算法 EM算法主要用于求概率密度函数参数的最大似然估计,将问题$\arg \max _{\theta_{1}} \sum_{i=1}^{n} \ln p\left(x_{i} | \theta_{ ...

  10. NLP(十三)中文分词工具的使用尝试

      本文将对三种中文分词工具进行使用尝试,这三种工具分别为哈工大的LTP,结巴分词以及北大的pkuseg.   首先我们先准备好环境,即需要安装三个模块:pyltp, jieba, pkuseg以及L ...