|
1.Vim编辑器
vim -O2 file1 file2 # 垂直分屏
vim -on file1 file2 # 水平分屏
vim + file #打开文件并且光标的位置在文件末尾
vim +n file #打开文件并且光标的位置在第n行,修改文件时很有用
vim -r filename #打开上次vi编辑时发生崩溃的filename,否则需要删除隐藏的备份文件
vim +/pattern filename #打开文件并将光标置于第一个与patter匹配的处,并且会高亮显示匹配的字符串
Ctrl+W [操作] # 切屏操作
:n # 编辑下一个文件
:2n # 编辑下二个文件
:N # 编辑前一个文件
:rew # 回到首文件
200G # 跳转到第200行,也可以使用:200来完成此功能
$ #将光标移至当前行的行尾
0 #将光标移至当前行的行首
H: #将光标移至屏幕的顶行
M: #将光标移至屏幕的中间行
L: #将光标移至屏幕的末行
:set autoindent # 设置自动缩进,对编辑shell脚本有帮助
:set binary # 改为unix格式,可以使用该方法将window文本格式改成unix脚本格式。也可以使用dos2unix
:X # 文档加密,使得其他用户需要输入口令才可编辑、查看。
ctrl+ U # 向前翻页
ctrl+ D # 向后翻页
g/^$/d #删除文本中的空白行
:20,30 s/^/#/g #第20到30行用 # 注释掉
:20,30 s/^#//g #取消注释
:1,$ s/^/#/g #第1行到结尾用 # 注释掉
:1,$ d/^#/g #删除以#号注释的行
剪切一行:dd
剪切当前行光标所在的位置到行尾:d$
剪切当前行光标所在的位置到行首:d^
剪切切三行:3dd,即从当前行+下两行被剪切了。
2.剪切1-10行到20行
2.归档解压缩
tar tvzf gz.tar.gz # 查看gz下面的文件列表,使用-v选项可以显示文件列表的属性信息
tar xvf 1.tar -C 目录 # 解包tar
tar -cvf 1.tar * # 打包tar
tar tvf 1.tar # 查看tar
tar -rvf 1.tar 文件名 # 给tar追加文件
tar --exclude=/home/dmtsai -zcvf myfile.tar.gz /home/* /etc # 打包/home, /etc ,但排除 /home/dmtsai
3.sed流编辑
sed G #在每一行后面增加一空行
sed 10q # 显示文件中的前10行 (模拟"head")
sed -n '$=' # 计算行数(模拟 "wc -l")
sed -n '5,/^no/p' # 打印从第5行到以no开头行之间的所有行
sed -i '/aaa/,$d' # 删除匹配行到文本末尾,-i选项表示是对操作的文本直接操作,会改变文本内容。
sed -i "s/=/:/g" passwd # 直接对文本替换,如果不加g的话只对每一行的第一个=号进行替换
sed -i "/^pearls/s/$/j/" # 找到pearls开头在行尾加j,$符号,可以作为文本末尾,也可以作为行尾。
sed -n '/1/,/3/p' # 打印包含在1和3之间的行,不能缺省-n选项,否则会出现将原文本的内容与截取的行同时打印
# (-n)选项和p标志一起使用表示只打印那些发生替换的行。
sed -n '1p' 文件 # 取出指定行
sed '5i\aaa' file # 在第5行插入行
sed '5a\aaa' file # 在第5行之后抽入行
sed -e '/a/i\b' # 在匹配行前插入一行,-e选项可以用来执行多个指令来完成一系列操作,此处可以省略
sed -e '/a/a\b' # 在匹配行后插入一行
sed 's/a/&\nb/g' # 在匹配行后插入一行,&表示代表查找的串内容,\n表示的是换行符
sed 's/^192.168.0.1/&localhost/' example #&符号表示替换换字符串中被找到的部份。所有以192.168.0.1开头的行都会被替换成它自已加 localhost,变成192.168.0.1localhost。
sed -n '/regexp/!p' # 只显示不匹配正则表达式的行
sed '/regexp/d' # 只显示不匹配正则表达式的行
sed '/baz/s/foo/bar/g' # 只在行中出现字串"baz"的情况下将"foo"替换成"bar"
sed '/baz/!s/foo/bar/g' # 将只在行中未出现字串"baz"的情况下替换"foo"成"bar"
sed -e 's/a/#&/g' # 在a前面加#号
sed 's/foo/bar/4' # 只替换每一行中的第四个出现的字串,如sed 's/:/=/' passwd
sed -e '1,5d' -e 's/test/check/' example #(-e)选项允许在同一行里执行多条命令。如例子所示,第一条命令删除1至5行,第二条命令用check替换test。命令的执 行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。
sed 'n;d' # 删除所有偶数行,n选项表示读取下一行
sed 'G;G' # 在每一行后面增加两空行
sed '/^$/d;G' # 在输出的文本中每一行后面将有且只有一空行
sed 'n;n;n;n;G;' # 在每5行后增加一空白行
sed -n '3,${p;n;n;n;n;n;n;}' # 从第3行开始,每7行显示一次
ls -l|sed -n '/^.rwx.*/p' # 查找属主权限为7的文件
sed '/test/r file' example #file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面。
sed -n '/test/w file' example #在example中所有包含test的行都被写入file里。
4.grep命令
grep ‘energywise’ * #在当前目录搜索带'energywise'行的文件
如:grep -l 'dt_个险_险种_增量.log' *.sh 在当前目录下查找以.sh结尾的包含“dt_个险_险种_增量.log”的文件,并显示出文件名字
grep -r ‘energywise’ * #在当前目录及其子目录下搜索'energywise'行的文件
grep -l -r ‘energywise’ * #在当前目录及其子目录下搜索'energywise'行的文件,但是不显示匹配的行,只显示匹配的文件
grep -l -r '续期收费*' /root/shell 在/root/shell及其子文件夹中查找包含“续期收费”的文件,并将路径打印出来
5.find 命令
find查找{
# linux文件无创建时间
# Access 使用时间
# Modify 内容修改时间
# Change 状态改变时间(权限、属主)
# 时间默认以24小时为单位,当前时间到向前24小时为0天,向前48-72小时为2天
# -and 且 匹配两个条件 参数可以确定时间范围 -mtime +2 -and -mtime -4
# -or 或 匹配任意一个条件
find /etc -name http # 按文件名查找
find . -type f # 查找某一类型文件,可以用来查询当前目录下所有的目录,如: find . -type d
find / -perm # 按照文件权限查找,查询当前目录下权限为644的文件或目录 如: find . -perm 644 | xargs ls -ld
find / -user # 按照文件属主查找
find / -group # 按照文件所属的组来查找文件
find / -atime -n # 文件使用时间在N天以内,可以使用stat filename 来查看文件的详细的时间选项,之内的是-号,之前的是+号
find / -atime +n # 文件使用时间在N天以前
find / -mtime -n # 文件内容改变时间在N天以内
find / -mtime +n # 文件内容改变时间在N天以前
find / -ctime +n # 文件状态改变时间在N天前
find / -ctime -n # 文件状态改变时间在N天内
find 路径 -name *name1* -or -name *name2* # 查找任意一个关键字
for i in `seq 100`;do touch foo$i;done 将for循环写在一行
find /usr -not(-user root -o -user bin -o -user student) #查找/usr目录下不属于root,bin,或student的文件
find /usr -not -user root -a -not -user bin -a -not -user student #查找/usr目录下不属于root,bin,或student的文件
find /etc -mtime -7 -a -not -user root -a -not -user student # 查找/etc目录下最近一周内内容修改过切不属于root及student用户的文件
find / -not -type d -a -nouser -exec rm -f {} #删出类型不是目录,而且没有属主的文件
find / -not -type d -a -nouser | xargs -i rm -f {} #删出类型不是目录,而且没有属主的文件
6.修改主机名:
vi /etc/hosts
vi /etc/sysconfig/network
7.查看当前系统支持的语言编码及修改语言编码的配220.181.111.188置文件:
locale
vi /etc/sysconfig/i18n
8.执行DNS域名解析服务器
vi /etc/resolv.conf
内容如下:
nameserver 192.168.100.6
nameserver 8.8.8.8
nameserver 8.8.6.6
注意:当我们安装完Linux操作系统以后是不能够使用ping www.baidu.com来测试是否连通外网,可能只是由于没有指定域名服务器。
ping 220.181.111.188 是可以ping通的,220.181.111.188 是百度的服务器的IP
9.配置sendmail的时候可通过编辑配置文件来群发邮件
vi /etc/aliases,并在结尾行加入 用户的组名: 用户名1,用户名2..
在创建用于接收邮件的用户名时,可以将-s选项指定为/sbin/nologin
如:groupadd mailtest
useradd -g mailtest -s /sbin/nologin zhanglei1
useradd -g mailtest -s /sbin/nologin zhanglei2
10.显示网络的接口信息:
ip addr show(类似于ifconfig)
为网络接口添加(删除)一个ip:
ip addr add(删除) 192.168.100.11/24 dev eth0
禁止和激活网卡接口:
ip link set eth1 down(up)
查看路由表的方法:
ip route show
11.扫描多个端口号:
nc -v -z -n -w 4 192.168.100.6 1-100
扫描端口号从1到100有哪个端口是开启的(succeeded)
-z 选项:一旦建立连接后马上断开,而不发送和接收任何数据。
-v 选项:打印详细输出信息。
-n 选项:直接使用IP 地址,而不使用域名服务器来查询其域名。
-w 选项:设置连接的超时时间,单位为秒。
-u 选项:使用UDP 建立连接。
上面命令无此(-u)设置,则表示使用TCP 建立连接。
使用nc -v -l 12345 < book_out.txt 在发送端启用12345 端口来发送文件内容
使用nc -v -n 12345 > book_in.txt 在接收端通过12345 端口来接收文件
12.使用yum安装了哪些程序包:
cat /var/log/yum.log
13.Linux 查看mx记录:
nslookup -query=mx 163.com
Windows 查看mx记录
nslookup -qt=mx 163.com
14.mount
-o options 主要用来描述设备或档案的挂接方式。
loop:用来把一个文件当成硬盘分区挂接上系统
mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom 挂载光盘的镜像文件
15.rpm:
使用rpm已经安装的软件查询
rpm -qf filename #查询一个已经安装的文件属于哪个软件包
rpm -ql 软件名 #查询安装的软件包安装到何处
rpm -qi 软件名 #查询一个已经安装的软件包的信息
rpm -qc 软件名 #查询一个已经安装的软件包的配置文件
rpm -qd 软件名 #查询一个已经安装软件的文档安装位置
rpm -qR 软件名 #查看一下已经安装软件所依赖的软件包及文件
未使用rpm安装的软件包查询,加入参数p
如 rpm -qpl filename.rpm 查看filename安装包安装到何处
16.有时不能通过管道来传送参数时,需要使用xargs命令来解决,xargs在执行命令时,如果需要对文件进行操作,需要使用-i选项,{}也表示要操作的文件
|
|