linux 部分命令简单使用介绍-ssh、scp、less、tail、find、grep(持续添加)

时间:2023-12-10 22:30:14

ssh

加密的网络协议,提供客户-服务模式。

登录
                        ssh username@ip
                        ssh ip #不提供用户名是默认使用当前用户的用户名
                        -C选项:数据在传输过程中被压缩
                        -p+端口号:指定端口号(默认端口号22)
                        -v选项:调试模式
                        -F+文件路径:使用指定的配置文件

参考:https://linux.cn/article-2933-1.html

scp

和cp一样用来实现文件的复制功能,但是主要是用在不同的linux系统之间。有security的文件复制,基于ssh登录
                cp [OPTIONS] file_source file_target
                        -r选项:源有目录,递归复制
                        -f选项:force,覆盖同名目录
                scp [OPTIONS] file_source file_target
                        -v选项:显示状态
                        -C选项:使用压缩
                        -P选项:选择端口
        例子:
                从本地到远端 scp /file/from.txt username@ip:/file/to.txt
                从远端到本地 scp username@ip/file/from.txt /file/to.txt

less
        和more一样用来查看文件内容,但是功能更加强大一些。支持前后翻页和前后查找。而且less在查看之前不会加载整个文件,最大文件处理更快。
                less [OPTIONS] file
                -b <缓冲区大小>:设置缓冲区
                -e :结束自动离开
                -f :强迫打开特殊文件,设备,目录和二进制文件
                -i :忽略搜索时的大小写
                -N :显示每行的行号
                打开后可以使用的命令
                        / <word> :向前搜索
                        n :下一个
                        N :上一个
                        ? <word> :向后搜索
                        j :向下一行
                        k :向上一行
                        G :到最后一行
                        g :到第一行
                        u :向上一页
                        d :向下一页
                        v :进入编辑模式

tail
        显示指定文件的末尾内容。
                tail [OPTIONS] file
                -f 循环读取
                -q 不显示处理信息
                -n :显示行数
                --pid=PID 与-f合用,表示在进程ID为PID的进程结束后一起结束
                -s :与-f合用,表示每次反复的间隔休眠秒数

find
        在指定目录下根据指定规则查找文件
                find [dir dir ...] [OPTIONS] [-exec command {} \;]
                -name <文件名> :要查找的文件名,可以使用glob规则
                glob :'*' 统配任意字符
                          '?' 统配任意一个字符
                         '[abc]' 统配括号中的任意一个字符
                         '[a-c1-9]' 统配括号内字符范围中的任意一个字符
                -atime n|-n|+n :最后访问时间等于n|小于n|大于n
                -mtime n|-n|+n :最后修改内容时间
                -ctime n|-n|+n :最后修改属性时间(也就是i节点信息修改时间)
                -type :根据文件类型查找
                       f :普通文件
                      d :目录
                       l :链接
                      b :块设备文件
                      c :字符设备
                      p :管道
                      s :socket文件
                -size 2M|+2M|-2M :根据大小找文件(大小为2M|大于2M|小于2M)

[exec command {} \;] :在查找结果上执行操作,command是要执行的操作,{}占位,可以理解为find的结果放在这里,\;是结束标志,\前有空格
                也可以使用xargs或``实现
                        find [] [] [exec command {} \;]
                        find [] [] | xargs command
                        command `find [] []`

grep
        grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
        grep [OPTIONS] str_to_search filename
                -a :将二进制文件以text文件的方式查找
                -c :输出匹配行的行数
                -i :忽略大小写
                -n :在输出时输出行号
                -v :反向选择,输出没有匹配的行
                str_to_search可以使用正则表达式(上面提到的glob是一种简化的正则)
                        [^abc] :反向选择,不能是a,b,c
                        [abc] :abc中的一个
                        [a-z1-9] :a-z和1-9中的一个
                        ^ :行首
                        $ :行尾
                        . :任意一个字符
                        * :任意多个字符,包括零个
                        {} :限定重复次数,'{','}'两个符号在shell中有特别的含义,所以要用'\'使其失去特殊含义
                        o\{2\} :o重复两次
                        o\{2,5\} :o重复两次到五次
                        o\{2,\} :o重复两次以上

参考:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856896.html

curl
        使用URL语法在命令行下完成文件传输。
        curl [OPTIONS] url
                -o [file_name]:将文件保存到file_name中
                -O :按URL中文件名保存文件
                -L :强制重定向
                -C :断点续传
                -u username:password :提供用户名密码
                -v :查看所有工作过程输出
                --data-urlencode ""|@filename :使用post方式
        例子:
        获取FTP服务器文件
                curl -O ftp://ftp_server/xxx.php
        上传文件到FTP服务器
                curl -T myfile.txt ftp://ftp.server.com
        参考:http://www.cnblogs.com/gbyukg/p/3326825.html

strace
        跟踪进程执行时的系统调用和所接受的信号。
                -c :统计每一个系统调用的执行时间,次数和出错次数
                -f :跟踪由fork调用产生的子进程
                -ff :如果提供了-o filename,则所有进程对的跟踪结果输出到相应的filename.pid中,pid是各进程的进程号
                -F :跟踪vfork调用
                -p [pid] :跟踪进程pid
                -e :通过这个参数可以定制跟踪
                                reace=open,close :只跟踪指定系统调用
                               trace=file :只跟踪文件有关的系统调用
                               trace=process :只跟踪进程控制相关系统调用
                               trace=network :只跟踪网络有关系统调用
                               trace=signal :只跟踪系统信号相关系统调用
                               ...还有一些现查吧

ulimit
        linux系统內建功能,用于对有它生成的shell进程及其子进程的资源使用设置限制,包括所创建内核文件大小、进程数据块大小、shell进程创建文件的大小、内存锁大小、常驻内存集大小、打开文件描述符的数量、分配堆栈的最大大小、CPU时间、单个用户所能使用的最大虚拟内存。
        **(作用范围)ulimit限制的是当前shell进程及其子进程;因此可以通过shell配置文件作用于相应的shell
        ulimit [OPTIONS] [limit]
                -a :显示当前所有的limit信息
                -c :设置最大core文件大小,单位blocks(512B)
                -d :进程最大数据段大小,单位blocks
                -f :进程可以创建文件的最大值,单位blocks
                -l :最大可加锁内存大小,单位KB
                -m :最大内存大小
                -n :最大可以打开的文件描述符
                -p :管道缓冲区大小,单位KB
                -s :线程栈大小,单位KB
                -t :最大的CPU占用时间,单位秒
                -u :用户最大可用进程数
                -v :进程最大可用虚拟内存,单位KB
        例:
        对core文件大小不做限制
                ulimit -c unlimited 
        参考:http://blog.csdn.net/wanghai__/article/details/6332540

core dump
        作用:一种诊断和调试程序错误的方式。当程序运行异常终止或崩溃时,操作系统将程序当时的内存状态、寄存器信息(程序指针,栈指针)、内存管理信息和操作系统状态等信息保存到一个文件,这就叫Core Dump。通过ulimit -c可以查看当前终端允许保存的core文件的最大的大小,如果为零,则不会输出core文件。可以通过ulimit -c unlimited改为不设大小设置或直接改为某一值。
        使用:可以通过gdb查看core文件
                1. 使用gcc -g 参数编译程序,生成调试信息
                2. 运行程序,崩溃时会默认在执行文件目录下生成core文件
                3. 使用gdb ./exefielname corefilename 查看core文件
        参考:http://www.cnblogs.com/hazir/p/linxu_core_dump.html