开发人员需要掌握的日常Linux命令集
本文整理了开发人员日常用到的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
#改变一个文件的所有者和群组,如果是作用于文件夹下所有文件或目录,则加 -Rchgrp 群组名 test.log
# 改变文件的群组
进程相关
top
# 实时显示系统中各个进程的资源占用状况top -H -p 进程号
# 列出进程的所有线程,按1键根据CPU占有率排序ps -ef|grep 进程名称
# 查看某个进程,一般用于找进程IDkill -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 ncnc -l 1234 > test.log
# 接收方,监听1234端口,将接收内容存于test.lognc 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命令集的更多相关文章
- Java开发人员必会的基本Linux命令(转)
原文链接:http://www.cnblogs.com/zhuawang/p/5212809.html http://explainshell.com/ 本文并不会对所有命令进行详细讲解,只给出常见用 ...
- 开发人员需要熟知的常用Linux命令Version、Kernel查看
当我们需要在Linux系统中安装一些软件而去下载安装文件时,一般都需要确认到底下载哪个版本的安装包,这就需要我们知道自己的Linux系统到底是什么版本.什么内核,常见的版本.内核查看命令或者文件有如下 ...
- MHA 日常维护命令集
MHA 日常维护命令集 1.查看ssh登陆是否成功 masterha_check_ssh --global_conf=/etc/masterha/masterha_default.conf --con ...
- 日常linux命令
绝对路径用什么符号表示?当前目录.上层目录用什么表示?主目录用什么表示? 切换目录用什么命令? 绝对路径: 如/etc/init.d 当前目录和上层目录: ./ . ...
- 一个Java工程师的入门级Linux命令集
0.前言 网上介绍linux的命令的文章一大堆,但是大部分都是流于命令介绍,把命令的所有参数都介绍一遍,但是其实在真正的工作中,很多参数都不会用到.本文总结了我自己常用的一些命令,这些命令都比较 ...
- 每天一个linux命令集
linux命令汇总,装载来自: http://www.cnblogs.com/peida/category/309012.html
- 运维人员最常用150个linux命令汇总
命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作命令(18个) l ...
- CUDA开发时用到的各种Linux命令
cat 读取文件中的全部内容. 例:cat cuda_add.cu
- Kali Linux 命令集
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...
随机推荐
- 百度OCR文字识别API使用心得===com.baidu.ocr.sdk.exception.SDKError[283604]
异常com.baidu.ocr.sdk.exception.SDKError[283604]App identifier unmatch.错误的packname或bundleId.logId::303 ...
- 通过VS2017发布.net core程序并使用Web 部署到远程服务器最新教程
最近一个项目中,为App开发后台接口,技术选型为最新 .net core版本,使用.net core开发web api接口过程中,为了方便app团队成员直接在线调用接口,找了公网上的一台服务器做为ap ...
- JSP+java上传图片到服务器,并将地址保存至MYSQL + JSP网页显示服务器的图片
这两天遇到个需求——用户头像修改功能. 查了好多资料,不是代码不全,就是某些高端框架,卡了好久,今已实现,分享给大家,如果有更好的方法,非常感谢可以在下方评论区写出 一.整体项目架构 二.web.xm ...
- 【Intellij】导入 jar 包
选中工具栏上"File"--->"Project Structure"--->选择“Libraries”--->点击“+”--->选择自 ...
- git项目版本处理--远程分支重新拉取本地代码如何处理
最近在eclipse 上用git拉取分支,提交代码因为提交代码提交了一些配置文件造成 后续同事提交代码一直出现代码冲突问题 项目老大又重新拉取了一条代码 同样的分支名字 当时有点蒙不知道接着怎么弄:场 ...
- div 环形排列
javascript-按圆形排列DIV元素(一)---- 分析 效果图: 一.分析图: 绿色边框内:外层的DIV元素,相对定位; 白色圆形框:辅助分析的想象形状; 白点:为白色圆形的圆心点,中心点,点 ...
- js 共有和私有
//共有 var SunHang = function(){ var name = "ssss"; this.name = "hhhhh"; function ...
- 关于AJAX的跨域问题
最近过年的这几天在做毕业设计的时候遇到了一个关于AJAX的跨域问题,本来我是想要用一下聚合数据平台提供的天气预报的接口的,然后做一个当地的天气情况展示,但是在使用AJAX的时候,被告知出现错误了. 这 ...
- 大厂面试Kafka,一定会问到的幂等性
01 幂等性如此重要 Kafka作为分布式MQ,大量用于分布式系统中,如消息推送系统.业务平台系统(如结算平台),就拿结算来说,业务方作为上游把数据打到结算平台,如果一份数据被计算.处理了多次,产生的 ...
- Mysql 局域网连接设置——Windows
在公司工作中,会遇到mysql数据库存储于某个人的电脑上,大家要想连接mysql服务,装有mysql服务的电脑就必须开启远程连接. 其实不仅仅是局域网,只要你有数据库所在服务器的公网IP地址都能连上. ...