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