linux总结--命令详解

linux命令特点

规则

区分大小写

命令名特点

#最常见的缩写,取每个单词的首字母,如

cd=Change Directory

dd=Disk Dump

df=Disk Free

du=Disk Usage

pwd=Print Working Directory

ps=Processes Status

PS=Prompt Strings

su=Substitute User

rc=Run Command

Tcl=Tool Command Language

cups=Common Unix Printing System

apt=Advanced Packaging Tool

bg=BackGround

ping=Packet InterNet Grouper

 

#如果首字母后为“h”,通常保留

chsh=CHange SHell

chmod=CHange MODe

chown=CHange OWNer

chgrp=CHange GRouP

bash=Bourne Again SHell

zsh=Z SHell

ksh=Korn SHell

ssh=Secure SHell

 

#递归缩写[回文]也属于这一类,如:

GNU=GNU's Not Unix

PHP=PHP: Hypertext Preprocessor

RPM=RPM Package Manager

WINE=WINE Is Not an Emulator

PNG=PNG's Not GIF

nano=Nano's ANOther editor

 

#如果只有一个单词,通常取每个音节的首字母:

cp=CoPy

ln=LiNk

ls=LiSt

mv=MoVe

rm=ReMove

 

#对于目录,通常使用前几个字母作为缩写:

bin=BINaries

dev=DEVices

etc=ETCetera

lib=LIBrary

var=VARiable

proc=PROCesses

sbin=Superuser BINaries

tmp=TeMPorary

usr=Unix Shared Resources

 

#这种缩写的其它情况

diff=DIFFerences

cal=CALendar

cat=CATenate

ed=EDitor

exec=EXECute

tab=TABle

regexp=REGular EXPression

 

#如果某种缩写比较深入人心,例如“mesg”代表“message”,在新的复合缩写中,将沿用这种缩写方式

dmesg=Diagnostic MESsaGe

sed=Stream EDitor

stty=Set TTY

fstab=FileSystem TABle

passwd=PASSWorD

 

#有些缩写中,第一个字母“g”,代表“GNU”

awk=Aho Weiberger and Kernighan

gawk=GNU AWK

gpg=GNU Privacy Guard

grep=GNU Regular Expression Print

egrep=Extended GREP

命令分类

内部命令:

属于Shell解析器的一部分

cd 切换目录(change directory)

pwd 显示当前工作目录(print working directory)

help 帮助

外部命令:

独立于Shell解析器之外的文件程序

ls 显示文件和目录列表(list)

mkdir 创建目录(make directoriy)

cp 复制文件或目录(copy)

内部命令与外部命令的区别

内部命令实际上是shell程序的一部分,其中包含的是一些比较简练的linux系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系统加载运行时shell就被加载并驻留在系统内存中。外部命令是linux系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以它们包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调进内存。通常外部命令的实体并不包含在shell中,但是其命令执行过程是由shell 程序控制的。shell程序管理外部命令执行的路径查找、加载存放,并控制命令的执行。

shell程序

Shell是一种具备特殊功能的程序, 它是介于使用者和 UNIX/linux 操作系统之核心程序(kernel)间的一个接口。

各种操作系统都有它自己的 shell,以 DOS 为例,它的 shell 就是 command.com文件。如同 DOS 下有 NDOS,4DOS,DRDOS 等不同的命令解译程序可以取代标准的command.com 。

UNIX/linux将 shell 独立于核心程序之外, 使得它就如同一般的应用程序, 可以在不影响操作系统本身的情况下进行修改、更新版本或是添加新的功能。

可以把shell看作是DOS下面的command.com(命令行解释器),而shell脚本就象是DOS的批处理文件(*.bat)。和DOS相比较,shell的功能要先进和丰富得多。

怎么区分内部外部命令

用man 命令试一下,如果不是会提示那些是内部命令,多用就知道了。

系统信息相关命令

ps

ps 用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。
  -e /-A 显示所有进程,环境变量
  -f 全格式
  -a 显示所有用户的所有进程(包括其它用户)
  -u 按用户名和启动时间的顺序来显示进程
  -x 显示无控制终端的进程

