linux的一些简单命令

这里只是列出实际中使用频率较高的,可以通过 man 命令或者 命令 –help 来查看更为详细的内容

文件有关的

1:【ls命令】 ls [option] …[file]…

  • -a all 列出所有的文件 包括隐藏文件 [eg ls -a /home]
  • -l 列出详细的文件信息 可以简写为ll filename [eg: ls -l /home or ll /home ]
  • -h –human-readable 将文件的大小通过字节的方式列出来
  • -R 递归显示出该目录所有的文件
  • -d 只显示本文件下面

可以通过 man ls 查看更为详细的命令

2:【cd命令】 cd [option] ..[dir]

eg cd /home

3:[mkdir 命令] mkdir [OPTION]… DIRECTORY…

  • -p 在创建文件时,当目标目录的上层目录不存在时创建,,如果这些目录已存在也不会当做错误处理;eg:mkdir -p /a/b/c
  • -v –verbose 打印创建目录是的详情
  • -m 设置权限 eg mkdir -m 700 -p -v /a/b/c 在创建目录的同时也设置目录的权限为700

4:【rmdir】 删除空目录
- -p rmdir -p /a/b/c 相当于rmdir a/b/c a/b a 假如某一级目录不空,则命令执行会失败,注意隐藏文件߄ 这个命令会先从最深的一层目录删起

5:【tree】 查看目录树

 这个命令不是系统自带的需要安装 yum install tree
 可以通过 tree /home 以树的形式列出 /home目录下的所有文件

6:【 touch】文件的创建和删除

 *touch filename  eg touch a.txt* 

7:【stat】查看文件的信息

8:【rm】 删除文件

  • -i:删除文件之前确认
  • -f 删除文件之前不确认
  • -r 递归删除

eg:rm -rf a.txt

注意:在实际的工作中一定要注意,文件的删除,尽量少的使用这个命令,一般删除前,重要文件先备份

9:【cp】 copy 复制

  • -i 如果文件存在,再覆盖之前会进行确认
  • -a 归档复制,常用语备份,保持文件的原有属性

可以同时复制多个文件 到一个目录下面
eg:cp file1 file2 file /tmp
eg2 cp /etc/{passwd,inittab} /tmp 把etc文件夹下面的passwd文件和initable文件复制到 /tmp目录下面

10【mv】 move 移动文件 mv 源文件 目标路径

eg mv /etc/passwd /tmp 把/etc/passwd 文件移动到/tmp目录下
eg2:mv/etc/passed /tmp/pd 把/etc/passwd 文件移动到/tmp目录下,并改名为pd

11【cat】 连接显示文件

*eg cat/etc/passwd*

12 【more | less】 翻屏

例如 *cat /etc/passwd | more* 

13 【tail | head 】 显示文件的尾部或者头部

  *head -n 5 /etc/passwd* 显示passwd文件的前五行
  *tail -5 /etc/passwd* 显示passwd文件的后五行
  *tail -f xx.log* 一般用来查看log文件,显示的是文件尾部,不退出命令,只要有新的日志内容,就会显示出来

14 【文件重定向命令】

首先要理解三个概念
标准输入 stdin 键盘鼠标的输入等被称为标准输入
标准输出 stdout
标准错误输出 stderr

管道 :是把前一个命令的标准输出作为下一个命令的标准输入

  • > 输出重定向,把标准输入重定向
  • >> 追加重定向
  • cat < 输出重定向
    eg cat a.txt > b.txt 把a.txt中的内容重定向【写入】到b.txt中,如果b.txt中原来就有内容,则会被覆盖
    eg2:cat a.txt >> b.txt 追加到b.txt原本内容的末尾
    eg3: cat > a.txt < b.txt 先从b.txt中读取内容,再重定向到a.txt中

文本处理

15【cut】 分割字符串

  • -d :指定字段分割符,默认是空格
  • -f : 指定要显示的字段
  • -f 1,3 显示分割后的1和3字段
  • -f 1-3 显示分割后的1 到3 字段
    eg cut -d: -f 1,7 /etc/passwd
[root@node01 test]# cut -d: -f 1,3 /etc/passwd
root:0
bin:1
daemon:2
...
...

16【sort】 排序

  • -n 按数字排序 默认是按照ascii码排序的
  • -t 字段分割符
  • -r 降序排
  • -u 去重
    • k 以哪个关键字排序

eg : sort -t “:” -k4 -n -r /etc/passwd 以:为分隔符,第四个作为排序的关键字,按数字倒序

[root@node01 test]# sort -t: -k4 -nr /etc/passwd
ttuser5:x:520:520::/home/ttuser5:/bin/bash
ttuser4:x:519:519::/home/ttuser4:/bin/bash
ttuser3:x:518:518::/home/ttuser3:/bin/bash
ttuser2:x:517:517::/home/ttuser2:/bin/bash
...
...

eg2: cut -d: -f7 /etc/passwd | sort -u

[root@node01 test]# cut -d: -f7 /etc/passwd | sort -u
/bin/bash
/bin/nologin
/bin/sync
...
...

