linux
文章平均质量分 55
bdss58
这个作者很懒,什么都没留下…
展开
-
iptables vs nftables, using firewall-cmd
最近用 firewall-cmd 做一些网络问题上的实验,困惑于本后的工作原理。做了一些quick search,整理一些文章,当作以后备忘吧。https://medium.com/@iced_burn/compare-firewalld-iptables-nftables-netfilter-de08a8d21b5bhttps://ungleich.ch/en-us/cms/blog/2018/08/18/iptables-vs-nftables/#:~:text=IPtables%20is%20ab原创 2021-01-10 12:13:28 · 748 阅读 · 0 评论 -
查看python进程运行栈
reference首先保证进程运行机器上有GDB和pyrasite# Redhat, CentOS, etc$ yum install gdbpip install pyrasite找到卡住的python进程ID,然后用pyrasite-shell attach上去# Assuming process ID is 12345$ pyrasite-shell 12345进入 python repl 环境,然后输入from __future__ import print_function原创 2020-06-17 15:46:50 · 3354 阅读 · 0 评论 -
tcpdump 速查
basictcpdump -nvvv -i any-n: 打印ip port, 而非hostname, portname-v: verbose, -vvv 三级 verbose-i:指定网络interface针对IP port 进行过滤tcpdump -nvvv -i any -c 20 '(port 80 or port 443) and host 10.0.3.169'打印包...原创 2020-04-09 13:50:59 · 957 阅读 · 0 评论 -
centos 6&7 更新&安装最新版git
step 1wget https://www.kernel.org/pub/software/scm/git/git-2.14.2.tar.gzstep 2tar -xzf git-2.14.2.tar.gzstep 3 install dependentyyum install gettext yum install curl-devel yum install perl-develstep原创 2017-10-20 13:06:36 · 557 阅读 · 0 评论 -
linux临时端口(port)以及最大值
在一个Linux上跑一个服务,需要指定一个监听端口(系统调用listen),当client请求服务时,Linux为该请求建立新当tcp连接,在新连接的server端,对应的socket port由Linux在指定范围内随机分配一个。这个范围配置在 /proc/sys/net/ipv4/ip_local_port_range 文件中,我的机器上的内容如下:32768 61000port的原创 2017-11-16 00:31:43 · 15834 阅读 · 3 评论 -
tcp socket 和 socket文件
tcp socket tcp socket 是标示了一台主机的进程,是tcp连接中一端的实例。socket不是连接,只是表示了其中一端。由IP和port构成。tcp 连接 tcp连接由两台主机上的进程的socket连接构成。tcp server为建立tcp连接,扮演server角色的一端进程需要:通过socket()系统调用新建一个socket。sockfd = socket(AF_IN原创 2017-09-11 11:56:58 · 9132 阅读 · 1 评论 -
linux 通配符(wildcard)
shell 在执行输入的字符串命令之前,会做一些预处理,比如通配符替换。具体例子来说,如果当前目录中有1.jpg,2.jpg,3.jpg,那么命令ls *.jpg被转换成ls 1.jpg 2.jpg 3.jpg? (question mark)通配符匹配任意一个字符。比如hd?可以表示hdQ或者hd4。* (asterisk)通配符匹配任意一个或者多个字符。比如hd?可以表示hdQ或者hd4Q或者原创 2017-11-18 12:40:07 · 6903 阅读 · 2 评论 -
UNIX 是啥?!和Linux什么关系?
操作系统有两大阵营,一边是基于微软 Windows NT 的操作系统,一边是由UNIX衍生下来的操作系统。Linux, Mac OS X, Android, iOS, Chrome OS甚至路由器上的固件,这些操作系统同出一族,都是基于最初的UNIX系统开发而来,统称Unix-like 操作系统。Unix系统由AT&T贝尔实验室于1960年代开发。Unix哲学是专注于一件事去创造小而精的工具,并将他原创 2017-09-01 17:46:12 · 50776 阅读 · 9 评论 -
linux文件与inode
缘起周末接到告警,一个线上服务对机器磁盘占用率100%了。马不停蹄地登上线上机器df了一把,果然100%了。赶紧去服务对log目录下删了一批日志文件。然后又df一下确认…,怎么占用率还是100%?!明明刚刚删除了一些大文件,为什么df报告占用率还是满的?赶紧用du看了看各个目录占用情况,发现没有占用到100%啊。经过一番搜索,发现 那些大文件虽然被删除了,但是仍然被某进程打开,所以占用对磁盘空...原创 2017-10-23 15:37:57 · 727 阅读 · 0 评论 -
一行bash命令http server
while true; do { echo -e ‘HTTP/1.1 200 OK\r\n’; echo hello world; } | nc -l 8080; done功能稍微健全一点的可以参考这里https://github.com/avleen/bashttpd/blob/master/bashttpd原创 2017-12-10 23:30:48 · 1708 阅读 · 0 评论 -
公网云主机sshd防暴力破解攻击
暴力破解bot尝试使用各种用户名已经密码进行破解,比如我在/var/log/secure下找到了如下用户名,他们尝试使用ssh登陆我的公网虚拟主机。 sed -n ‘/Jan 19/p’ /var/log/secure | sed -n ‘/invalid user/p’ | awk ‘{print $(NF-1)}’ | sort | uniq 0010112345345原创 2018-01-20 11:06:14 · 1406 阅读 · 0 评论 -
程序的编译与执行过程
本文以C程序为例。构建C程序需要4个步骤,分别使用4个工具完成: preprocessor, compiler, assembler, and linker.四步完成后生成一个可执行文件。第一步,预处理. 这一步处理 头文件、条件编译指令和宏定义。第二步,编译. 将第一步产生的文件连同其他源文件一起编译成汇编代码。第三步,汇编。将第二步产生的汇编源码转换为 object fi...原创 2018-02-25 23:36:43 · 13730 阅读 · 0 评论 -
linux 下的 autotools 使用
在Linux环境下,当拿到一份源码,安装过程通常简单如下:./configuremakemake installc project 源码中通常有个 configure 程序,确切来说他是一个shell脚本。他的作用就是检测当前操作系统和一些执行环境(比如依赖和编译器等),然后根据这些信息生成 Makefile 文件。 一般项目中不会有 Makefile ,通过configure...原创 2018-08-23 22:12:11 · 601 阅读 · 0 评论 -
共享内存
方式1 使用mmap#include <sys/mman.h>#include <stdlib.h>#include <strings.h>#include <unistd.h>#include <errno.h>#include <stdio.h&a原创 2018-09-10 11:12:51 · 230 阅读 · 0 评论 -
linux进程虚拟内存
http://csapp.cs.cmu.edu/2e/ch9-preview.pdfhttp://engineering.pivotal.io/post/virtual_memory_settings_in_linux_-_the_problem_with_overcommit/https://manybutfinite.com/post/anatomy-of-a-program-in-mem...原创 2018-12-06 23:30:17 · 4460 阅读 · 0 评论 -
linux 系统调用
https://blog.packagecloud.io/eng/2016/04/05/the-definitive-guide-to-linux-system-calls/原创 2019-08-11 22:22:04 · 229 阅读 · 0 评论 -
远程主机执行命令
ssh命令常用来登录远程主机并进入交互界面(interactive shell)ssh username@host_ip如果不需要登上远程主机进行交互式操作,而是仅仅想执行一些命令,那么可以以在这么搞:ssh username@host_ip command例如在远程主机172.27.247.110上执行ls命令:ssh username@172.27.247.110 'ls'再举一例,把本机公钥添原创 2017-10-06 00:11:00 · 1512 阅读 · 0 评论 -
CentOS 6 升级安装gcc 4.8
1. 导入CERN’s GPG keyrpm --import http://linuxsoft.cern.ch/cern/slc68/x86_64/RPM-GPG-KEY-cern2. 添加slc6-devtoolset yum源wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtools原创 2017-10-08 16:57:47 · 2005 阅读 · 0 评论 -
Linux账户的添加与删除
添加账户 useradd -s -m -d -g UserName-s SHELL : Login shell for the user.-m : Create user’s home directory if it does not exist.-d HomeDir : Home directory of the user.-g Group : Group name or numb原创 2017-05-26 00:05:50 · 2260 阅读 · 0 评论 -
10个vim技巧
注:下面内容翻译自这里。1.搜索光标下的词在normal mode下按#,搜索光标下的词。相当于/ yourword2.自动完成拼写ctrl - n,vim根据上下文自动完成你没有写全的单词。3.重复上一次变动使用.重复上一次变动。比如新输入了一行,按.会重复刚刚新输入的一行。4.将光标跳转到括号的另一半光标在一个括号上时,按%,光标跳转到当前括号的另一半。5.使用==或者=缩进在normal mo翻译 2016-07-16 15:37:48 · 365 阅读 · 0 评论 -
浅入bash script
reference to here变量1.特殊变量$0 - # bash脚本本身名字。$1 - $9 - # bash脚本后面带的参数。$# - # 参数个数。$@ - # 所有参数$? - # 最近一次命令退出的状态码$$ - # 当前脚本运行的process id$USER - # 运行当前脚本的用户名$HOSTNAME - # 主机名$SECONDS - # 脚本的执行时间$原创 2016-07-23 20:23:37 · 730 阅读 · 0 评论 -
单行bash命令
处理文件1.清空文件> file这个跟echo "some thing" > file一个道理。2.往文件中添加字符串echo "some thing" >> file>>和>的区别就是一个是添加一个是覆盖。3.从文件中读取一行read -r line < fileread命令将file中的第一行读出,保存在line变量中。-r的作用是将反斜杠\原样输出。 read命令暗地里还做了一件事是,将一行原创 2016-07-23 02:13:57 · 1138 阅读 · 0 评论 -
每日vi tips
vim linux原创 2015-05-14 00:33:22 · 472 阅读 · 0 评论 -
makefile的简单使用
最近在 github上看了一些小的开源代码,发现原创 2014-11-01 00:50:41 · 1824 阅读 · 0 评论 -
在linux中查找文件命令
linux命令不常使用,每次用到时候都要去查手册原创 2014-10-26 15:49:10 · 574 阅读 · 0 评论 -
unicode和UTF-8的不同(The difference between UTF-8 and Unicode?)
首先,我想说的是UTF-8和unicode根本没有可比性。原创 2014-10-06 21:33:05 · 513 阅读 · 0 评论 -
linux设置环境变量的4种方法和简单比较
在linux上安装软件后通常需要配置环境变量。原创 2014-09-19 16:31:53 · 1574 阅读 · 0 评论 -
使用vim在选中的文本中查找替换
1.进入visual mode,选中文本按v或者V进入visual mode。hjkl移动光标选中文本。2.在选中文本中搜索某个词在步骤1的情况下,输入/\%V+target_word.比如 /\%Vhello 回车结束输入,就会在选中文本中查找hello这个单词。3.在选中文本中替换某个词在步骤1情况下,输入:,vim会在命令行中自动添加'<,'>,这时紧接着在其后面输入s/patte原创 2016-08-13 13:24:50 · 8482 阅读 · 1 评论 -
crontab 定时任务避免重复执行
使用crontab设置一个脚本每个一段时间自动执行一次,当脚本的执行时间超过crontab设置的时间间隔,那个脚本就会在同一时刻同时执行。比如设置crontab每隔五分钟执行一次task.sh:*/5 * * * * /bin/bash /pathto/task.sh如果task.sh执行超过了5分钟,那么五分钟之后就会有两个task.sh在运行。不符预期。 拿下面执行10秒的脚本task.sh为原创 2017-03-12 11:50:43 · 11733 阅读 · 3 评论 -
linux curl工具
curl 使用使用POST 和 PUT 方法带数据发起http请求:指明请求类型-X POST-X PUT指明http头-H "Content-Type: application/x-www-form-urlencoded"-H "Content-Type: application/json"请求数据form urlencoded: -d "param1=value1¶m2=va原创 2017-09-16 19:46:15 · 1797 阅读 · 0 评论 -
console, terminal, tty, pty是啥?
说起这几个东西,需要提一下几十年前的计算机。40几年前,计算机有点大,就像下图那样: console这么大的计算机需要控制台(console)来配置、管理和监控,所以就有了下面这个东东(console): 控制台需要连接显示设备,当时的技术要求连接显示设备的线缆要短,所以控制台一般和主机放在一起。terminal当多用户使用主机时候,不可能一起挤在一个房间里去抢输入输出设备吧。所以就有了远程原创 2017-09-01 22:24:15 · 1810 阅读 · 0 评论 -
命令行编辑shortcut
按键/命令描述Ctrl + A移动光标至行首Ctrl + E移动光标至行尾Ctrl + L清屏Command + K清屏Ctrl + U删除光标前的所有文字。如果光标位于行尾则删除整行。Ctrl + H与退格键相同Ctrl + R检索使用过的命令Ctrl + C终止当前执行Ctrl + D退出当前shellCtrl + Z将执行中的任何东西放入后台进程。fg原创 2017-09-02 01:04:34 · 1160 阅读 · 0 评论 -
修改运行中的docker容器的环境
docker exec “your container id” /bin/sh -c “you command”原创 2017-06-24 17:12:36 · 3377 阅读 · 0 评论 -
Linux在当前(指定)用户下安装软件
1. 获取源码以下载git为例wget https://www.kernel.org/pub/software/scm/git/git-2.9.4.tar.xz2. 编译配置解压源码,进入源码文件夹,执行./configure --prefix=$HOME/myapps--prefix=$HOME/myapps 制定了安装位置。3. 编译执行: make4. 安装执行: make inst原创 2017-06-09 16:16:13 · 4332 阅读 · 1 评论 -
删除最后一次改动超过n天的文件
常用语linux日常运维当中,比如在程序的日志文件超过一定数量时就需要根据日志生成时间来删除一部分日志文件。如题,如何删除最后一次改动超过30天的日志文件呢?linux里常用工具find就可以轻松解决这个问题。find ./ -name *.log -mtime +30 | xargs rm还有一种场景:删除最近5天生成的日志文件。find ./ -name *.log -mtime -5 | xa原创 2017-04-09 19:58:30 · 489 阅读 · 0 评论 -
diff 命令和patch文件的使用
1. 使用diff命令现有text1.txt和text2.txt两个文件: text1.txtthis is the first linethis is the second linethis is the thiid linetext2.txtthis is the first linethis is the second linethis is the third line两个文件的区原创 2017-03-12 13:01:42 · 812 阅读 · 0 评论 -
crontab定时任务
有定时执行一次和定时重复执行两种定时任务使用at命令定时执行一次任务确认at daemon是否启动# ps -ef | grep atdroot 8231 1 0 18:10 ? 00:00:00 /usr/sbin/atd如果没有启动之# /etc/init.d/atd start定时执行一个脚本at -f shellscript.sh -v 18:30意思是在今天下午6点时候执行she原创 2017-03-12 12:32:05 · 277 阅读 · 0 评论 -
linux配置ip地址--eth0文件配置
每次重新安装linux,都要重新配置ip地址。原创 2014-06-04 19:18:10 · 1468 阅读 · 0 评论