Linux高级命令超详细

Linux常用命令:

  • ll :查看所有文件及文件夹,是ls -l 的缩写;
  • ll -a:查看隐藏文件;
  • tail -f catalina.out 查看tomcat运行日志
  • cat catia.out |grep 要搜索的关键字(xxxx) |tail -n 20 搜索最近的20条关键字在catia.out日志文件中
  • tar 解压缩
  • tar zxvf FileName.tar 解压文件
  • tar czvf FileName.tar dirname 压缩文件
  • zip 解压缩
  • unzip FileName.zip 解压文件
    • zip FileName.zip dirname 压缩文件
  • cd ~ 进入根目录下
  • touch allstartup.sh 建立一个allstartup.sh文件
  • vim allstartup.sh 编辑 allstartup.sh文件
  • ./allstartup.sh 杀死所有tomcat进程并重启
  • ./shutdown.sh 停止
  • ./startup.sh 启动
  • -jar xxxxx.jar-jar xxxxx.war 启动jar包 或 启动war
  • dir 查看文件中所有目录
  • rm 删除
  • rm -rf 强制删除
  • touch 创建文件夹
  • cat helloWord.txt 查看文件全部内容
  • rz 上传
  • sz 文件名 现在指定文件
  • vim 编辑文件
  • vim FileName 进入vi命令
  • :set nu 在vi命令下显示所有行号
  • i 进入编辑模式
  • esc 退出编辑模式
  • : wq 保存退出vim
  • : q 不保存退出
  • : q! 强制退出
  • 复制:
  • 在命令模式下选中需要复制的行,连续按两次Y键,然后按P键则会将刚才复制的内容粘贴到光标所在行的下一行。
  • 删除:
  • 在命令模式下选中需要删除的行,连续按两次D,键则会将光标所在行删除。
  • 在命令模式下连续按三次数字9键,然后再连续按两次D.键,则会将光标所在行后面的所有内容。
  • 在文件中快速跳转:
  • G键,可以快速定位到文件最后一行。
  • 连续按两次g键,可以快速定位到文件第一行。

Linux文件内容统计相关命令

wc:统计字数相关信息
  • wc -c:返回文件内容的字节数量(统计时会包含换行符);
  • wc -m:返回文件内容的字符数量(统计时会包含换行符);
  • wc -l:返回文件内容的行数
  • wc -L:返回文件内容中最长的一行内容的长度(统计时不会包含换行符);
  • wc -w:返回文件中单词的数量;
uniq:检查重复的行列(单独使用表示去重);
  • uniq -c:在每列旁边显示该行重复出现的次数;
  • uniq -d: 仅显示重复出现的行列;
  • uniq -u: 仅显示出一次的行列;
  • uniq -f<栏位>: 忽略比较指定的栏位;
sort:排序
  • sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出 ;

  • sort -n:以数值来排序;

  • sort -r:倒序排序;

  • sort -k:指定列排序;

  • sort -u:在输出结果中去除重复行;

  • sort -f:忽略大小写排序( 将小写字母都转换为大写字母来进行比较 );

  • sort -b : 忽略每一行前面的所有空白部分,从第一个可见字符开始比较 ;

  • head:取前N条数据

注意:若要组合使用linux命令,可以使用|来进行连接:
  • 例如:
    • sort -n hello.txt | uniq 表示先对hello.txt文件以数值进行排序,然后在去除重复的列;
    • sort -nr hello.txt | head -3 表示先对hello.txt文件以数值进行降序排序,然后获取文件前三行数据;
    • cat hello.txt | sort -nr:查看hello.txt文件,并以数值进行降序排序;
    • cat hello.txt | sort -nr | head -3:查看hello.txt文件前三行数据,以数值进行降序排序;

Linux日期相关命令

date:获取当前时间;
  • date +"%Y-%m—%d %H:%M:%S":获取当前时间并指定时间格式;
  • date +%s:获取当前时间的时间戳(单位:s);
  • date +%s"000":获取当前时间的时间戳(单位:毫秒);
  • date --date="2020-11-07 12:20:25":指定时间 ;
  • date --date="2020-11-07 12:20:25"+%s:获取指定时间的时间戳;
  • date --date="1 days ago" +"%Y-%m—%d %H:%M:%S":获取昨天的日期时间;
  • date --date="2020-03-01 1days ago" +%d:变相获取某年的2月有多少天;

Linux进程相关命令

ps命令:显示进程信息;
  • ps -ef:显示系统内所有进程;
  • ps -ef | grep javaps -ef | grep tomcat :列出所有正在运行的tomcat程序;
netstat:显示端口信息;
  • netstat -anp:查看端口信息(需要安装net-toolsyum install -y net-tools);
  • netstat -anp | grep 22:查看指定端口的信息;
jps命令
  • 类似于ps命令,ps命令显示所有进程信息,jps则只显示Java进程信息;
  • jps在哪个用户下使用,显示的就是哪个用户下已经启动的Java进程信息。信息包含进程号(PID)简短的 command

