当前位置: 首页 > Linux

Linux常用命令学习记录

时间:2023-04-06 21:20:34 Linux

前言本文主要是一个学习帖,用来记录Linux上的一些常用命令,以供参考。查看文件内容cat从上到下读取文件内容cat[-AbEnTv]${FILE_NAME)cat-n/etc/issue将文件内容输出到标准输出并显示行号catfile1file2>file3file1file2文件的内容被逐一添加到file3中。tac从下往上读取文件内容。用法和catnl一样,都是加行号打印。默认情况下,空白行不显示行号。nl[-bnw]${FILE_NAME}nl-bafile1即使是空行显示行号nl-ba-nrzfile空行也显示行号,行号显示在字段的最右边,并且行号不需要加0来对齐more/less来逐页翻动文件。more${FILE_NAME}向下翻转文件less${FILE_NAME}向上/向下翻转文件头/尾获取文件的前几行或后几行head/tail[-nnumber]${FILE_NAME}head-n10file读取文件前十行内容tail-n10file读取文件后十行内容head-n-10file不打印文件后十行内容tail-n+100file只打印第100行后的内容tail-ffile打开文件并继续更新,直到ctrl+c退出。这个常用于查看最新的日志类型,检查命令是内置命令还是外部命令表示外部命令,alias表示命令别名设置name,builtin表示bash内置命令功能-p:如果name是外部命令,则显示完整的文件名-a:PATH路径中包含name的所有命令displayedcommandandfilequerywhichfindtheexecutionfile,Findthefullfilenameofthecommandwhich[-a]command#-a将列出在PATH目录中可以找到的所有命令,而不仅仅是第一个找到的命令whichifconfig#会在非root用户下搜索否,因为ifconfig位于/sbin/ifconfig下,非root用户的PATH不包含该路径,所以找不到whichcd#找不到,因为cd是内置的-in命令bashwhereis根据文件名搜索文件,findwhereis文件的完整文件名[-bmsu]文件或目录名-b只找二进制文件-m只找手动路径下的文件-s只findsourcesourcefiles-ufindotherspecialfilesnotintheaboveoptionslocate+updatedblocate会根据/var/lib/mlocate中的数据库记录找出用户输入的关键字文件名,即所有包含该关键字的文件都会被输出。但是由于数据库一般一天更新一次,如果需要查找新的内容,需要用updatedb命令更新数据库。updatedb会根据/etc/updatedb.conf在硬盘中搜索文件名,并更新数据库文件locate[-ir]关键字-i忽略大小写差异-r关键字可以找到正则表达式的文件,磁盘搜索,支持wildcardsfind[PATH][option][action]find/-mtime0#查找24小时内修改过的文件find/etc-mtime3#查找3天前24小时内修改过的文件find/-mtime+3#查找3天前更改过的文件(不包括3天本身)find/-mtime-3#查找3天内更改过的文件find/-username#查找用户名name的文件find/-groupname#查找带group的文件namegroupfind/-nouser#查找不属于任何用户的文件,可能出现在网络文件中,或者用户创建的已被删除的文件find/-namefilename#查找名为filename的文件find/-typeTYPE#查找某类文件,f:常规文件,b:设备文件,d:目录,l:连接文件,s:socket,p:FIFO压缩打包常用压缩扩展*.Z:compress程序压缩文件*.gz:gzip程序压缩文件*.bz2:bzip2程序压缩文件*.tar:tar程序打包后的文件,未压缩*.tar.gz:tar程序打包后的文件,由gzip压缩*.tar.bz2:tar程序打包的文件,由bzip2gzipgzip压缩,可以解压其他软件压缩的compress、zip、gzip文件。gzip压缩后,源文件将被删除并替换为.gz压缩文件。gzip[-cdtv#]文件名-c:将压缩后的数据输出到屏幕,可以进行数据流重定向处理-d:解压参数-t:可用于验证压缩文件的一致性-v:显示压缩率等信息-#:压缩级别,-1最快,-9最慢但压缩度最高,默认-6gzip-d文件名:将压缩文件解压并删除压缩文件tartar[-j|-z][cv][-fnewfilename]filename#compresstar[-j|-z][xv][-fpackagefilename][-Cdirectory]??#unzip-c:新建一个包文件,可与v一起使用查看打包后的文件名-x:解包或解压功能,可与-C一起使用在特定目录下解包-j:支持通过bzip2压缩解压-z:支持通过gzip压缩解压-v:显示正在处理的文件名-C:在特定目录下解压-p:保留备份数据原有的权限和属性-P:保留绝对路径,一般为相对路径,防止数据被覆盖--exclude=FILE:压缩过程中不打包FILE--newer:打包ctime和mtime在日期之后的文件--newer-mtime:打包mtime在日期之后的文件tar-zcv-ffilename.tar。gzfilename#压缩打包为filename.tar.gztar-zxv-ffilename.tart.gz-C待解压目录filenamevariablereadanddeclarationreadreadinputfromconsoleread[-pt]variable-p:OK添加提示-t:等待秒数后进入declaredeclare[-aixr]变量-a:声明为数组-i:声明为整数-x:声明为环境变量,用法同export-r:declareasaread-onlyvariabledeclare-isum=100+200+300#如果不声明为整数,默认为字符串declare+rsum#相当于取消对变量的修改${variable#keyword}:从变量内容开头,将符合删除关键字的最短数据${variable##keyword}:从变量内容开头,删除符合关键字的最长数据${variable%%keyword}:从变量内容末尾开始,删除匹配关键字的最短数据数据删除${variable%%keyword}:从变量内容末尾开始,删除匹配关键字的最长数据关键词${改变variable/oldstring/newstring}:将遇到的第一个旧字符串更新为新字符串${variable//oldstring/newstring}:将所有旧字符串更新为新字符串变量替换变量替换一般是指根据变量的值进行替换变量是否不为空。记忆法是当公式中包含:时,变量不存在,变量为空。字符串为空,否则只有变量不存在视为空var=${str-expr}:等价于var=str==null?expr:strvar=${str:-expr}:等价于var=(str==null||str=='')?expr:strvar=${str+expr}:等价于var=(str==null?'':expr)var=${str:+expr}:等价于var=(str==null||str=='')?'':exprvar=${str=expr}:相当于str=str=null?expr:str,expr=strvar=${str:=expr}:相当于str=str==nul||海峡==''?expr:str,expr=str数据流重定向>/1>:通过覆盖输出正确的数据到指定的文件或设备>>/1>>:累积输出正确的数据到指定的文件或设备2>:输出正确的数据到指定的文件或设备错误信息覆盖到指定文件或设备2>>:累积输出错误信息到指定文件或设备<:将原本需要键盘输入的数据改为文件<<:结束输入find/home-name.bashrc>list2>&1#将标准输出和错误输出都导出到list文件中cat>catfile<~/.bashrc#将.bashrc的内容复制覆盖到catfile中cat>catfile<<"eof"#结束后立即结束输入eof选择命令cutcut-d'separator'-ffields#根据分隔符分割每一行,并取出下标为字段的值cur-ccharacterrange#切出每行字符范围内的内容export|cut-c12-#导出文件每行从第12个字符开始,所有内容被切出echo${PATH}|cut-d':'-f3,5#根据:分割路径内容,取第三个和第五个值cut在处理多个空格分隔的行时,grep分析一行会比较困难。当该行包含我们想要的信息时,该行将输出到grep[-acinv][--color=auto]'Keywords'filename-a:将二进制文件搜索为文本文件-c:打印的个数occurrences-i:忽略大小写-n:同时输出行号-v:反向选择,即选择不存在关键字的行-color=auto:给关键字加颜色显示最后|grep'根'|cut-d''-f1egrep可以合并管道命令egrep-v'^$|^#'filenamehere|standsfororsedsed[-nefr][n1[,n2]function]-n:只列出经过sed特殊处理过的行-e:直接在命令行模式下编辑sed动作-ffilename:写入sedactionsinafile-r:支持扩展正则表达式语法-i:直接修改读取的文件内容replacen1toLinedbetweenn2:deletep:printoutaselecteddatas:replace,可以用正则表达式连接sed's/要替换的字符串/新字符串/g'cat/etc/passwd|sed-e'4d'-e'6c无六行'#如果要添加多条指令,必须添加-esortsortsort[-fbMnrtuk]file/stdin-f:忽略大小写-b:忽略第一个空格-M:按月排序-n:使用纯数字排序,默认为文本类型-r:倒序-u:同一数据中,只显示一行-t:分隔符,默认为tab-k:是哪一段数据作为排序标准wc统计文件的行数和子树数wc[-lwm]filename-l:只列出行数-w:只列出多少个词-m:多少个词uniq去重uniq[-ic]-i:sizeWriteirrelevant-c:countstatisticstee双重重定向,同时输出一个输出到文件和标准输出流tee[-a]filename-a:加到文件后面xargsreadstdin数据,并使用某种分隔符将其分为该命令适用于不支持管道的命令支持管道操作xargs[-0epn]command-0:将特殊字符恢复为普通字符-e:EOF,xargs解析该参数时,会停止解析-p:inexecution对于每个命令的参数,都会询问用户-n:后跟次数。几个参数的含义是要用到的。文件格式化处理awk主要处理每一行字段中的数据,默认的字段分隔符是空格键或者tab键awk'条件类型{action1}条件类型2{action2}...'filenameNF:$0每行总字段数NR:awk当前正在处理哪一行数据FS:当前分隔符last-n5|awk'{print$1"\t"$3}'#打印一行的第一段和第三段last-n5|awk'{print$1"\t行:"NR"\t列:"NF}'cat/etc/passwd|awk'BEGIN{FS=":"}$3<10{print$1"\t"$3}'diff以行尾为单位比较两个文件的差异,也可以比较同一个文件在不同目录下的内容diff[-bBi]from-fileto-filefrom-file和to-file都可以使用——即标准输入而不是-b:忽略一行中只有多个空格的区别,比如aboutme就被认为是和我一样-B:忽略空行的区别-i:忽略大小写的区别想了解更多开发技巧、面试教程、互联网公司内部晋升,请关注我微信公众号!不定期发放福利~