TMOUT0HISTSIZE100timedatectl查看系统时间timedatectl list-timezones列出可用时区stat查看文件详情访问时间文件修改时间文件属性修改时间lsblk显示存储设备信息vi注意vi有个可怕的地方如果文件很大会把所有内容加载到内存中导致服务器瘫痪因此查看文件推荐使用less tail more命令。:set nu 显示行号:set ignorecase 忽略大小写 :set ic:set showmatch 设置匹配模式:set hlsearch 高亮显示搜索结果/ 向后搜索向前搜索i 当前光标插入a 当前光标下一个字开始插入o 插入新的行ZZ 连按2次Z键 将当前正在编辑的文件保存并退出u 取消前一次的操作ctrlr 恢复撤销的操作dd 删除光标所在行ndd 删除光标所在的向下n行d1G 删除光标所在到第一行的所有内容dG删除光标所在到最后一行的所有数据cat用于查看合并文件内容cat file1.txt file2.txt combined.txt 合并文件head-10 file打印文件的开头10行tail文件名默认打印文件的最后10行-f 循环读取-n 20 显示最后20行-n 5 从第五行开始显示查看前100行cat test.log |head -n 100查看后100行cat test.log |tail -n 100more显示文件内容每次显示一屏按space键显示下一屏按enter键显示下一行按B键显示上一屏/pattern 从匹配到的内容前两行开始显示按H键显示帮助less分页显示文件支持滚动翻页搜索标记与more类似使用less可以随意浏览文件而more仅能向前移动不能向后移动-N 显示行号搜索在less命令中可以使用/正向搜索反向搜索按n跳转到下一个匹配项标记在less命令中可以使用m命令来标记某一行如m 10,标记之后可以使用命令来跳转到标记的行如 aa是标记的名称。ls-h human readable-l long list format-r reverse order-S sort by size-t sort by time-R list subdirectories recursively常用 ls-lrtfindfind 目录 -选项 动作[-print -exec]-L 注意find遇到软连接不会递归进入加上-L 选下即可(不能跟type混用)-i 忽略大小-size 根据文件大小搜索-atime 访问时间 -7查找7天内访问的文件-mtime 修改时间 7查找7天前被修改的-type 文件类型 l 软连接-a 且-o 或-exec 对匹配的文件执行命令格式-exec command {} \; 为每个找到的结果执行命令。注意{} 和 \ 之间的空格注意 {} 是占位符代表find找到的每个文件 \;代表结束-exec命令告知find命令参数已结束这里的分号不能少反斜杠类似于转义字符。还有一种语法格式如下-exec command {} 表示对所有结果参数执行命令一次注意command只执行一次例 find /tmp -mtime 30 -exec rm -rf {} \;这种方式文件名有空格等特殊字符也可以处理。find . -name *.gz -exec zgrep -H test {} \;说明-H 显示每个匹配的文件名find . -name *.gz|xargs zgrep testfind 的-print0选项告诉find 命令在输出文件名时不要用传统的换行符作为分隔符而使用空字符NULL character \0来分割xargs用于处理大量输入数据并将之传递给其他命令-n 控制单次参数数量默认xargs会尽可能多的将参数塞进一次命令调用中直到达到系统限制但有时下游命令本身限制了能接受的参数数量。-I 指定替换字符串指定参数的占位符默认占位符是{}默认xargs会将所有参数附加在命令的末尾。但如果我们需要将参数插入到命令的中间位置就需要-I选项它允许我们定义一个占位符默认占位符是{}但可以是任何字符xargs就会用标准输入读取的每一项来替换这个占位符。举例ls *.bak|xargs -I {} mv {} /tmp/{}重要提示当使用-I时xargs的执行模式会发生变化它不再进行参数批处理而是对输入的每一行执行一次命令。这会降低性能类似于 find -exec注意:要删除带有空格的文件名必须要指定 -I {}find -mtime -1 |xargs -I {} rm -rf {}因为xargs它默认使用空格制表符和换行符来分割输入所以文件名本身有空格就要特别注意。还有一个终极解决方案find 的-print0选项和xargs的-0选项。find 的-print0选项告诉find 命令在输出文件名时不要用传统的换行符作为分隔符而使用空字符NULL character \0来分割xargs的-0选项告诉xargs不要使用空格或换行符来解析输入而是以空字符\0作为唯一的分隔符。grep-i 忽略大小写-r 递归目录-H 显示文件名-v 反转匹配-n 显示行号-F 精确匹配不使用正则避免[] . *这些符号被误认为正则表达式-E 正则表达式例如 grep -E word1|word2|word3 file.txt-A # 显示匹配结果之后的#行-B # 显示匹配结果之前的#行-C # 显示匹配结果前#行和后#行sort-t 分隔符-r 反向排序-u 去重-k 以哪个字段排序默认第一个字段,-n 排序类型数字举例sort -k3nr k3按第三个字段倒序排序uniq经常和sort合用为了uniq起作用必须先排序。cp-f force-p 保留原文件的属性作者权限时间-r 递归复制scpscp 文件名 用户名目标IP:目标路径touch修改指定文件的时间标签如果文件不存在则建立一个空的新文件lu软连接lu -s /dev/test /app/testdir 创建软连接tar -zcvf压缩包名 待压缩文件目录dudu -sh *du -sh .-a 显示全部目录和子目录下的每个档案占用的磁盘空间-h human readable-s 只显示各档案大小的综合--exclude 略过制定文件夹或目录示例du -ahx /home |awk $1 /(^.G|..G)/说明 ^ 匹配输入字符串的开始位置. 匹配除换行符之外的任意单个字符选择用圆括号将所有选择项括起来相邻选项用 | 分割df -h 目录 显示目录对应的文件系统及大小crontab格式 min hour day month week command通配符* 代表所有可能的值如果min 是星号表示满足其他字段条件后每分钟都执行- 指定一个范围如5-9 表示56789/ 指定时间的间隔频率如分钟是 */10 表示每10分钟执行一次crontab -l 查看crontab -e 编辑sed非交互式编辑器sed选项-i 直接修改不在屏幕上输出-n 使用安静模式sed定位sed /REGEXP/ 通过//之间的正则来匹配\cREGEXPc 当匹配的内容力有/时通过 \c 和 c之间的正则来匹配c可以是任意字符操作命令p 打印匹配行sed -n /aaa/p test.txtsed -n 1,3p 文件名 打印指定行d 删除匹配行sed -i /yao/dsed -i /3d 删除第三行s 替换匹配内容sed -i s/aaa/xxx/gc 替换整行a 在当前行后添加一行sed -i /yao/a tiredi 在当前刚之前插入sed -i /yao/i tiredn 指的是从匹配的下一行开始处理n 2 从匹配的第二行sed -i /aaa/{n;s/bbb/ccc/} test.txtsed单引号和双引号的区别双引号可以使用shell变量单引号不行awk主要用来格式化是一个强大的文本分析工具把文件逐行读入默认以空格切片并处理awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ fileawk /pattern/ {action} filenamepattern 表示正则用//括起来action 用{} 括起来省略pattern表示对所有行执行action省略action表示对符合条件的行执行默认print动作action 可以有多个语句以号隔开-F 分隔符默认空格内置变量$0 当前记录$1 ~ $n 当前记录的第n个字段NF 统计总字段数/pattern/ 匹配代码块/pattern/ 纯字符匹配awk /mysql/{print $0} /etc/passwd!/pattern/ 纯字符不匹配awk !/mysql/{print $0} /etc/passwd //输出不匹配mysql的行~/pattern/ 字段值匹配awk -F: $1~/mail/{print $1} /etc/passwd //第一个字段$1匹配指定内容才显示!~/pattern/ 字段值不匹配awk -F: $1!~/mail/{print $1} /etc/passwd //不匹配cat /etc/passwd |awk -F : {print $1}cat /etc/passwd |awk -F : {print $1\t$7}cat /etc/passwd |awk -F : BEGIN {print name,shell} {print $1,$7} END {print blue,/bin/nosh}awk工作流程是这样的先执行BEGING然后读取文件读入有/n换行符分割的一条记录然后将记录按指定的域分隔符划分域填充域$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完最后执行END操作。tr命令transform 用于字符转换 替换和删除,其功能类似于sed命令但只能对stdin操作不能直接对文件操作tr set1 set2 用set2中的字符替换set1中字符tr _d set1 删除字符串
linux常用命令 编辑
TMOUT0HISTSIZE100timedatectl查看系统时间timedatectl list-timezones列出可用时区stat查看文件详情访问时间文件修改时间文件属性修改时间lsblk显示存储设备信息vi注意vi有个可怕的地方如果文件很大会把所有内容加载到内存中导致服务器瘫痪因此查看文件推荐使用less tail more命令。:set nu 显示行号:set ignorecase 忽略大小写 :set ic:set showmatch 设置匹配模式:set hlsearch 高亮显示搜索结果/ 向后搜索向前搜索i 当前光标插入a 当前光标下一个字开始插入o 插入新的行ZZ 连按2次Z键 将当前正在编辑的文件保存并退出u 取消前一次的操作ctrlr 恢复撤销的操作dd 删除光标所在行ndd 删除光标所在的向下n行d1G 删除光标所在到第一行的所有内容dG删除光标所在到最后一行的所有数据cat用于查看合并文件内容cat file1.txt file2.txt combined.txt 合并文件head-10 file打印文件的开头10行tail文件名默认打印文件的最后10行-f 循环读取-n 20 显示最后20行-n 5 从第五行开始显示查看前100行cat test.log |head -n 100查看后100行cat test.log |tail -n 100more显示文件内容每次显示一屏按space键显示下一屏按enter键显示下一行按B键显示上一屏/pattern 从匹配到的内容前两行开始显示按H键显示帮助less分页显示文件支持滚动翻页搜索标记与more类似使用less可以随意浏览文件而more仅能向前移动不能向后移动-N 显示行号搜索在less命令中可以使用/正向搜索反向搜索按n跳转到下一个匹配项标记在less命令中可以使用m命令来标记某一行如m 10,标记之后可以使用命令来跳转到标记的行如 aa是标记的名称。ls-h human readable-l long list format-r reverse order-S sort by size-t sort by time-R list subdirectories recursively常用 ls-lrtfindfind 目录 -选项 动作[-print -exec]-L 注意find遇到软连接不会递归进入加上-L 选下即可(不能跟type混用)-i 忽略大小-size 根据文件大小搜索-atime 访问时间 -7查找7天内访问的文件-mtime 修改时间 7查找7天前被修改的-type 文件类型 l 软连接-a 且-o 或-exec 对匹配的文件执行命令格式-exec command {} \; 为每个找到的结果执行命令。注意{} 和 \ 之间的空格注意 {} 是占位符代表find找到的每个文件 \;代表结束-exec命令告知find命令参数已结束这里的分号不能少反斜杠类似于转义字符。还有一种语法格式如下-exec command {} 表示对所有结果参数执行命令一次注意command只执行一次例 find /tmp -mtime 30 -exec rm -rf {} \;这种方式文件名有空格等特殊字符也可以处理。find . -name *.gz -exec zgrep -H test {} \;说明-H 显示每个匹配的文件名find . -name *.gz|xargs zgrep testfind 的-print0选项告诉find 命令在输出文件名时不要用传统的换行符作为分隔符而使用空字符NULL character \0来分割xargs用于处理大量输入数据并将之传递给其他命令-n 控制单次参数数量默认xargs会尽可能多的将参数塞进一次命令调用中直到达到系统限制但有时下游命令本身限制了能接受的参数数量。-I 指定替换字符串指定参数的占位符默认占位符是{}默认xargs会将所有参数附加在命令的末尾。但如果我们需要将参数插入到命令的中间位置就需要-I选项它允许我们定义一个占位符默认占位符是{}但可以是任何字符xargs就会用标准输入读取的每一项来替换这个占位符。举例ls *.bak|xargs -I {} mv {} /tmp/{}重要提示当使用-I时xargs的执行模式会发生变化它不再进行参数批处理而是对输入的每一行执行一次命令。这会降低性能类似于 find -exec注意:要删除带有空格的文件名必须要指定 -I {}find -mtime -1 |xargs -I {} rm -rf {}因为xargs它默认使用空格制表符和换行符来分割输入所以文件名本身有空格就要特别注意。还有一个终极解决方案find 的-print0选项和xargs的-0选项。find 的-print0选项告诉find 命令在输出文件名时不要用传统的换行符作为分隔符而使用空字符NULL character \0来分割xargs的-0选项告诉xargs不要使用空格或换行符来解析输入而是以空字符\0作为唯一的分隔符。grep-i 忽略大小写-r 递归目录-H 显示文件名-v 反转匹配-n 显示行号-F 精确匹配不使用正则避免[] . *这些符号被误认为正则表达式-E 正则表达式例如 grep -E word1|word2|word3 file.txt-A # 显示匹配结果之后的#行-B # 显示匹配结果之前的#行-C # 显示匹配结果前#行和后#行sort-t 分隔符-r 反向排序-u 去重-k 以哪个字段排序默认第一个字段,-n 排序类型数字举例sort -k3nr k3按第三个字段倒序排序uniq经常和sort合用为了uniq起作用必须先排序。cp-f force-p 保留原文件的属性作者权限时间-r 递归复制scpscp 文件名 用户名目标IP:目标路径touch修改指定文件的时间标签如果文件不存在则建立一个空的新文件lu软连接lu -s /dev/test /app/testdir 创建软连接tar -zcvf压缩包名 待压缩文件目录dudu -sh *du -sh .-a 显示全部目录和子目录下的每个档案占用的磁盘空间-h human readable-s 只显示各档案大小的综合--exclude 略过制定文件夹或目录示例du -ahx /home |awk $1 /(^.G|..G)/说明 ^ 匹配输入字符串的开始位置. 匹配除换行符之外的任意单个字符选择用圆括号将所有选择项括起来相邻选项用 | 分割df -h 目录 显示目录对应的文件系统及大小crontab格式 min hour day month week command通配符* 代表所有可能的值如果min 是星号表示满足其他字段条件后每分钟都执行- 指定一个范围如5-9 表示56789/ 指定时间的间隔频率如分钟是 */10 表示每10分钟执行一次crontab -l 查看crontab -e 编辑sed非交互式编辑器sed选项-i 直接修改不在屏幕上输出-n 使用安静模式sed定位sed /REGEXP/ 通过//之间的正则来匹配\cREGEXPc 当匹配的内容力有/时通过 \c 和 c之间的正则来匹配c可以是任意字符操作命令p 打印匹配行sed -n /aaa/p test.txtsed -n 1,3p 文件名 打印指定行d 删除匹配行sed -i /yao/dsed -i /3d 删除第三行s 替换匹配内容sed -i s/aaa/xxx/gc 替换整行a 在当前行后添加一行sed -i /yao/a tiredi 在当前刚之前插入sed -i /yao/i tiredn 指的是从匹配的下一行开始处理n 2 从匹配的第二行sed -i /aaa/{n;s/bbb/ccc/} test.txtsed单引号和双引号的区别双引号可以使用shell变量单引号不行awk主要用来格式化是一个强大的文本分析工具把文件逐行读入默认以空格切片并处理awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ fileawk /pattern/ {action} filenamepattern 表示正则用//括起来action 用{} 括起来省略pattern表示对所有行执行action省略action表示对符合条件的行执行默认print动作action 可以有多个语句以号隔开-F 分隔符默认空格内置变量$0 当前记录$1 ~ $n 当前记录的第n个字段NF 统计总字段数/pattern/ 匹配代码块/pattern/ 纯字符匹配awk /mysql/{print $0} /etc/passwd!/pattern/ 纯字符不匹配awk !/mysql/{print $0} /etc/passwd //输出不匹配mysql的行~/pattern/ 字段值匹配awk -F: $1~/mail/{print $1} /etc/passwd //第一个字段$1匹配指定内容才显示!~/pattern/ 字段值不匹配awk -F: $1!~/mail/{print $1} /etc/passwd //不匹配cat /etc/passwd |awk -F : {print $1}cat /etc/passwd |awk -F : {print $1\t$7}cat /etc/passwd |awk -F : BEGIN {print name,shell} {print $1,$7} END {print blue,/bin/nosh}awk工作流程是这样的先执行BEGING然后读取文件读入有/n换行符分割的一条记录然后将记录按指定的域分隔符划分域填充域$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完最后执行END操作。tr命令transform 用于字符转换 替换和删除,其功能类似于sed命令但只能对stdin操作不能直接对文件操作tr set1 set2 用set2中的字符替换set1中字符tr _d set1 删除字符串