设为首页 收藏本站
查看: 1414|回复: 0

[经验分享] Linux摘录笔记(一)

[复制链接]
累计签到:161 天
连续签到:1 天
发表于 2016-10-21 13:53:39 | 显示全部楼层 |阅读模式
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选项,{}也表示要操作的文件


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-289342-1-1.html 上篇帖子: Kickstart一键安装 下篇帖子: Centos 7关于rc.local脚本命令开机不执行及指定用户启动的解... 编辑器 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表