§基础篇

cd 命令

  语法:cd [dirName]。

  功能:全拼change directory,从当前工作目录切换到指定的工作目录。dirName 表示法可为绝对路径或相对路径。

  说明:该命令将当前目录改变至dirName所指定的目录。若没有指定dirName,则回到用户的主目录。为了改变到指定目录,用户必须拥有对指定目录的执行和读权限。

  常用方式示例:

  • cd .. 返回上一级目录。
  • cd ~ 进入当前用户目录。
  • cd /root/Documents # 切换到目录/root/Documents
ls / ll 和 clear 命令

  语法:ls [选项] [目录或是文件]

  功能:列出目录的内容

  说明:list之意,用于查看某个目录的内容。当未给出目录名或是文件名时,就显示当前目录的信息。ll与之类似,不再赘述。

  clear:清除屏幕上的信息,清屏后,提示符移动到屏幕左上角。

  cd和ls应该是使用最多的两个命令,尤其是对于Linux目录结构陌生的用户。

grep 命令 : 查找关键字

  语法:grep [-acinv] [--color=auto] [keyword] [文件或目录...]

  功能:文本搜索工具,类似于正则表达式搜索,可以在一个大的文件中快速搜索到满足一定规则的内容,查到就高亮显示。

  说明:Global Regular Expression Print 的缩写,分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等。

例如,取出文件/etc/man.config中包含MANPATH的行,并把找到的关键字加上颜色

grep --color=auto 'MANPATH' /etc/man.config

find命令

  语法:find [PATH] [option] [action]

  功能:多用于查找文件路径。

  说明:常用的是-name fileName 找出文件名为fileName的文件。

  案例一:搜索Data目录下以点fna结尾的文件,

find ../Data -name *.fna

  案例二:查找大于100M的文件;

find ./ -size 100M

  案例三:查找 48 小时内修改过的文件,可以分分钟确认关键文件是否被修改

find -atime -2

  案例四:查找关键词keyword在哪个目录:

find -name "keyword"
kill

  语法:kill -signal PID。

  功能:启动或者结束进程,PID可以通过ps命令、管道命令加上grep命令进行筛选获得。

  说明:该命令用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号,它通常与ps和jobs命令一起使用.

  signal的常用参数如下:

  • 1:SIGHUP,启动被终止的进程
  • 2:SIGINT,相当于输入ctrl+c,中断一个程序的进行
  • 9:SIGKILL,强制中断一个进程的进行(常用)
  • 15:SIGTERM,以正常的结束进程方式来终止进程
  • 17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行

注:最前面的数字为信号的代号,使用时可以用代号代替相应的信号。例如:

以正常的结束进程方式来终于一个后台工作(pid = 2821)

kill -15 2821

tail

  语法:tail [options] [fileName]

  功能:查看文件的内容。

  说明:有一个常用的参数 -f 常用于查阅正在改变的日志文件。

参数-n<行数> 显示文件的尾部 n 行内容。例如:

tail -f fileName # 把 fileName 文件里的最尾部的内容显示在屏幕上,并且不断刷新。

tail -500f fileName # 在屏幕上显示 fileName 文件里尾部500行的内容,且不断刷新。

cp命令

全拼copy,其功能为复制文件或目录。

  语法:cp [选项] 源文件或目录 目标文件或目录。

  功能:把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。

  说明:为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。

mv命令

  语法:mv [选项] 源文件或目录 目标文件或目录。

  功能:用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。

  说明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。

案例:将文件 test.log 重命名为 test1.txt

mv test.log test1.txt

rm命令

  语法:rm [选项] 文件…

  功能:删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。

  说明:对于链接文件,只是断开了链接,原文件保持不变。

mkdir命令

  语法:mkdir [-p] dirName。

  功能:创建一个名为dirName的子目录。

  说明:-p 确保目录名称存在,不存在的就建一个。

rmdir 命令

  语法:rmdir [选项] dir-name

  功能:删除空目录。

cat 命令

  语法:cat fileName。

  功能:查看文本文件的内容,后接要查看的文件名。

  说明:通常可用管道与more和less一起使用,从而可以一页页地查看数据。例如:cat text | less # 查看text文件中的内容

