Linux常用命令

我怕爱的太早我们不能终老 提交于 2019-12-01 10:39:56

df 显示文件系统的磁盘统计信息

-a 包含全部的文件系统;

-h 以可读性较高的方式来显示信息;

du命令用于显示目录或文件的大小

-a 显示该目录下的所有文件大小

-h 提高信息的可读性

-b 以字节为单位进行显示

fdisk 硬盘分区命令

eg. fdisk /dev/sda1 编辑 /dev/sda1分区,执行之后按照提示可以硬盘进行分区

mkfs 格式化磁盘命令

-t 指定文件系统的类型; eg. mfks -t ext3 /dev/sda2

mount 挂载系统命令

mount <device> <mount point> 将设备device挂载到mount point下

-a 加载文件”/etc/fstab”中描述的所有文件系统

对应的卸载命令 umount <device>

fstab文件 

配置文件/ etc / fstab包含自动执行分区安装过程的必要信息,语法如下:

 [Device]   [Mount Point]   [File System Type]   [Options]   [Dump]   [Pass]

字段的含义如下:

<Device>

包含文件系统的设备/分区(通常为/dev或UUID)

<[Mount Point>

挂载点,可以从中访问设备/分区的内容(注意:swap没有挂载点)

< File System Type >

文件系统的类型

< Options >

挂载访问设备/分区的选项

< Dump >

启用或禁用设备/分区的备份(命令转储),此字段通常设置为0,禁用它

< Pass >

控制fsck在引导时检查设备/分区错误的顺序,根设备应为1.其他分区应为2或0以禁用检查

 

 

 

 

 

 

 

 

 

 

 

 

 

ps 列出当前进程信息

进程的5种状态码:

D 不可中断  (收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) 

R 运行 (正在运行或在运行队列中等待) 

S 中断 (休眠中, 受阻, 在等待某个条件的形成或接受到信号)

T 停止 (进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

Z 僵死  (进程已终止,但进程描述符存在,直到父进程调用wait()系统调用后释放)

-a 显示同一终端下的所有程序

-f  显示程序间的关系

-u  指定用户的所有进程

-x 显示所有程序,不以终端机来区分

ps aux (ps ef)

USER:该 process 属于那个使用者账号的

PID :该 process 的号码

%CPU:该 process 使用掉的 CPU 资源百分比

%MEM:该 process 所占用的物理内存百分比

VSZ :该 process 使用掉的虚拟内存量 (Kbytes)

RSS :该 process 占用的固定的内存量 (Kbytes)

TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。

STAT:该程序目前的状态,主要的状态有

R :该程序目前正在运作,或者是可被运作

S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。

T :该程序目前正在侦测或者是停止了

Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (僵尸) 程序的状态

START:该 process 被触发启动的时间

TIME :该 process 实际使用 CPU 运作的时间

COMMAND:该程序的实际指令

sed 流编辑器

  • 逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然

后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示。处理

完输入文件的最后一行后,sed便结束运行。sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。

  • 相关命令:

a\ 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行

c\ 用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用”\”续行

i\ 在当前行之前插入文本。多行时除最后一行外,每行末尾需用”\”续行

d 删除行

p 打印行

s 用一个字符串替换另一个字符串

g 在行内进行全局替换

w将所选的行写入文件

y将字符替换为另一字符(不能对正则表达式使用y命令)

  • 相关选项:

-e进行多项编辑,即对输入行应用多条sed命令时使用

-i 直接修改读取的文件内容,而不是输出到屏幕上

-r 让sed支持扩展的正则表达式(默认是基础的正则表达式)

-n 取消默认的输出(默认为输出所有行)

-f指定sed脚本的文件名

  • 在字符替换中,可能会遇见引号,“/”等的替换,这时应该注意,sed的命令原型是:

sed -i  "s/oldstring/goalstring/g" file

如果一个路径是data/path/abc,现在要将此路径换成一个字符串cde但是这时跟在s后边的其实是分隔符,用以将oldstring替换成cde;他可以使用任意字符,这时如果字符串中有“/”,就会发生混乱,在这个时候可以用#当做分隔符,就变成

sed -i "s#abc#cde#g" file

这时如果abc中包含“/”就可以随便替换了;

  • 引号的替换:需要将引号转义,使用反斜杠“\”,比如替换" ' 'div' ' ",如果需要将它替换成‘div' ;可以使用sed -i s#\"\'\'#\'#g就能替换了。

awk命令

  • AWK是一种处理文本文件的语言。它将文件作为记录序列处理。在一般情况下,文件内容的每行都是一个记录。每行内容都会被分割成一系列的域,因此,我们可以认为一行的第一个词为第一个域,第二个词为第二个,以此类推。
  • AWK程序是由一些处理特定模式的语句块构成的。AWK一次可以读取一个输入行。对每个输入行,AWK解释器会判断它是否符合程序中出现的各个模式,并执行符合的模式所对应的动作。
  • AWK程序是由一系列模式--动作对组成的,写做

pattern { action }

  其中pattern表示AWK在数据中查找的内容,而action是在找到匹配内容时所执行的一系列命令。输入行被分成了一些记录:记录默认由换行符分割,因此输入会按照行进行分割。

  • 程序使用给定的条件一个个的测试每条记录,并执行测试通过的条件所对应的action。pattern和action都可以省略不写。无pattern默认匹配全部的记录;而无action则是打印原始记录。

print命令

  • print 命令用于输出文本。其输出的文本总是以"输出记录分隔符"(Output record separator, ORS)分割的,其默认值为换行符。该命令的最简形式为:

print 会输出当前记录的内容。

  • AWK的内建变量包括域变量,例如$1, $2, $3..$n,以及$0。$0是指整个记录。

这些变量给出了记录中域的内容。 内建变量也包括一些其他变量:

NR:已输入记录的条数。

NF:当前记录中域的个数。记录中最后一个域可以以$NF的方式引用。

FILENAME:当前输入文件的文件名。

FS:“域分隔符”,用于将输入记录分割成域。其默认值为“空白字符”,即空格和制表符。FS可以替换为其它字符,从而改变域分隔符。

RS:当前的“记录分隔符”。默认状态下,输入的每行都被作为一个记录,因此默认记录分隔符是换行符。

OFS:“输出域分隔符”,即分隔print命令的参数的符号。其默认值为空格。

ORS:“输出记录分隔符”,即每个print命令之间的符号。其默认值为换行符。

OFMT:“输出数字格式”(Format for numeric output),其默认值为"%.6g"。

tail 动态跟踪文件内容

tail –f –n 10 等价于 tailf 命令 默认打印最后10行

随着文件的增长,输出附加数据;(动态输出最新的信息),适用于日志信息的输出

scp 远程安全拷贝

  • scp是secure copy的简写,scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。

-r  递归复制整个目录。  

-v 详细方式显示输出。

Eg. scp  –r root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/

  • 命令格式:  

scp local_file remote_username@remote_ip:remote_folder  (or file)

或者  

scp local_file remote_ip:remote_folder  (or file)

1个指定了用户名,命令执行后需要输入用户密码

第2个没有指定用户名,命令执行后需要输入用户名和密码

netstat 网络信息统计

-a (all)显示所有选项,默认不显示LISTEN相关

-t (tcp)仅显示tcp相关选项

-u (udp)仅显示udp相关选项

-n 拒绝显示别名,能显示数字的全部转化成数字。

-l 仅列出有在 Listen (监听) 的服務状态

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

-r 显示路由信息,路由表(route命令功能相似

-e 显示扩展信息,例如uid等

-s 按各个协议进行统计

-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

route 内核路由表设置

-c 显示更多信息

-n 不解析名字

-v 显示详细的处理信息

-F 显示发送信息

-C 显示路由缓存

-f 清除所有网关入口的路由表。 

-p 与 add 命令一起使用时使路由具有永久性。

  •  输出项说明

Destination 目标网段或主机

Gateway 网关地址

Genmask 网络掩码

Flags 对于一个给定的路由器,可以打印出五种不同的标志(Flag):

U 该路由可以使用。

G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地是直接相连的。

H 该路由是到一个主机,也就是说目的地址是一个完整的主机地址。如果没有设置该标志,说明该路由是到一个网络,而目的地址是一个网络地址:一个网络号,或者网络号与子网号的组合。

D 该路由是由重定向报文创建的。 M 该路由已被重定向报文修改。

Metric 路由距离,到达指定网络所需的中转数(linux 内核中没有使用)

Ref 路由项引用次数(linux 内核中没有使用)

Use 此路由项被路由软件查找的次数

Iface 该路由表项对应的输出接口

  • 配置静态路由

# route  [add | del]  [-net | -host]  target  [netmask  Nm]  [gw Gw]  [[dev] If]

add : 添加一条路由规则

del : 删除一条路由规则

-net : 目的地址是一个网络

-host : 目的地址是一个主机

target : 目的网络或主机

netmask : 目的地址的网络掩码

gw : 路由数据包通过的网关

dev : 为路由指定的网络接口

grep

grep –nr “tongyishu”在当前目录下的所有文件中递归搜索”tongyishu”字段

grep “tongyishu” filename 在指定文件中搜索”tongyishu“字段

 

 

 

 

 

 

 

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!