17【wc】 文本统计

  • -l :统计行数
  • -w:统计单词数
  • -c :统计字节数
  • -L:打印最长行长度

eg1:wc -l /etc/passwd

[root@node01 test]# wc -l /etc/passwd
44 /etc/passwd

eg2:cut -d: -f7 passwd | sort -u | wc -l

[root@node01 test]# cut -d: -f7 /etc/passwd | sort -u | wc -l
6

18【sed】行编辑器,默认不编辑源文件

  • -n 不显示到屏幕上,也不改变源文件 ,基本没啥用
  • -e 同时执行多个文本
  • -p 显示符合条件的行
  • -i 修改源文件
  • s/pattern/string/修饰符:查找并替换,默认只替换每行中的第一次被模式匹配到的字符串,加修饰符g:全局替换,i:忽略字符大小写
  • -r 使用扩展的正则表达式

这里使用了正则表达式,如果对正则表达式不熟,自学一下正则表达式
eg:删除/etc/inittab文件中行首的空白符
sed -r ‘s@^[[:space:]]+@@g’ /etc/inittab: -r 表示使用扩展的正则表达式 引号中的s 表示查找并替换;@符可以自定义,表示@后面跟的是正则表达式:^[[:space:]]+ 则表示以一个或多个空格开头 使用@@之间的字符替换,这里@@之间什么也没有 就等同于删除行首空白符;最后一个g表示全局替换
eg2:替换/etc/inittab 文件中的 ” id:3:initdefault:” 中的数字改为5,为了看清楚这里使用了 tail -1 把最后一行展示出来

[root@node01 test]# sed -r 's@(id:)[0-9](:initdefault:)@\15\2@g' /etc/inittab | tail -1
id:5:initdefault:

eg3:删除c.txt中的空行

[root@node01 test]# cat c.txt
passwd: Only one user name may be specified.

passwd: Only one user name may be specified.

passwd: Only one user name may be specified.
passwd: Only one user name may be specified.
//上面文件中有两个空行 空行和空白行不一行 空白行是指有空格 组成的行,而空行是直接按回车生成的行
//上面的文件3行驶空白行,由空格组成的行,而47行才是空行
[root@node01 test]# sed -r '/^$/d' c.txt 
passwd: Only one user name may be specified.

passwd: Only one user name may be specified.
passwd: Only one user name may be specified.
passwd: Only one user name may be specified.

eg4:删除c.txt中的空白行【注意不是空行】

[root@node01 test]# cat c.txt
passwd: Only one user name may be specified.

passwd: Only one user name may be specified.
passwd: Only one user name may be specified.
passwd: Only one user name may be specified.
[root@node01 test]# sed -r '/^[[:space:]]+$/d' c.txt
passwd: Only one user name may be specified.
passwd: Only one user name may be specified.
passwd: Only one user name may be specified.
passwd: Only one user name may be specified.
passwd: Only one user name may be specified.
执行结果是删除了第三行的红白行 而57行为空行,不会删除

eg5:删除c.txt中的空行,和空白行

[root@node01 test]# cat c.txt 
passwd: Only one user name may be specified.

passwd: Only one user name may be specified.
passwd: Only one user name may be specified.
passwd: Only one user name may be specified.
[root@node01 test]# sed -r '/^[[:space:]]*$/d' c.txt
passwd: Only one user name may be specified.
passwd: Only one user name may be specified.
passwd: Only one user name may be specified.
passwd: Only one user name may be specified.

19【awk】是一个庞大的文本处理工具,自成体系,可以编程

  • -F 格式分割符
  • 内置变量
    • -NF 当前记录中字段的个数
    • NR 已读的记录数
    • OFS 输出域分隔符
      awk -F”格式分割符” ‘{执行的具体操作}’

eg:统计/etc/passwd 中的账户人数

awk -F: '{count++;print $7} END {pring "user count is ", count}' /etc/passwd

eg2:显示/etc/passwd的账户

[root@node01 test]# awk -F: 'BEGIN {count=0;OFS="XXX"}{name[count]= $1;count++};END {for (i=0;i< NR;i++)print i,name[i]}' /etc/passwd;i++)print i,name[i]}' /etc/passwd
0XXXroot
1XXXbin
2XXXdaemon
...
...

eg3:使用if else

# awk 'BEGIN {count=0;FS=":"} {if(NR==6) OFS=OFS"|"; else OFS=OFS"^"; name[count] = $1;print count,name[count++]}' /etc/passwd
# awk 'BEGIN {count=0;FS=":"} {if(NR%2==0) OFS=OFS"|"; else OFS=OFS"^"; name[count] = $1;print count,name[count++]}' /etc/passwd
# awk 'BEGIN {count=0;FS=":"} {if(NR%2) OFS=OFS"|"; else OFS=OFS"^"; name[count] = $1;print count,name[count++]}' /etc/passwd

linux中的其他命令
查看进程命令
ps -aux
netstat -ntpl
ss -tanlp
yum install lrzsz 一个支持快速windons和linux主机间进行文件上传和下载的命令

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

Nginx下的rewrite规则 - 2016-07-25 14:07:08