ps -ef 全格式显示所有进程

ps -ef | more 分页显示所有进程全格式。

df

df 显示文件系统磁盘空间的使用情况

语法:df [选项] [文件名]
参数选项:
-a:--all,显示所有的文件系统,包括虚拟文件系统。
-B:--block-size,指定单位大小。比如1k,1m等。
-h:--human-readable,以易读的GB、MB、KB等格式显示。
-H:--si,和-h参数一样,但是不是以1024,而是1000,即1k=1000,而不是1k=1024。
-i:--inodes,不用硬盘容量,而是以inode的数量来显示。
-k:以KB的容量显示各文件系统,相当于--block-size=1k。
-m:以KB的容量显示各文件系统,相当于--block-size=1m。
-l:--local,只显示本地文件系统。

[root@localhost demo]# df -h
文件系统                    容量  已用  可用 已用% 挂载点
devtmpfs                    3.7G     0  3.7G    0% /dev
tmpfs                       3.7G     0  3.7G    0% /dev/shm
tmpfs                       3.7G   17M  3.7G    1% /run
[root@localhost demo]# df -h /home
文件系统                    容量  已用  可用 已用% 挂载点
/dev/mapper/cl_fedora-home   20G  174M   20G    1% /home
[root@localhost demo]# df -h /data
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdb1       126G   49G   72G   41% /data
[root@localhost demo]# df -h /
文件系统                    容量  已用  可用 已用% 挂载点
/dev/mapper/cl_fedora-root   41G   19G   22G   46% /

filesystem:显示已挂载的文件系统的名称或设备

size:文件系统的总大小

used:已被文件系统使用的空间量

avail:文件系统中尚未被使用的可用空间

use%:文件系统已使用空间的百分比

mounted on:文件系统被挂载的目录或位置

挂载点:linux系统可以使用mount命令将一个文件系统附加到某个位置,该位置就成为文件系统的挂载点

被挂载的目录:一旦文件系统被挂载到挂载点上,就可以在挂载点下访问文件系统中的文件和目录

du

语法:du -sh [目录]

du 显示指定的文件(目录)已使用的磁盘空间的总大小

-h文件大小以K,M,G为单位显示(human-readable)

-s只显示各档案大小的总合(summarize)

# 查看当前目录下的总大小,单位自适应
[root@localhost local]# du -sh /root/demo/
18M	/root/demo/
# 查看当前目录下的文件大小,单位自适应
[root@localhost local]# du -sh /root/demo/*
4.0K	/root/demo/5429
68K	/root/demo/com
44K	/root/demo/fastjon-demo.log
18M	/root/demo/fastjson-attack.jar
0	/root/demo/io
4.0K	/root/demo/start-demo.sh
[root@localhost local]# 
# 查看当前目录下的总大小,单位 M
[root@localhost local]# du -sm /root/demo/
18	/root/demo/
# 查看当前目录下的文件大小,单位 M
[root@localhost local]# du -sm /root/demo/*
1	/root/demo/5429
1	/root/demo/com
1	/root/demo/fastjon-demo.log
18	/root/demo/fastjson-attack.jar
0	/root/demo/io
1	/root/demo/start-demo.sh
[root@localhost local]#

也可以直接到一个文件

[root@localhost local]# du -h xgss.txt
4.0k	xgss.txt

 

free 

free 显示当前内存和交换空间的使用情况

top 

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器

top 用来监控Linux的系统状况,比如cpu、内存的使用

top [-] [d] [p] [q] [c] [C] [S] [s] [n]

  • d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
  • p:通过指定监控进程ID来仅仅监控某个进程的状态。
  • q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
  • S:指定累计模式。
  • s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
  • i:使top不显示任何闲置或者僵死进程。
  • c:显示整个命令行而不只是显示命令名。

