zoukankan      html  css  js  c++  java
  • Linux常用命令

    linux后台运行、关闭、查看后台任务:
    • 将命令放到后台执行:watch -n 10 sh test.sh & #每10s在后台执行一次test.sh脚本

    • 将一个正在前台执行的命令放到后台,并且处于暂停状态:ctrl+z

    • 查看后台执行的命令:jobs;-l 选项可现实所有任务的PID

    • 将后台命令调至前台继续执行:fg %jobnumber(命令编号)

    • 将后台暂停命令,变成后台继续执行:bg %jobnumber

    • 查杀某个命令进程任务

      • 方法1:jobs查看job号,然后执行kill %jobnumber

      • 方法2:jobs -l查看任务PID,然后执行kill pid

    • 终止当前进程:ctrl+c

    • 如果让程序始终在后台执行,即使关闭当前的终端也执行(之前的&做不到),这时候需要nohup。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。

    • 关闭终端后,在另一个终端jobs已经无法看到后台跑得程序了,此时利用ps:ps -aux | grep "test.sh" #a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分.

    键盘输入文件终止符:
    • windows:ctrl+z

    • unix:ctrl+d

    查看文件常用命令:
    • more:space键向前翻页,b键向后翻页,Enter键向后滚动一行(但没有向前滚动一行的键)

    • less:pageUp/pageDn向后/向前翻页,:行数:可向后滚动指定行数,上下键可向后/向前滚动一行. 比more更灵活.

    • more与less区别:less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示;less不必读整个文件,加载速度会比more更快;less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容。

    • head test.txt -n 10:查看前几行

    • tail test.txt -n 10:查看后几行

    • tail -f ping.log:循环读取(常用于查看递增的日志文件)

    • cat -n test.txt:查看文件内容并显示行号

    • cat > test.txt:从键盘输入到文件,类似于记事本

    查看Linux发行版本:
    • cat /etc/os-release

    • cat /proc/version

    • lsb_release -a

    • uname -a:输出系统相关信息

    查找文件位置:
    • which:查看命令位置。which 是在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。查看当前 PATH 配置:echo $PATH

    • whereis:查看命令对应的源码、帮助等文件。whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件。

    • find:实际搜寻硬盘查询文件名称。

      • find ./ -name '*.log'

      • find -size +1000c:查找大于1k的文件

      • 配合xargs执行其他命令:find . -name "*.log" | xargs -i mv {} test4 -i表示将前面结果一行一行传给后面的{}

    查看磁盘/目录空间大小:
    • df:显示磁盘空间使用情况。df -l:显示磁盘使用情况;df -haT:以易读方式列出文件系统及类型

    • du:对文件和目录占用空间查看。du -hc --max-depth=1 scf/:输出当前目录下各个子目录所使用的空间;du -hc test/ scf/:显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和

    • 查看某个目录下所有文件或目录的大小并排序:du -sh /home/he/* | sort -hr
    压缩与解压:
    • gzip

      • 压缩:gzip fileName .tar.gz 和.tgz

      • 解压:gunzip filename.gz 或 gzip -d filename.gz

    • tar:

      • 压缩:tar zcvf filename.tar.gz;tar jcvf filename.tar.bz2

      • 解压:tar zxvf filename.tar.gz;tar jxvf filename.tar.bz2

      • 解压到指定目录:tar zxvf xxx.tar.gz -C dstDir

      • 压缩指定目录下的文件:tar zcvf xxx.tar.gz -C /test

    • bz2:

      • 压缩:bzip2 -z filename.tar.bz2

      • 解压:bunzip filename.bz2或bzip -d filename.bz2

    查看当前用户信息:
    • whoami

    • id

    创建/删除链接:
    • 查看文件链接信息:ls -l查看链接数;ls -i查看文件inode值

    • 硬链接:ln -v 文件名 链接名. 硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。inode会链接到block块,而“目录”本身仅消耗inode,这样硬链接就不能链接目录(只有超级用户才可以为目录创建硬链接。)。不能跨文件系统,不能链接不存在的文件。

    • 软件链接:ln -sv 文件名 链接名. 软链接可以跨文件系统,有自己的inode,可以对目录进行链接,类似于windows的快捷方式.

    • 删除链接:rm -rf 链接名

    grep命令
    • cat test.txt | grep svn -C 30:查找文件test.txt中包含svn关键字的前后30行。或 grep svn -C 30 test.txt

    • ps -ef | grep svn -c:查找指定进程个数。-c:查找到的匹配个数

    • grep -lR '^grep' /tmp:从文件夹中递归查找以grep开头的行,并只列出文件。-l: 只列出文件内容符合指定的样式的文件名称;-R:递归查找文件夹. eg:查看目录中包含某个关键词的文件:grep -lR ‘mkdir failed’ .

    • grep -E 'ed|at' test.txt:显示包含 ed 或者 at 字符的内容行

    • grep '^[^x]' test.txt:查找非x开头的行内容

    • grep -n 'mkdir' test.txt:查找关键词在文件中的行号

    返回到上个目录:cd -
    输出命令结果的头信息:

    如果命令中有管道"|",则输出信息中标题信息将丢失。解决办法:ps aux | head -1; ps aux | grep tomcat

    进程查看:
    • 查找某进程:ps -aux | grep apache

    • 查找服务相关的进程:ps aux | grep '(cron|syslog)'

    • top:动态查看进程信息. 交互命令:m-以内存使用率排序,P-根据CPU使用百分比大小进行排序

    杀进程:
    • kill -9 pid:根据进程id杀

    • kill -9 %josId:根据任务id杀

    查看内存使用情况:
    • 按不同单位显示:free:以byte显示;free -k:以kb显示;free -m:以mb显示;free -g:以gb显示

    • 以总和显示:free -t

    • 周期性查询:free -s 10:间隔秒数

    周期性执行命令:
    • watch -n 1 -d netstat -ant:-n:间隔秒数;-d:高亮变化区域。或watch -n 1 -d "netstat -ant"

    目录/文件操作(创建/删除/移动/改名/复制)

    • touch、mkdir、rm、mv、cp、rmdir. -i:操作前提示确认;-r:递归操作;-f:强制操作不询问.

    • pwd:查看当前路径;pwd -P查看软链接的实际路径

    • 同时移动多个文件到某个目录:mv a.dir b.dir c.dir 1.txt 2.txt -t des.dir

    修改文件或目录权限:
    • chmod a+x test.sh:对所有用户增加执行test.sh的权限。u-文件或目录所有者,g-同组用户,o-其他用户,a-所有用户,+表示增加某个权限,-表示删除某个权限.

    • chmod 777 test.sh:7=4+2+1=r+w+x

    • chmod 777 -R test/:递归修改目录及其子目录或文件的权限

    • chgrp:改变文件或目录所属的组

    • chown:改变文件或目录的属主和属组。 eg:chown -R 用户名:用户组  test/

    远程登录服务器:ssh -p 端口号 用户名@服务器ip
    sed命令:文本编辑命令
    • 全局替换匹配文本:sed -i "s/hello/hi/g" test.txt -i 表示直接编辑原文件(默认不会直接替换文本内容,会将替换结果输出);将所有hello(可以是正则表达式)替换成hi eg:sed -i "s/hello/${val}/g" test.txt 替换成变量值. /反斜杠为默认界定符,可改成自定义界定符#、!、|等. 若报错sed: -e expression #1, char 13: unknown option to `s',则表示文件中包含界定符,修改界定符即可. 无g只替换每行的第一个匹配项,加g替换每行的所有匹配项

    • 借助管道处理前面的输出:nl test.txt | sed '2,$d' 删除第2行到$(最后一行),使用$因此这里必须是单引号否则会报错

    • 删除匹配行,输出其他行:nl /etc/passwd | sed '/root/d'

    • 打印部分行:nl test.txt | sed -n '2,4p' 打印文件的2到4行,-n取消默认输出

    • 搜索匹配关键字的行:nl test.txt | sed -n '/haha/p'

    • 插入行:a表示第n行后插入,i表示第n行前插入,eg:nl test.txt | sed '2i you are lucky' 末尾可另起一行

    • 替换若干行:nl /etc/passwd | sed '2,5c No 2-5 number' 将2到5行换成单行

    • 执行一组命令:nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p;q}' 搜索/etc/passwd,找到root对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把bash替换为blueshell,再输出这行

    vim下退出编辑:未修改退出:q;放弃修改退出:q!;保存并退出:wq

     

    windows远程连接间的文件传输:https://www.ytyzx.org/index.php?title=%E4%BD%BF%E7%94%A8%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2(mstsc)%E4%BC%A0%E8%BE%93%E5%A4%A7%E6%96%87%E4%BB%B6&variant=zh-sg

     

  • 相关阅读:
    java插入语句中有单引号的处理
    mybatis批量插入
    用Resttemple从数据接口中取出数据
    java1.8Stream流式算法
    rabbitmq启动命令
    【MySQL】Mysql模糊查询like提速优化
    Mybatis基础知识点:trim标签的使用
    java8 array、list操作 汇【20】)- (FlatMap)用法汇总
    编写一个定制的收集器
    mysql
  • 原文地址:https://www.cnblogs.com/luckyboylch/p/12454804.html
Copyright © 2011-2022 走看看