正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~* 分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配,其中: * -f 和! -f 用来判断是否存在文件* -d 和! -d 用来判断是否存在目录* -e 和! -e 用来判断是否存在文件或目录* -x和!-x 用来判断文件是否可执行 rewrite指令的最后一项参数为flag标记,flag标记有: 1. last 相当于apache里面的[L]标记,表示rewrite。 2. break 本条规则匹配

Apache Flink Client生成StreamGraph - 2016-07-25 04:07:11

概述 上文我们分析提交流程时, RemoteStreamEnvironment 类的 execute 方法的第一步就是生成 StreamGraph 。 StreamGraph 是用于表示流的拓扑结构的数据结构,它包含了生成 JobGraph 的必要信息。它的类继承关系图如下: 如果你按照 StreamGraph 的继承链向上追溯,最终会发现它实现了接口 FlinkPlan 。Flink在这里效仿的是数据库的执行SQL是产生执行计划的机制, FlinkPlan 定义在Flink的优化器相关的包中,针对流应用

zabbix wechat 报警 - 2016-07-24 22:07:29

监控在运维工作中是比不可少的一环,那伴随着监控也同时会涉及到告警机制,一般的监控到的结果是成功或者失败,如Ping不通、访问网页出错、连接不到Socket,发生时这些称之为故障,故障是最优先的告警。那针对于 zabbix 的告警可以有多种方式去做: zabbix三种常见报警介质: 短信:它的好处是不用联网手机有信号就行,但是需要有短信网关,需要花钱。 邮件:它也可以做到手机短信通知,基本现在邮箱都有这个功能(如果你使用的是移动的手机号,可以让zabbix将报警信息发送到139邮箱,再通过139绑定到手机号
J2EE进阶(十一)SSH框架整合常见问题汇总(二) 问题 8       java.lang.ClassCastException : java.lang.String cannot be cast to java.lang.Boolean      解决       数据库中userdetail表的映射文件如下,可见xb字段数据类型为boolean类型,而自己在userdetail模型类中定义的类型为String类型。为此可以得出这样的结论。模型类中的数据及类型必须与数据表映射文件中的字段信息保持一致
背景: 为了方便整体产品的发布,希望通过docker实现增量发布。大致的思路如下: is-there-a-way-to-add-only-changed-files-to-a-docker-image-as-a-new-layer-with 。本博文对这种方式进行了尝试,与此同时简单介绍如何通过Dockerfile来创建Docker镜像。 前期准备: 解决centos的网络问题 【can not find a valid baseurl for repo: base/7/x86_64】 ,使用dhclie

pcap文件的python解析实例 - 2016-07-24 19:07:52

最近一直在分析数据包。 同时也一直想学python。 凑一块儿了...于是,便开工了。座椅爆炸! 正文 首先要说的是,我知道python有很多解析pcap文件的库,这里不使用它们的原因是为了理解pcap文件的格式细节。使用tcpdump你可以很容易抓取到一系列的数据包,然而tcpdump并没有分析数据包的功能,如果想从这个抓包文件中分析出一些端倪,比如重传情况,你必须使用wireshark之类的软件,用wireshark打开tcpdump抓取的pcap文件,如果你看到了一堆堆的深红色(类似静脉血管里流出的猪

CPU和内存监测 - 2016-07-24 19:07:07

CPU和内存监测 vmstat命令的VM模式 vmstat可以监测给定时间间隔的服务器的状态值,包括CPU的使用率,内存的使用,虚拟内存的交换情况,IO读写情况。 主要从/proc/meminfo,/proc/stat和/proc/*/stat中获取数据 常用手段vmstat [采样的时间间隔秒数] [采样的次数],举例如下: [root@dtbase-master- 2 /root] #vmstat 5 10 procs -----------memory---------- ---swap-- ---
正文 为了弥补pcap文件的缺陷,让抓包文件可以容纳更多的信息,pcapng格式应运而生。关于它的介绍详见《 PCAP Next Generation Dump File Format 》         当前的wireshark/tshark抓取的包默认都被保存为pcapng格式。         形而上的论述就不多谈了,直接给出一个pcapng数据包文件的例子: 然后我强烈建议,对着《 PCAP Next Generation Dump File Format 》来把一个实际抓取的pcapng文件里面
PS:历史原因作者账号名为:ymh198816,但事实上作者的生日并不是1988年1月6日 今天作者要在这里通过一个简单的电商网站订单实时分析系统和大家一起梳理一下大数据环境下的实时分析系统的架构模型。当然这个架构模型只是实时分析技术的一 个简单的入门级架构,实际生产环境中的大数据实时分析技术还涉及到很多细节的处理, 比如使用Storm的ACK机制保证数据都能被正确处理, 集群的高可用架构, 消费数据时如何处理重复数据或者丢失数据等问题,根据不同的业务场景,对数据的可靠性要求以及系统的复杂度的要求也会不同
一 协议端口 如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)。 在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机的ip地址来进行互联网络中的路由选择,把数据包顺利的传送到目的主机。大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据包传送给众多同时运行的进程中的哪一个