常用命令说明:

  • Ctrl+L:擦除并且重写屏幕
  • K:终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
  • i:忽略闲置和僵死进程。这是一个开关式命令。
  • q:退出程序
  • r:重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
  • S:切换到累计模式。
  • s:改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。
  • f或者F:从当前显示中添加或者删除项目。
  • o或者O:改变显示项目的顺序
  • l:切换显示平均负载和启动时间信息。
  • m:切换显示内存信息。
  • t:切换显示进程和CPU状态信息。
  • c:切换显示命令名称和完整命令行。
  • M:根据驻留内存大小进行排序。
  • P:根据CPU使用百分比大小进行排序。
  • T:根据时间/累计时间进行排序。
  • W:将当前设置写入~/.toprc文件中。

#top

第一行,任务队列信息,同 uptime 命令的执行结果

  • 系统时间:13:32:27
  • 运行时间:up 2day,21:22min,
  • 当前登录用户:  2 user
  • 负载均衡(uptime)  load average: 1.27, 2.05, 2.38

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

第二行,Tasks — 任务(进程)

  • 总进程:291 total, 运行:2 running, 休眠:289 sleeping, 停止: 0 stopped, 僵尸进程: 0 zombie

第三行,cpu状态信息

  • 9.9 us【user space】— 用户空间占用CPU的百分比。
  • 6.0 sy【sysctl】— 内核空间占用CPU的百分比。
  • 0.0 ni【】— 改变过优先级的进程占用CPU的百分比
  • 82.6 id【idolt】— 空闲CPU百分比
  • 0.5 wa【wait】— IO等待占用CPU的百分比
  • 0.0 hi【Hardware IRQ】— 硬中断占用CPU的百分比
  • 1.0 si【Software Interrupts】— 软中断占用CPU的百分比

第四行,内存状态

  •   12137972k total 物理内存总量
  • ,   229296k used 使用的内存总量
  • ,  5973780k free 空闲的内存总量
  •   5941496k buffers【缓存的内存量】

第五行,swap交换分区信息

  • 0k total交换区总量
  • 0k free,空闲交换区
  •  0k used使用的交换区  
  • 505864k avail Mem 可用内存

对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

第六行: 空行

第七行

  • 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时间占用百分比,如果一共有8个核,最大可到800% 
  • %MEM — 进程使用的物理内存百分比
  • TIME+ — 进程使用的CPU时间总计,单位1/100秒
  • COMMAND — 进程名称(命令名/命令行)

执行了top,按1可以查看每个cup的使用情况

jsp

jps (Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令

ls

用法:ls [选项]... [文件]...
没有指定目录显示当前目录下的内容
指定目录显示指定把目录下的内容

-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-d 只列出目录(不递归列出目录内的文件)。
-l 以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。
-r 倒序显示文件和目录。
-t 将按照修改时间排序,最新的文件在最前面。
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 递归显示目录中的所有文件和子目录。
#不指定目录,显示当前目录下所有的文件/目录名字
# ls 
bin   dev   lib xgss.txt
#指定目录,显示指定目录下所有的文件/目录名字
# ls xgss
xgss1 xgss1.txt
#-l显示目录下文件/目录的详细信息
# ls -l
-rw-r--r-- 1 user group 4096 Feb 21 12:00 xgss
-rw-r--r-- 1 user group 4096 Feb 21 12:00 xgss1.txt
#-l显示目录下文件/目录的详细信息,大小带上单位
# ls -lh
-rw-r--r-- 1 user group 4.0k Feb 21 12:00 xgss
-rw-r--r-- 1 user group 4.0k Feb 21 12:00 xgss1.txt
#-l显示目录下指定文件/目录的详细信息
# ls -l xgss.txt
-rw-r--r-- 1 user group 4096 Feb 21 12:00 xgss.txt
#ls *.xxx        显示后缀为xxx的文件
#ls *.txt
xgss.txt
#列出文件或者目录,其中目录会以/结尾
# ls -F
bin/   dev/   lib/ xgss.txt

 -l详细说明

总用量 XX表示当前目录下总的文件大小(K),如果是英文环境则是total XX

 1)表示文件的类型

                - 普通文件

                d 目录文件

                p 管理文件

                l 链接文件

                b 块设备文件

                c 字符设备文件

                s 嵌套字文件

        2)所有者/所有者权限

                r 读权限

                w 写权限

                x 可执行权限

                - 无权限

        3)组用户权限(一个组中除所有者拥有的权限)

        4)其他用户权限(除当前所有者的组,其他组可以进行访问的权限)

        5)

                a.如果是普通用户,这个数字指的是链接数

                b.如果是目录文件,这个数字指的是它的第一级子目录数

        6)用户名

        7)组名

        8)文件大小(字节)

        9)最后修改时间

        10)文件名

