基于Springboot搭建java项目(二十九)—— Linux的常用命令

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、处理目录的常用命令

  • ls: 列出目录

    -a 全部的文件连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)

    -l 长数据串列出包含文件的属性与权限等等数据(常用)

    -al ~综合了-a和-l的特点

  • cd切换目录

    /home 切换到用户目录下

    … : 返回上一级

    / 返回根目录
    返回/root目录
  • pwd显示目前的目录

    -P显示出确实的路径而非使用连接(link) 路径

  • mkdir创建一个新的目录

  • rmdir删除一个空的目录

  • cp: 复制文件或目录

  • rm: 移除文件或目录

    -f 就是 force 的意思忽略不存在的文件不会出现警告信息

    -i 互动模式在删除前会询问使用者是否动作

    -r 递归删除啊最常用在目录的删除了这是非常危险的选项

  • mv: 移动文件与目录或修改文件与目录的名称

    -f force 强制的意思如果目标文件已经存在不会询问而直接覆盖

    -i 若目标文件 (destination) 已经存在时就会询问是否覆盖

    -u 若目标文件已经存在且 source 比较新才会升级 (update)

二、基本属性

1、看懂文件属性

在Linux中第一个字符代表这个文件是目录、文件或链接文件等等

  • 当为[ d ]则是目录
  • 当为[ - ]则是文件
  • 若是[ l ]则表示为链接文档 ( link file )
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 )
  • 若是[ c ]则表示为装置文件里面的串行端口设备例如键盘、鼠标 ( 一次性读取装置 )。

接下来的字符中以三个为一组且均为『rwx』 的三个参数的组合。

其中[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。

要注意的是这三个权限的位置不会改变如果没有权限就会出现减号[ - ]而已。

每个文件的属性由左边第一部分的10个字符来确定如下图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Qayhasa-1611045257773)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201116105124001.png)]

2、修改文件属性

  • chgrp更改文件属组

    -R递归更改文件属组就是在更改某个目录文件的属组时如果加上-R的参数那么该目录下的所有文件的属组都会更改

  • chown更改文件属主也可以同时更改文件属组

  • chmod更改文件9个属性

    文件的权限 - 使用 “+” 设置权限使用 “-” 用于取消

    • chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读r 、写(w)和执行(x)的权限
    • chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权

    Linux文件属性有两种设置方法一种是数字一种是符号。

    Linux文件的基本权限就有九个分别是owner/group/others三种身份各有自己的read/write/execute权限

    文件的权限字符为『-rwxrwxrwx』 这九个权限是三个三个一组的其中我们可以使用数字来代表各个权限各权限的分数对照表如下

    r:4     w:2         x:1
    

    每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的例如当权限为[-rwxrwx—] 分数则是

    • owner = rwx = 4+2+1 = 7
    • group = rwx = 4+2+1 = 7
    • others= — = 0+0+0 = 0
    chmod 770 filename
    

3、文件内容查看

Linux系统中使用以下命令来查看文件的内容

  • cat 由第一行开始显示文件内容

    -A 相当於 -vET 的整合选项可列出一些特殊字符而不是空白而已

    -b 列出行号仅针对非空白行做行号显示空白行不标行号

    -E 将结尾的断行字节 $ 显示出来

    -n 列印出行号连同空白行也会有行号与 -b 的选项不同

    -T 将 [tab] 按键以 ^I 显示出来

    -v 列出一些看不出来的特殊字符

  • tac 从最后一行开始显示可以看出 tac 是 cat 的倒着写

  • nl 显示的时候顺道输出行号

    -b 指定行号指定的方式主要有两种-b a 表示不论是否为空行也同样列出行号(类似 cat -n)-b t 如果有空行空的那一行不要列出行号(默认值)

    -n 列出行号表示的方法主要有三种-n ln 行号在荧幕的最左方显示-n rn 行号在自己栏位的最右方显示且不加 0 -n rz 行号在自己栏位的最右方显示且加 0

    -w 行号栏位的占用的位数。

  • more 一页一页的显示文件内容

    空白键 (space)代表向下翻一页

    Enter 代表向下翻『一行』

    /字串 代表在这个显示的内容当中向下搜寻『字串』这个关键字

    :f 立刻显示出档名以及目前显示的行数

    q 代表立刻离开 more 不再显示该文件内容。

    b 或 [ctrl]-b 代表往回翻页不过这动作只对文件有用对管线无用。

  • less 与 more 类似但是比 more 更好的是他可以往前翻页

  • head 只看头几行

  • tail 只看尾巴几行

    -n后面接数字代表显示几行的意思

    -f显示后20行并且会文件内容有变动会实时刷新比较时候查看日志文件

  • sz 文件名导出文件

  • rz 选择文件将本地文件复制到服务器上

  • shell使用文件传输能实现服务器之间的文件传输文件和目录