pwd 命令

  语法:pwd

  功能:显示当前工作目录的绝对路径。

  说明:全拼print working directory。在Linux层次目录结构中,用户利用cd命令可以从一个目录转换到另一个目录,然而,没有提示信息告知用户目前处于哪一个目录中。要想知道当前所处的目录,可以使用pwd命令,它显示整个路径名。

gzip和unzip命令

  语法:gzip/unzip [选项] 待压缩的文件名 或者 unzip [选项] 压缩文件名.zip。

  功能:前者用于压缩,后者用于解压。

  说明:减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。

ping 命令 : 检测主机

  执行 ping 指令会使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

  语法:ping [-c]  [主机名称或IP地址]

-c<完成次数> 设置完成要求回应的次数。

telnet 命令 : 端口是否可访问

  语法:telnet [主机名称或IP地址<通信端口>]

  虽然 Linux telnet 命令主要用于远端登入。执行 telnet 指令开启终端机阶段作业,并登入远端主机,但是我更经常用它来查看某个远端主机端口是否可访问。

| 管道命令

  通常情况下,我们在终端只执行一条命令,那么如何执行多条命令呢?使用管道命令。管道是一种通信机制,通常用于进程间的通信(也可通过 socket 进行网络通信),它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。

ps 命令

  语法:ps [options]

  功能:查看当前进程 (process) 的状态。

  options:-e 显示所有进程,-f 全格式。

  说明:英文全拼是process status。列出当前正在运行的程序,连带命令行

ps -ef

  那如何定位我们想要查看的进程A,这个时候需要结合管道命令和grep,即 ps -ef | grep A。例如,查看是否已经有tomcat在运行:

ps -ef | grep tomcat

watch

  语法:watch  [参数]  [指令]

  功能:动态查看指令执行的结果

  说明:以周期性的方式执行给定的指令,指令输出以全屏方式显示。

  • 比如如果需要每隔一秒高亮显示网络连接数的变化情况。则

watch -n 1 -d netstat -ant

  • 每隔一秒高亮显示http连接数的变化情况

watch -n 1 -d 'pstree | grep http'

  • 十秒一次输出系统的平均负载

watch -n 10 'cat /proc/loadavg'

diff

  语法:diff -c file1 file2

  功能:显示两个文件的差异

§进阶篇

  部署在Linux系统的服务出现性能问题,一般可以通过 top、iostat、free、vmstat和ifstat等命令来初步定位问题,下面就聊聊这几位宝贝。

top 及其精简版uptime

  语法:top [options] / uptime

  功能:实时显示 process 的动态,查看机器整体性能。然后,按数字“1”可监控每个逻辑CPU的状况。如果不按1,则在top视图里面显示所有cpu的平均值。

  说明:常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。重点看load average、%CPU和%MEM三个指标。

top - 18:17:22 up 8:52, 1 user, load average: 0.05, 0.04, 0.05

Tasks: 99 total, 2 running, 97 sleeping, 0 stopped, 0 zombie

%Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

KiB Mem : 739932 total, 353944 free, 125284 used, 260704 buff/cache

KiB Swap: 1044476 total, 1044476 free, 0 used. 459304 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

47 root 20 0 0 0 0 S 0.1 0.0 0:36.55 kworker/0:1

643 root 20 0 21668 1284 972 S 0.1 0.2 0:18.13 irqbalance

1668 root 20 0 0 0 0 S 0.1 0.0 0:01.08 kworker/1:1

1 root 20 0 127968 6480 4096 S 0.0 0.9 0:01.93 systemd

2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd

3 root 20 0 0 0 0 S 0.0 0.0 0:00.23 ksoftirqd/0

5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H

7 root rt 0 0 0 0 S 0.0 0.0 0:00.02 migration/0

8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh

9 root 20 0 0 0 0 R 0.0 0.0 0:01.95 rcu_sched

10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain

  第一行,任务队列信息,与 uptime 命令的执行结果一模一样。

系统时间:18:17:22

运行时间:up 8:52 min,

当前登录用户: 1 user