看安装的系统位数

uname -a

查看jdk安装路径

which java

lsof

命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。

如:查看9096端口是否被占用

 lsof -i:9096

查看linux版本

more /etc/issue

不同的linux显示是不同的

查看外网ip

curl members.3322.org/dyndns/getip

查看当前时间

date

 

查看文件的修改时间

查看awk.txt

stat awk.txt

whereis命令

用于查找文件
whereis [-bfmsu][-B ...][-M ...][-S ...][文件...]

参数 描述
-b 定位可执行文件。
-m 定位帮助文件。
-s 定位源代码文件。
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
-B 指定搜索可执行文件的路径。
-M 指定搜索帮助文件的路径。
-S 指定搜索源代码文件的路径。

查看指令”bash”的位置

whereis bash

输出:
bash: /bin/bash /etc/bash.bashrc /usr/share/man/man1/bash.1.gz


说明: 以上输出信息从左至右分别为查询的程序名、bash路径、bash的man 手册页路径。

显示bash 命令的二进制程序的地址

whereis -b bash
输出:
bash: /bin/bash /etc/bash.bashrc

which命令

查看可执行文件的位置,which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的,搜索某个系统命令的位置,并且返回第一个搜索结果。
which [文件...]
参数:

-n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w  指定输出时栏位的宽度。
-V  显示版本信息。

which lsmod
输出:
/bin/pwd

stat命令

用于显示文件的状态信息,stat命令的输出信息比ls命令的输出信息要更详细。

使用语法
用法:stat [OPTION]… FILE…

