cut:以某种方式按照文件的行进行分割 参数列表: -b 按字节选取 忽略多字节字符边界,除非也指定了 -n 标志 -c 按字符选取 -d 自定义分隔符,默认为制表符。 -f 与-d一起使用,指定显示哪个区域。 that contains no delimiter character, unless the -s option is specified --complement 补全选中的字节、字符或域 -s, --only-delimited 不打印没有包含分界符的行 --output-delimiter=字符串 使用指定的字符串作为输出分界符,默认采用输入 的分界符 范围控制: n:只有第n项 n-:从第n项一直到行尾 n-m:从第n项到第m项(包括m) -m:从一行的开始到第m项(包括m) -:从一行的开始到结束的所有项 cat /etc/passwd | cut -b1-3 #取每行的第1-3字字节 cat /etc/passwd | cut -b1-3,5-7,8 #取每行的第1-3,5-7,8的字节(后面的数字会先进行从小到大的排列) 需要事先知道具体字节,很容易出错 cat song.txt |cut -nb 1,2,3#当 -b 添加 -n 后则不会分割多字节 (我的系统是utf-8,所以需要用三个字节来表示一个汉字) cat /etc/passwd | cut -c1,3 #适用于中文 cat /etc/passwd | cut -d : -f 3 #以:分割,取第三段 cat /etc/passwd | cut -d '' #以空格进行分割,且是一个空格 缺点: 有的时候分隔符很难确定
标签: Linux
crontab 启动 、运行 和编辑 查看
cron服务是Linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:
/sbin/service crond start /sbin/service crond stop /sbin/service crond restart /sbin/service crond reload
以上1-4行分别为启动、停止、重启服务和重新加载配置。
要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可
查看当前用户的crontab,输入 crontab -l;
编辑crontab,输入 crontab -e;
删除crontab,输入 crontab -r
iptraf:一个实用的TCP/UDP网络监控工具
iptraf是一个基于ncurses的IP局域网监控器,用来生成包括TCP信息、UDP计数、ICMP和OSPF信息、以太网负载信息、节点状态信息、IP校验和错误等等统计数据。
它基于ncurses的用户界面可以使用户免于记忆繁琐的命令行开关。
特征
-
IP流量监控器,用来显示你的网络中的IP流量变化信息。包括TCP标识信息、包以及字节计数,ICMP细节,OSPF包类型。
-
简单的和详细的接口统计数据,包括IP、TCP、UDP、ICMP、非IP以及其他的IP包计数、IP校验和错误,接口活动、包大小计数。
-
TCP和UDP服务监控器,能够显示常见的TCP和UDP应用端口上发送的和接收的包的数量。
-
局域网数据统计模块,能够发现在线的主机,并显示其上的数据活动统计信息。
-
TCP、UDP、及其他协议的显示过滤器,允许你只查看感兴趣的流量。
-
日志功能。
-
支持以太网、FDDI、ISDN、SLIP、PPP以及本地回环接口类型。
-
利用Linux内核内置的原始套接字接口,允许它(指iptraf)能够用于各种支持的网卡上
-
全屏,菜单式驱动的操作。
安装方法
Ubuntu以及其衍生版本
sudo apt-get install iptraf
Arch Linux以及其衍生版本
sudo pacman -S iptra
Fedora以及其衍生版本
sudo yum install iptraf
用法
如果不加任何命令行选项地运行iptraf命令,程序将进入一种交互模式,通过主菜单可以访问多种功能。
简易的上手导航菜单。
选择要监控的接口。
接口ppp0处的流量。
http://os.51cto.com/art/201505/476216.htm
CentOS 7.0,启用iptables防火墙
今天在测试的时候安装了apache但是外部访问不到
我关闭了防火墙外部就可以访问到了
CentOS 7.0默认使用的是firewall作为防火墙
我在这里改为iptables防火墙
1、关闭firewall:
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动
2、安装iptables防火墙
yum install iptables-services #安装 vi /etc/sysconfig/iptables #编辑防火墙配置文件
# sample configuration for iptables service # you can edit this manually or use system-config-firewall # please do not ask us to add additional ports/services to this default configuration *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INP
UT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
-A INPUT -j REJECT –reject-with icmp-host-prohibited
-A FORWARD -j REJECT –reject-with icmp-host-prohibited
COMMIT
:wq! #保存退出
systemctl restart iptables.service #最后重启防火墙使配置生效 systemctl enable iptables.service #设置防火墙开机启动
linux中的at命令,启动atd服务
查看了多个资料,并没有在 /etc/init.d/ 这个目录下发现 atd 文件,所以命令
并不起作用。
使用命令:
这样就可以看到atd的进程了,然后重新启动任务
搞定!
linux一些操作
1.修改默认LANG
记录一下 默认linux的LANG是en_US.UTF-8
现在我改成了C
以防以后忘记
2.添加alias
在~/.bashrc里加上alias记录
然后再“source ~/.bashrc”
linux复习笔记 – SHELL
变量内容的删除,替代与替换
1. 完整呈现 vbird 这个变量的内容; [root@linux ~]# vbird="/home/vbird/testing/testing.x.sh" [root@linux ~]# echo ${vbird} /home/vbird/testing/testing.x.sh 2. 在 vbird 变量中,从最前面开始比对,若开头为 / ,则删除两个 / 之间的所有数据,亦即 /*/ [root@linux ~]# echo ${vbird##/*/} testing.x.sh <==删除了 /home/vbird/testing/ [root@linux ~]# echo ${vbird#/*/} vbird/testing/testing.x.sh <==仅删除 /home/ 而已 # 这两个小例子有趣了~变量名称后面如果接了两个 ## ,表示在 ## # 后面的字符串取『最长的』那一段;如果仅有一个 # ,表示取『最小的那一段』喔! 3. 承上题,如果是从后面开始,删除 /* 呢? [root@linux ~]# echo ${vbird%%/*/} /home/vbird/testing/testing.x.sh <==都没被删除 [root@linux ~]# echo ${vbird%%/*} <==被删除光了! [root@linux ~]# echo ${vbird%/*} /home/vbird/testing <==只删除 /testing.x.sh 部分 # 这个例子当中需要特别注意,那个 % 比对的是『最后面那个字符』的意思, # 所以啰,第一个方式当然不对~因为 vbird 这个变量的内容最后面是 h 而不是 / 啊! # 至于 %%/* 则是删除『最长的那个 /* 』,当然就是全部喔!而 %/* 则是最短的那个! 4. 将 vbird 变数中的 testing 取代为 TEST [root@linux ~]# echo ${vbird/testing/TEST} /home/vbird/TEST/testing.x.sh [root@linux ~]# echo ${vbird//testing/TEST} /home/vbird/TEST/TEST.x.sh # 如果变量后面接的是 / 时,那么表示后面是进行『取代』的工作~而且仅取代『第一个』 # 但如果是 // ,则表示全部的字符串都取代啊!
linux 复习笔记 – VIM 使用
多窗口功能
想象两个情况:
• 当我有一个档案非常的大,我查阅到后面的数据时,想要『对照』前面的数据, 是否需要使用 [ctrl]
+f 与 [ctrl]+b 来跑前跑后查阅?
• 我有两个需要对照着看的档案,不想使用前一小节提到的多档案编辑功能;
这样的情况下,开一个 vim 里头有两个窗口的环境,就有需要啦!那么如何开启新窗口呢? 很简单啊!
在指令列模式输入:『:sp {filename}』,那个 filename 可有可无, 如果想要在新窗口启动另一个档案,
就加入档名,否则仅输入 :sp 时, 出现的则是同一个档案在两个窗口间!例如鸟哥使用 vim hosts 后,
再以 :sp /etc/hosts ,
结果出现如下图示:
怎样?帅吧!两个档案同时在一个屏幕上面显示,您还可以利用『[ctrl]+w+j』及『[ctrl]+w+k』 在两个
窗口之间移动呢!这样的话,复制啊、查阅啊等等的,就变的很简单啰~ 指令的功能有很多,不过,您只
要记得这几个就好了:
vim 环境设定
有没有发现,
如果我们以 vim 软件来搜寻一个档案内部的某个字符串时,
这个字符串会被反白,
而下次
我们再次以 vim 编辑这个档案时,
该搜寻的字符串还是存在呢!
甚至于, 编辑其它档案时,如果其它档
案也存在这个字符串,哇!!
竟然还是主动反白耶!
另外,当我们重复编辑同一个档案时,当第二次进入
该档案时, 光标竟然就在上次离开的那一行上头呢!
真是好方便啊~但是,怎么会这样呢?
这是因为我们的 vim 会主动的将您曾经做过的行为登录下来,好让您下次可以轻松的作业啊!
那个记录
动作的档案就是: ~/.viminfo 这个档案啦!
每个人的家目录都应该会存在这个档案才对~这个档案是自
动产生的, 您不必自行建立。
而你在 vim 里头所做过的动作,就可以在这个档案内部查询到啰~ ^_^
此外,某些 distributions 的 vim 当中,利用搜寻时,他并不会显示反白, 有些 distributions 则会
主动的帮您进行缩排的行为 (所谓的缩排, 就是当您按下 Enter 编辑新的一行时,光标不会在行首,而
是在与上一行的第一个非空格符处对齐!)。
这些其实都可以进行设定的,那就是 vim 的环境设定啰~ vim
的环境设定参数有很多,如果您想要知道目前的设定值,可以在一般模式时输入:『 :set all 』 来查阅,
不过…..设定项目实在太多了~所以,鸟哥在这里仅列出一些平时比较常用的一些简单的设定值, 提供
给您参考啊:
linux 复习笔记 – zip&unzip
ZIP
选项
-A:调整可执行的自动解压缩文件; -b<工作目录>:指定暂时存放文件的目录; -c:替每个被压缩的文件加上注释;-d:从压缩文件内删除指定的文件; -D:压缩文件内不建立目录名称;-f:此参数的效果和指定“-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中; -F:尝试修复已损坏的压缩文件; -g:将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件; -h:在线帮助; -i<范本样式>:只压缩符合条件的文件; -j:只保存文件名称及其内容,而不存放任何目录名称; -J:删除压缩文件前面不必要的数据; -k:使用MS-DOS兼容格式的文件名称;-l:压缩文件时,把LF字符置换成LF+CR字符; -ll:压缩文件时,把LF+cp字符置换成LF字符; -L:显示版权信息; -m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中; -n<字尾字符串>:不压缩具有特定字尾字符串的文件; -o:以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同; -q:不显示指令执行过程; -r:递归处理,将指定目录下的所有文件和子目录一并处理; -S:包含系统和隐藏文件; -t<日期时间>:把压缩文件的日期设成指定的日期; -T:检查备份文件内的每个文件是否正确无误; -u:更换较新的文件到压缩文件内; -v:显示指令执行过程或显示版本信息; -V:保存VMS操作系统的文件属性; -w:在文件名称里假如版本编号,本参数仅在VMS操作系统下有效; -x<范本样式>:压缩时排除符合条件的文件; -X:不保存额外的文件属性; -y:直接保存符号连接,而非该链接所指向的文件,本参数仅在UNIX之类的系统下有效; -z:替压缩文件加上注释; -$:保存第一个被压缩文件所在磁盘的卷册名称; -<压缩效率>:压缩效率是一个介于1~9的数值。
参数
-
zip压缩包:指定要创建的zip压缩包;
-
文件列表:指定要压缩的文件列表。
实例
将/home/Blinux/html/
这个目录下所有文件和文件夹打包为当前目录下的html.zip:
zip -q -r html.zip /home/Blinux/html
上面的命令操作是将绝对地址的文件及文件夹进行压缩,以下给出压缩相对路径目录,比如目前在Bliux这个目录下,执行以下操作可以达到以上同样的效果:
zip -q -r html.zip html
比如现在我的html目录下,我操作的zip压缩命令是:
zip -q -r html.zip *
UNZIP
-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换;-f:更新现有的文件;-l:显示压缩文件内所包含的文件; -p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换; -t:检查压缩文件是否正确; -u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中; -v:执行时显示详细的信息; -z:仅显示压缩文件的备注文字;-a:对文本文件进行必要的字符转换; -b:不要对文本文件进行字符转换; -C:压缩文件中的文件名称区分大小写; -j:不处理压缩文件中原有的目录路径; -L:将压缩文件中的全部文件名改为小写; -M:将输出结果送到more程序处理; -n:解压缩时不要覆盖原有的文件; -o:不必先询问用户,unzip执行后覆盖原有的文件; -P<密码>:使用zip的密码选项; -q:执行时不显示任何信息;-s:将文件名中的空白字符转换为底线字符; -V:保留VMS的文件版本信息; -X:解压缩时同时回存文件原来的UID/GID;-d<目录>:指定文件解压缩后所要存储的目录; -x<文件>:指定不要处理.zip压缩文件中的哪些文件; -Z:unzip-Z等于执行zipinfo指令。
参数
压缩包:指定要解压的“.zip”压缩包。
实例
将压缩文件text.zip在当前目录下解压缩。
unzip test.zip
将压缩文件text.zip在指定目录/tmp
下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
unzip -n test.zip -d /tmp
查看压缩文件目录,但不解压。
unzip -v test.zip
将压缩文件test.zip在指定目录/tmp
下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件。
unzip -o test.zip -d tmp/
linux 复习笔记 – 用户与用户组
第一个属性代表这个档案是『目录、档案或连结文件等等』:
当为[ d ]则是目录,例如上表的第 11 行;
当为[ – ]则是档案,例如上表的第 5 行;
若是[ l ]则表示为连结档(link file);
若是[ b ]则表示为装置文件里面的可供储存的接口设备;
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标。
需要特别留意的是 x 这个标号! 若文件名为一个目录的时候,例如上表中的 .ssh 这
个目录
可以看到这是一个目录,而且只有 root 可以读写与执行。但是若为底下的样式时,请问非 root 的其它人是否可以进入该目录呢?
咦!似乎好像是可以喔!因为有可读[ r ]存在嘛!『错!』答案是非 root 这个账号的其它使用者均不可进入 .ssh 这个目录,为什么呢?
因为 x 与 目录 的关系相当的重要, 如果在该目录底下不能执行任何指令的话,那么自然也就无法进入了。
如何改变档案权限
chgrp :改变档案所属群组
chown :改变档案所属人
chmod :改变档案的属性、 SUID、等等的特性
r:4
w:2
x:1