注意:jps是Java提供的命令,只有在安装配置好Java环境之后才能使用

top命令
  • 主要作用在于动态显示消耗系统资源最多的进程信息;包含进程 ID内存占用CPU占用等;
  • ps命令作用基本相同,区别在于top能够动态显示进程信息,ps显示的是静态的 ;
kill:杀掉进程;
  • kill -9 PID :强制杀死指定的进程;
  • kill pid:杀掉进程,自杀;

Linux三剑客 grepsedawk

grep:常用与查找文件里符合条件的字符串;
  • grep -i:忽略大小写;
  • grep -n:显示该行的行号;
  • grep -v:忽略包含指定字符串的内容;
  • 例如
    • grep abc hello.txtcat hello.txt | grep abc:从文件hello.txt中查找指定字符串abc;
    • grep ^a hello.txt:按正则查询(查询hello.txt文件中以a开头的内容);
    • grep -i ABC hello.txt:从文件hello.txt忽略大小写查找指定字符串ABC;
    • grep -i ABC -n hello.txt:从文件hello.txt忽略大小写查找指定字符串ABC并显示行号;

注意:grep经常和管道|结合使用,实现数据过滤查找

sed:用来自动编辑一个或多个文件、简化对文件的反复操作;
  • sed 'a'sed 'i':增加内容;(a:append,i:insert

  • sed '2a\hello' hello.txt:表示在hello.txt文件的第二行后面追加内容hello

    • sed '1i\hello' hello.txt:表示在hello.txt文件的第一行前面插入内容hello
    • sed '$a\hello' hello.txt:表示在hello.txt文件的最后一行后面追加内容hello
    • sed '$i\hello' hello.txt:表示在hello.txt文件的最后一行前面插入内容hello
  • sed 'd':删除内容;

    • sed '7d' hello.txt:表示删除hello.txt文件的第七行内容;
    • sed '$d' hello.txt:表示删除hello.txt文件的第最后一行内容;
  • sed 's' :替换内容;

    • 格式:sed [address]s/pattern/replacement/flags
      • address:表示指定要操作的具体行,是一个可选项;
      • s:表示替换操作;
        • pattern:需要被替换的内容;
      • replacement:替换内容;
      • flags
        • 用法一:可以表示为1-512之间的任意一个数字,表示指定要替换的字符串这一行中出现第几次时才进行替换;
        • 用法二:可以表示为g,意思是对每一行数据中所有匹配到的内容全部进行替换;
        • 用法三:若flags为空,则表示只会在第一次匹配成功时做替换操作;
    • 例如:
      - sed 's/2021/2022/' hello.txt:表示将hello.txt文件中第一次匹配到的2021替换为2022
      - sed 's/2021/2022/2' hello.txt:表示将hello.txt文件中第二次出现的2021替换为2022
      - sed 's/2021/2022/g' hello.txt:表示将hello.txt文件中所有匹配到的2021替换为2022
      - sed '3s/2021/2022/g' hello.txt:表示将hello.txt文件中第三行中所有出现的2021替换为2022
  • sed -i:表示直接修改源文件;

    • sed -i 's/2021/2022/2' hello.txt:表示将hello.txt文件中第二次出现的2021替换为2022;(直接修改源文件);
awk:一个强大的文本分析工具
  • 格式:
  • awk [option] programe file
    • option:可选项,一般指定文件中数据的分隔符;
    • programe:具体的处理逻辑;
    • file:操作的文件;
  • 特性:
  • awk在处理文本数据时,会自动对每行中的每个字段分配一个变量。变量从1开始,$1表示文本中的第一个数据字段,以此类推;$0表示整行内容;
  • 例如:
  • awk '{print $1}' hello.txt:输出hello.txt文件的第一列,以空格符或制表符拆分;
  • awk '{print $2}' hello.txt:输出hello.txt文件的第二列,以空格符或制表符拆分;
  • awk '{print $0}' hello.txt:输出hello.txt文件全部列的内容(也就是整行内容),以空格符或制表符拆分;
  • awk -F: '{print $1}' hello.txt:输出hello.txt文件的第一列,以指定字符(这里是:)拆分;
  • awk '/world/{print $0}' hello.txt: 表示在hello.txt文件里,从每次读取到的那一行数据匹配指定内容(这里是world)匹配到则输出;
  • awk '($1 ~ /world/){print $0}' hello.txt: 表示在hello.txt文件里,从每次读取到的那一行数据中指定列里(这里是第一列)匹配指定内容(这里是world)匹配到则输出;(在文件第一列中匹配指定内容,匹配到则输出
    • ~:表示匹配的意思;
    • !~:表示不匹配的意思;
  • awk '($2 !~ /world/){print $0}' hello.txt: 表示在hello.txt文件里,从每次读取到的那一行数据中指定列里(这里是第二列)不匹配指定内容(这里是world)满足条件则输出;(在文件第二列中匹配指定内容,匹配不到则输出

你可能感兴趣的:(Linux,linux,运维,服务器)