4、文件搜索

  • find / -name file1 从 ‘/’ 开始进入根文件系统搜索文件和目录
  • find / -user user1 搜索属于用户 ‘user1’ 的文件和目录
  • find /home/user1 -name *.bin 在目录 ‘/ home/user1’ 中搜索带有’.bin’ 结尾的文件
  • find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
  • find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
  • find / -name *.rpm -exec chmod 755 ‘{}’ ; 搜索以 ‘.rpm’ 结尾的文件并定义其权限
  • find / -xdev -name *.rpm 搜索以 ‘.rpm’ 结尾的文件忽略光驱、捷盘等可移动设备
  • locate *.ps 寻找以 ‘.ps’ 结尾的文件 - 先运行 ‘updatedb’ 命令
  • whereis halt 显示一个二进制文件、源码或man的位置
  • which halt 显示一个二进制文件或可执行文件的完整路径

5、打包和压缩文件

  • bunzip2 file1.bz2 解压一个叫做 'file1.bz2’的文件
  • bzip2 file1 压缩一个叫做 ‘file1’ 的文件
  • gunzip file1.gz 解压一个叫做 'file1.gz’的文件
  • gzip file1 压缩一个叫做 'file1’的文件
  • gzip -9 file1 最大程度压缩
  • rar a file1.rar test_file 创建一个叫做 ‘file1.rar’ 的包
  • rar a file1.rar file1 file2 dir1 同时压缩 ‘file1’, ‘file2’ 以及目录 ‘dir1’
  • rar x file1.rar 解压rar包
  • unrar x file1.rar 解压rar包

6、文本处理

  • cat file1 file2 … | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT
  • cat file1 | command( sed, grep, awk, grep, etc…) > result.txt 合并一个文件的详细说明文本并将简介写入一个新文件中
  • cat file1 | command( sed, grep, awk, grep, etc…) >> result.txt 合并一个文件的详细说明文本并将简介写入一个已有的文件中
  • grep Aug /var/log/messages 在文件 '/var/log/messages’中查找关键词"Aug"
  • grep ^Aug /var/log/messages 在文件 '/var/log/messages’中查找以"Aug"开始的词汇
  • grep [0-9] /var/log/messages 选择 ‘/var/log/messages’ 文件中所有包含数字的行
  • grep Aug -R /var/log/* 在目录 ‘/var/log’ 及随后的目录中搜索字符串"Aug"
  • sed ‘s/stringa1/stringa2/g’ example.txt 将example.txt文件中的 “string1” 替换成 “string2”
  • sed ‘/^$/d’ example.txt 从example.txt文件中删除所有空白行
  • sed ‘/ *#/d; /^$/d’ example.txt 从example.txt文件中删除所有注释和空白行

三、查看进程和服务

1、查看端口号

  • netstat -tunlp 是查看所有的在使用的端口号情况

  • netstat -tunlp |grep 端口号 是查看所有的在使用的端口号情况lsof -i :端口号

  • netstat -tunlp 各个参数说明如下

    -ttcp仅显示TCP相关端口

    -uudp仅显示UDP相关端口

    -n不进行DNS轮询显示IP可以加速操作

    -l仅列出有在Listen监听的服务端口

    -p显示建立相关链接的程序名

2、查看进程

  • ps命令查找与进程相关的PID号
  • ps a 显示现行终端机下的所有程序包括其他用户的程序
  • ps -A 显示所有程序。
  • ps c 列出程序时显示每个程序真正的指令名称而不包含路径参数或常驻服务的标示。
  • ps -e 此参数的效果和指定"A"参数相同。
  • ps e 列出程序时显示每个程序所使用的环境变量。
  • ps f 用ASCII字符显示树状结构表达程序间的相互关系。
  • ps -H 显示树状结构表示程序间的相互关系。
  • ps -N 显示所有的程序除了执行ps指令终端机下的程序之外。
  • ps s 采用程序信号的格式显示程序状况。
  • ps S 列出程序时包括已中断的子程序资料。
  • ps -t<终端机编号> 指定终端机编号并列出属于该终端机的程序的状况。
  • ps u 以用户为主的格式来显示程序状况。
  • ps x 显示所有程序不以终端机来区分。

四、查看服务器的情况

1、free命令

  • free -m和free -g命令查看分别表示MB和GB
  • free -h会自动选择以适合理解的容量单位显示

2、哪些应用程序占的内存比较多

  • ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less

执行以上命令可查看各个程序进程内存使用的内存情况如下图所示第一列为进程占用的内存百分比可以看到哪些应用程序占的内存比较多用于排查问题

  • top命令排查内存

top 命令查看系统的实时负载 包括进程、CPU负载、内存使用等等直接输入top命令

进入top的实时界面后默认按照CPU的使用率排序通过“shift+m”按键将进程按照内存使用情况排序可以查看哪些进程是当前系统中的内存开销“大户”。

top命令中按下 f 键进入选择排序列的界面这里可以选择要显示的信息列要按照哪些信息列进行排序

四、Vim使用及账号用户管理

Vim是从 vi 发展出来的一个文本编辑器。vim 则可以说是程序开发者的一项很好用的工具。
账号管理则是Linux系统是一个多用户多任务的分时操作系统任何一个要使用系统资源的用户都必须首先向系统管理员申请一个账号然后以这个账号的身份进入系统。
推荐狂神的一篇文章对这两点的说明十分详细
文章地址https://mp.weixin.qq.com/s/AndIwanhZ3Tlg0iQe8a4lQ

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: SpringlinuxJava