负载均衡 load average: 0.05, 0.04, 0.05

  load average后面的三个数分别代表1分钟、5分钟和15分钟的负载情况,是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。sum(三个值)/3\*100%>60% 同样表明系统在超负荷运转了。

  第七行以下:各进程(任务)的状态监控

PID — 进程id

USER — 进程所有者

PR — 进程优先级

NI — nice值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR — 共享内存大小,单位kb

S —进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU — 上次更新到现在的CPU时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的CPU时间总计,单位1/100秒

COMMAND — 进程名称(命令名/命令行)

top -pid 4712 指定进程 id后显示 process 的动态

vmstat

  语法:vmstat

  功能: 查看磁盘空间

  说明:是Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的进程、虚拟内存、CPU活动进行监控。主要看首位两个参数proce和cpu。

  示例:vmstat -n 2 3 每两秒采样一次,共采样三次:

  CPU:

  • us 用户进程消耗CPU时间百分比。我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。us值越高,用户消耗CPU时间越多,如果长期大于50%,则需要优化系统。
  • sy 内核进程消耗CPU时间百分比。如果太高,表示系统调用时间长,例如是IO操作频繁。
  • id  空闲 CPU时间,一般来说,id + us + sy = 100。

  通常我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。

  Procs(进程):

  • r: 运行队列中进程数量,就是说多少个进程真的分配到CPU。
  • b: 等待IO的进程数量。

   查询所有CPU信息:

mpstat -P ALL 2

  idle CPU空闲率,超过80%说明性能可以,低于的话就要优化系统了。每个进程使用 cpu 的用量分解信息:

pidstat -u 1 -p 进程编号

free

  语法:free [-bkmotV][-s <间隔秒数>]

  功能:显示Linux系统中物理内存、交换内存的使用统计信息。

free -s 10 //每10s 执行一次命令

查看额外信息: pidstat -p 进程号 -r 采样间隔秒数

df

  语法:df [选项] [dirName]

  功能:统计磁盘使用情况,显示磁盘可用空间容量信息及空间结点信息。

  说明:英文全拼是disk free。一般加一个-h选项,然后接要查看的磁盘,默认所有磁盘。

  用法1:df 表示查看磁盘空间时以字节方式显示空间总大小和剩余空间。

  用法2:df -h 表示查看磁盘空间时以KB、MB、GB等单位方式显示剩余和总空间大小,比较常用的方式。温馨提示,常用选项-h 是human-readable的缩写,功能是使用我们更易读的格式,将文件或者消耗容量以(GB,kB等)列出来。

$ df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/centos-root 5.5T 742G 4.7T 14% /

devtmpfs 126G 0 126G 0% /dev

  输出信息中,Filesystem表示文件系统(可以理解为分区),Size表示总空间,Used(表示已使用的空间),Avail(表示剩余空间),Use%(表示已使用空间的百分比),Mounted on(表示挂载点或磁盘挂载对应的目录路径)

iostat 磁盘IO

  语法:iostat

  功能:监控系统设备的IO负载情况

  说明: I/O statistics 是输入/输出统计的缩写。特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。

  如果 %iowait 的值过高,表示硬盘存在I/O瓶颈。%idle值高说明CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应先排查应用程序,如果不存在问题,则加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

Linux 远程登录

  介绍点远程登录的基础知识,温故知新。

  Linux 服务器远程登录常用客户端工具:Putty和XShell(推荐)。

  使用sftp客户端安装连接sftp服务器,来上传和下载安装包常用客户端工具:Winscp(推荐)和xftp。

小结

  以上只是日常运维工作需要基本掌握的一些命令,有了它们可以完成绝大部分的工作。当然,技不压身,如果掌握更多的命令可以更高效地完成工作。

Reference