参数 参数说明
-L 支持符号连接;
-f 显示文件系统状态而非文件状态;
-c 按照指定格式输出;
-t 以简洁方式输出信息;
--help 显示指令的帮助信息;
--version 显示指令的版本信息。
格式符 格式符说明
%a 八进制中的访问权限
%A 人类可读形式的访问权
%b 分配的块数(请参阅%B)
%B %b报告的每个块的大小(字节)
%C SELinux安全上下文字符串
%d 十进制设备编号
%D 十六进制的设备编号
%f 十六进制原始模式
%F 文件类型
[root@Gin scripts]#stat date.txt
  File: `date.txt'
  Size: 40              Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d      Inode: 261790      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-01-29 10:49:25.119790781 +0800
Modify: 2017-01-29 10:49:11.961790098 +0800
Change: 2017-01-29 10:49:11.961790098 +0800

File:显示文件名
Size:显示文件大小,单位是bit ,1 Byte(B) = 8 bit
Blocks:文件使用的数据块总数,通常的 Linux 块大小为 512 字节
IO Block:IO块大小
regular file:文件类型(常规文件)
Device:设备编号
Inode:Inode号
Links:链接数
Access:文件的权限
Gid、Uid:文件所有权的Gid和Uid
access time:表示我们最后一次访问(仅仅是访问,没有改动)文件的时间
modify time:表示我们最后一次修改文件的时间

 

stat --help 获取命令帮助
stat --version 查看命令版本
stat test.sh 查看文件状态信息
stat -f test.sh  -f查看文件所在文件系统状态信息
stat -t test.sh -t以简洁形式输出文件信息
stat -L test.sh -L显示软连接原始文件状态信息
stat -c %u test.sh 或者stat -c %U test.sh 获取文件所属用户或者用户ID
stat -c %G test.sh 或者stat -c %g test.sh 获取文件所属用户组或者用户组ID
stat -c %m test.sh 或者 stat -c %m /home/wuhs 获取文件磁盘挂载点
stat -c %x test.sh 获取文件访问时间
stat -c %y test.sh 获取文件修改时间
stat -c %z test.sh 获取文件更改时间
stat -c %A test.sh 或者stat -c %a test.sh 获取文件权限

 

系统操作相关命令

关机/重启命令

shutdown系统关机

  -r 关机后立即重启

  -h 关机后不重新启动

halt 关机后关闭电源

reboot 重新启动

 

systemctl

systemctl   动作   服务名.service

systemctl stop httpd.service 关闭服务

systemctl start httpd.service 开启服务

systemctl restart httpd.service 重启服务

systemctl status httpd.service 查看服务状态

systemctl和systemd

Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器

systemctl是 Systemd 的主命令,用于管理系统。

systemd全称:system daemon 字母d是守护进程(daemon)的缩写,就是它要守护整个系统。

Systemd是一个系统管理守护进程、工具和库的集合

Systemd的功能是用于集中管理和配置类UNIX系统。

显示系统状态:
$ systemctl status

立即激活单元:
# systemctl start [单元]

立即停止单元:
# systemctl stop [单元]

重启单元:
# systemctl restart [单元]

开机自动激活单元:
# systemctl enable [单元]

取消开机自动激活单元:
# systemctl disable [单元]

命令单元重新读取配置:
# systemctl reload [单元]

输出单元运行状态:
$ systemctl status [单元]

检查单元是否配置为自动启动:
$ systemctl is-enabled [单元]

显示单元的手册页:
# systemctl help [单元]

重新载入 systemd,扫描新的或有变动的单元:
# systemctl daemon-reload

输出激活的单元:
$ systemctl list-units

查看已激活的服务:
$ systemctl list-units -t service

输出运行失败的单元:
$ systemctl --failed

禁用一个单元:
# systemctl mask [单元]

取消禁用一个单元:
# systemctl unmask [单元]

查看所有已安装服务:
$ systemctl list-unit-files

检查某个服务的所有配置细节
# systemctl show [服务]

获取某个服务的依赖性列表
# systemctl list-dependencies [服务]

查看环境变量
$ systemctl show-environment

重启系统
# systemctl reboot

关闭系统
# systemctl poweroff

进入待机状态
# systemctl suspend

进入休眠状态
# systemctl hibernate

进入混合休眠模式
# systemctl hybrid-sleep

进入救援状态
# systemctl rescue

service

service 命令用于对系统服务进行管理。比如启动 (start) 、停止 (stop)、重启  (restart)、重新加载配置  (reload)、 查看状态 (status)等
service 命令是系统管理员命令,需要管理员权限才可以执行。service 命令本质上是一个 Shell 脚本,地址一般为 /sbin/service

可以通过cat /sbin/service来进行查看这个脚本

service < option > | --status-all | [ service_name [ command | --full-restart ] ]

service_name表示管理服务的脚本,存在 /etc/init.d/目录下;COMMAND 是传递给 SCRIPT 的参数

如果你的执行命令为service mysql stop start,那么就相当于执行了/etc/init.d/mysql stop start

将 MySQL 注册为系统服务,使用 service 命令管理。需要将 MySQL 的管理脚本 mysql.server 更名为 mysqld 放在 /etc/init.d/目录

 service -h :查看命令帮助

 service --status-all:显示所服务的状态

 

网络相关命令

netstat

netstat 显示网络状态信息
  -a 显示所有连接和监听端口
  -t (tcp)仅显示tcp相关选项
  -u (udp)仅显示udp相关选项
  -n 拒绝显示别名,能显示数字的全部转化成数字。
  -p 显示建立相关链接的程序名

kill

设置为静态ip

vim /etc/sysconfig/network-scripts/ifcfg-etho

如修改为:

DEVICE="eth0"
BOOTPROTO=“static"
HWADDR="00:0C:29:62:4C:2B"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="1acc3359-b1fd-4ac8-b044-58b5fe5a16ce“
IPADDR="192.168.24.20"
NETMASK="255.255.255.0"
GATEWAY="192.168.24.1"
DNS1="8.8.8.8"
DNS2="8.8.4.4"

 

posted @ 2022-11-15 10:37  星光闪闪  阅读(238)  评论(0)    收藏  举报