五分钟扫盲:25个工作中常用的Linux命令的更多相关文章

  1. 工作中常用的Linux命令:crontab命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...

  2. 工作中常用的Linux命令:find命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6056571.html (转载请注明出处) 1.命令格式 find [-H] [-L] [-P] [-D deb ...

  3. 工作中常用的Linux命令:mkdir命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6076075.html (转载请注明出处) 在Linux系统中,mkdir命令用来创建一个目录或一个级联目录. ...

  4. 工作中常用的Linux命令:ipcs/ipcrm命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6057100.html (转载请注明出处) ipcs 1. 命令格式 ipcs [resource-option ...

  5. 【基础】工作中常用的linux命令,经常会被面试官问到

    前言 面试经常会问到一些Linux操作命令,下面就工作中常用的和面试问的频率较高的命令做详细描述. 常用命令 修改密码:passwd 用户名 切换用户名:su 用户名 查看当前路径:pwd 调整路径: ...

  6. 工作中常用的 Linux 命令

    awk 示例: env变量值如下,需要获得pkg_url的链接值: {"name": "michael", "sex": "mal ...

  7. 在工作中常用的Linux命令

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 之前写过一篇 < 在公司做的项目和自己在学校做 ...

  8. 工作中常用的Linux命令(不断更新中)

    最近工作中用到linux命令,简单总结如下: 1. pwd 查看当前所在的文件路径 2. cd 切换目录 cd .. 切换到上一级目录 3. ls 列出当前文件路径下的所有文件和文件夹 4. ll 是 ...

  9. 工作中常用的Linux命令:crontab命令,定时任务执行命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...

  10. 工作中常用的Linux命令:目录

    工作两三年,每天都和Linux打交道,但每每使用Linux命令的时候却会像提笔忘字般不知如何使用,常常查手册或到网上找资料.此系列文章主要是为了方便自己在使用命令时随时可查阅.鄙人才疏学浅,文中若有任 ...

随机推荐

  1. 绝了!k3s (k8s) 安装 ollama 运行 deepseek 全流程揭秘,yaml全公开

    k3s (k8s) 环境搭建与 ollama 相关 yaml 文件部署 在容器编排的世界中,k3s (k8s) 无疑是备受瞩目的存在.此次聚焦在 k3s (k8s) 环境下安装 ollama,并实现运 ...

  2. 【多进程并发笔记】Python-Multiprocess

    目录 调用函数后,函数内的变量如何释放? python2.7怎么使用多线程加速for loop 多进程进程池,函数序列化错误的处理 Time模块计算程序运行时间 使用多进程,Start()后,如何获得 ...

  3. webpack 科学修改 node_modules 某个包的部分文件为本地文件

    需求总是千变万化,npm 不是万能的,node_modules 里面的文件也是需要维护的. 如果 npm install 安装了某个包,然而这个包里面部分文件不支持你的需求,这时候怎么办? 比如:ht ...

  4. Flask快速入门3

    十一,Flask Cookies Cookie以文本文件的形式存储在客户端的计算机上.其目的是记住和跟踪与客户使用相关的数据,以获得更好的访问者体验和网站统计信息. Request对象包含Cookie ...

  5. linux 查看jdk安装路径

    [root@iz2ze9ufq5ehrayz6j88saz bin]# java -version java version "1.8.0_191" Java(TM) SE Run ...

  6. Delphi 判断操作系统是32位或是64位

    function IsWin64: Boolean; var Kernel32Handle: THandle; IsWow64Process: function(Handle: Windows.THa ...

  7. 【C#】Winform嵌入dll到exe中

    [C#]Winform嵌入dll到exe中 零.问题 最近在做一个上位机,需要保存数据,所以引用了一些Excel的组件,但是比较麻烦的是会多出几个DLL文件,压缩打包不方便使用,于是想能不能嵌入到ex ...

  8. nodejs队列

    nodejs队列 创建具有指定并发性的队列对象.添加到队列的任务以并行方式处理(直到并发性限制).如果所有的worker都在进行中,任务就会排队,直到有一个worker可用.worker完成任务后,将 ...

  9. ubuntu 安装挂载mysql, redis和mongodb服务

    因为有两台电脑,所以准备把ubuntu电脑作成对外服务提供,各种数据库,中间件都使用docker安装管理,然后挂载配置和日志到本地,提供给另一台电脑的对外服务. 1. 安装docker sudo ap ...

  10. 一款让 Everything 更加如虎添翼的 .NET 开源辅助工具!

    前言 相信很多同学都应该用过 Everything 这个实用的 Windows 文件搜索神器吧,今天大姚给大家分享一款让 Everything 更加如虎添翼的 .NET 开源辅助工具:Everythi ...