Linux系统运维学习---常用命令集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统运维学习---常用命令集相关的知识,希望对你有一定的参考价值。

 

一、shell和内核的关系  

1.1内核  

1)计算机由各种硬件(运算器--CPU、控制器---CPU 、存储器、输入输出设备等)组成,系统内核就是使硬件间相互独立工作和协同工作即对硬件资源的管理、调度等。因为内核过于重要 所以不建议直接对内核操作(对于某些服务需要修改内核参数一般是通过管理工具进行)

2)Linux中具备一些图形工具如LVM---逻辑卷管理(存储设备)、RAID磁盘冗余阵列

图形界面的根本是调用脚本,通用性并不强

3)安装图形界面: yum groupinstall "X window System" Desktop;启动:startx

 

1.2 shell  

1)Linux系统中输入的大多数命令,系统内核不能直接识别,能够解释这些命令让系统内核识别的工具就是shell,所以shell也叫解释器。

2)shell包裹着内核,接通内核某些API(用户接口),包括红帽在内的Linux版本,默认使用bash shell 解释器

 

二、bash解释器的优势  

1)通过上下键调取曾经使用的命令(命令很多,可以用history命令查询)

2)命令或者参数,可以通过tab补全

3)可以批处理(如创建用户)

4)具备某些实用的环境变量(预设值的某些参数,如PATH、 SHELL)

 

三、Linux下常用的命令集  

3.1命令格式:(命令+参数+对象)  

参数:长格式(如--help):服务、程序调试等额外参数

短格式(如-h):执行简单的命令

对象:要处理的文件、目录、用户等等资源

 

3.1.1查看帮助命令  

1)help 帮助命令 (属于Linux内部命令)

2)man 帮助命令 (属于Linux外部命令)

3)man 用法:man+命令名:用于查询命令的使用方式和参数

按键

用处

空格键

向下翻一页

PaGe down

向下翻一页

PaGe up

向上翻一页

Home

直接前往首页

End

直接前往尾页

/

从上至下搜索某个关键词,如“/linux”

?

从下至上搜索某个关键词,如“?linux”

N

定位到下一个搜索到的关键词

N

定位到上一个搜索到的关键词

Q

退出帮助文档

结构名称

代表意义

NAME

命令的名称

SYNOPSIS

参数的大致使用方法

DESCRIPTION

介绍说明

EXAMPLES

演示(附带简单说明)

OVERVIEW

概述

DEFAULTS

默认的功能

OPTIONS

具体的可用选项(带介绍)

ENVIRONMENT

环境变量

FILES

用到的文件

SEE ALSO

相关的资料

HISTORY

维护历史与联系方式

 

3.2常用系统工作命令  

3.2.1 echo命令  

用于在终端输出字符串或者变量提取后的值:

[[email protected] ~]# echo i am a learner

i am a learner

 

3.2.2 date命令  

用于显示及设置时间的命令,用+开头的参数:

参数

作用

%t

跳格[Tab键]

%H

小时(00~23)

%I

小时(00~12)

%M

分钟(00~59)

%S

秒(00~59)

%j  

%m  

%Y

今年中的第几天

月(01~12)

[[email protected] ~]# date "+%Y-%m-%d %H:%M:%S"

2018-04-04 16:20:16

[[email protected] ~]# date -s "20150101 10:10:10" //设定时间

Thu Jan 1 10:10:10 CST 2015

[[email protected] ~]# date

Thu Jan 1 10:10:11 CST 2015

[[email protected] ~]# ntpdate server 192.168.2.1 //指定ntp时间服务器

 

3.2.3 reboot 、poweroff 、shutdown  

用于设备重启、关闭(必须具备超级管理员权限):

[[email protected] ~]# su test

[[email protected] root]$ poweroff

poweroff: Need to be root

[[email protected] root]$ reboot

reboot: Need to be root

 

3.2.4 wget命令  

用于在终端下载网络文件,格式:wget + url(网站地址):  

[[email protected] ~]# wget http://www.mqzzl.fun/mu.jpg

--2018-05-07 00:27:27-- http://www.mqzzl.fun/mu.jpg

Resolving www.mqzzl.fun... 47.104.195.140

Connecting to www.mqzzl.fun|47.104.195.140|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 29497 (29K) [image/jpeg]

Saving to: “mu.jpg”

100%[================================================>] 29,497 --.-K/s in 0.02s

2018-05-07 00:27:27 (1.57 MB/s) - “mu.jpg” saved [29497/29497]

参数

作用

-b

后台下载模式

-P

下载到指定目录

-t

最大尝试次数

-c

断点续传

-p

下载页面内所有资源,包括图片、视频等

-r

递归下载(当前站点所有的目录和目录内的内容)

[[email protected] ~]# wget -r -p http://www.mqzzl.fun/  

 

3.2.5 ps命令  

用于查看系统中进程状态,主要还是抓取PID(端口号):

参数

作用

-a

显示所有进程(包括其他用户的进程)

-u

用户以及其他详细信息

-x

显示没有控制终端的进程

[[email protected] ~]# ps aux

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND

root 1 0.0 0.0 19360 1536 ? Ss May06 0:02 /sbin/init

root 2 0.0 0.0 0 0 ? S May06 0:00 [kthreadd]

注意:参数使用上,长命令不允许联合使用;短格式和长格式也不能联和使用;短格式和短格式可以

 

3.2.6 top命令  

用于动态的监控进程活动和系统负载信息,类似windows任务管理器:

[[email protected] ~]# top

top - 00:52:12 up 2:16, 1 user, load average: 0.00, 0.00, 0.00

Tasks: 142 total, 1 running, 141 sleeping, 0 stopped, 0 zombie

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

Mem: 1906556k total, 1100336k used, 806220k free, 52916k buffers

Swap: 4194296k total, 0k used, 4194296k free, 812312k cached

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

2553 root 20 0 45096 884 584 S 0.3 0.0 0:01.12 udisks-daemon

3003 root 20 0 15036 1256 948 R 0.3 0.1 0:00.10 top

 

3.2.7 pidof命令  

用于查询某个进行服务的PID值(每个服务进程PID都是唯一的):

[[email protected] ~]# pidof sshd

2764 1402

 

3.2.8 kill命令  

用于终止指定的PID服务:

[[email protected] ~]# pidof httpd

3086 3085 3084 3083 3082 3081 3080 3079 3077

[[email protected] ~]# kill 3086 3085

[[email protected] ~]# pidof httpd

3084 3083 3082 3081 3080 3079 3077 //只能杀死指定的PID

 

3.2.9 killall命令  

用于终止一类服务(通过服务名称):

[[email protected] ~]# killall httpd

[[email protected] ~]# pidof httpd

[[email protected] ~]# netstat -lnt | grep 80

[[email protected] ~]# //PID被全部杀死

 

3.3常用系统状态检测命令  

3.3.1 ifconfig命令  

用于查看本机当前的网络配置和网络状态信息:

[[email protected] ~]# ifconfig

eth0 Link encap:Ethernet HWaddr 00:0C:29:BF:DE:31

inet addr:192.168.2.200 Bcast:192.168.2.255 Mask:255.255.255.0

inet6 addr: fd7b:a22e:43e6:0:20c:29ff:febf:de31/64 Scope:Global

inet6 addr: fe80::20c:29ff:febf:de31/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:8003 errors:0 dropped:0 overruns:0 frame:0

TX packets:7430 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:1405291 (1.3 MiB) TX bytes:1303049 (1.2 MiB)

还可以临时修改IP地址重启网卡失效

[[email protected] ~]# ifconfig eth0 add 192.168.2.201

 

3.3.2 uname命令  

用于查看当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)

-a:完整查看系统内核、主机名、内核发行版本、节点名、发行时间、硬件名、硬件

台、处理器类型、操作系统名称等等:

[[email protected] ~]# uname –a

Linux RHEL6 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64

x86_64 x86_64 GNU/Linux


-r:只查看系统内核:

[[email protected] ~]# uname -r

2.6.32-431.el6.x86_64


-n:只显示主机名:

[[email protected] ~]# uname -n

RHEL6


查看系统版本:

[[email protected] ~]# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 6.5 (Santiago)

 

3.3.3 uptime命令  

用于查看系统负载信息:

[[email protected] ~]# uptime

02:53:12 up 34 min, 2 users, load average: 0.00, 0.00, 0.00

 

3.3.4 free命令  

用于显示当前系统中内存使用信息:

[[email protected] ~]# free

total used free shared buffers cached

Mem: 1906556 219524 1687032 0 14432 73100

-/+ buffers/cache: 131992 1774564

Swap: 4194296 0 4194296

注:buffers:磁盘缓存;cached:内存缓存

 

3.3.5 who命令  

用于查看当前登录主机用户终端信息:

[root[email protected] ~]# who

root tty1 2018-05-07 02:19

root pts/0 2018-05-07 02:37 (192.168.100.1)

 

3.3.6 last命令  

用于查看所有系统登录记录:

[[email protected] ~]# last

root pts/0 192.168.100.1 Mon May 7 02:37 still logged in

root pts/0 192.168.100.1 Mon May 7 02:20 - 02:37 (00:17)

root tty1 Mon May 7 02:19 still logged in

reboot system boot 2.6.32-431.el6.x Mon May 7 02:18 - 03:03 (00:44)

 

3.3.7 history命令  

1)用于查看使用过的命令,可以用!+数字执行历史命令:

[[email protected] ~]# history

1 history

2 ifconfig

3 history

4 uname -r

5 ping

6 history

[[email protected] ~]# !4

uname –r

2.6.32-431.el6.x86_64

 

2)默认存储最近的1000条,可以通过修改/etc/profile中的HISTSIZE变量进行变更

 

3)清空history命令:

-c:全部清空

[[email protected] ~]# history -c

[[email protected] ~]# history

1 history

 

-d+数字:清空指定命令

[[email protected] ~]# history

1 uname -r

2 history

[[email protected] ~]# history -d 1

[[email protected] ~]# history

1 history

2 history -d 1

3 history

 

/etc/profile内增加一个参数 HISTCONTROL=ignorespace,可以灵活选择保存命令(命令前+空格)

[[email protected] ~]# vi /etc/profile

[[email protected] ~]# source /etc/profile

[[email protected] ~]# uname -r

2.6.32-431.el6.x86_64

[[email protected] ~]# uname -n

RHEL6

[[email protected] ~]# history //可以看到没有保存uname-n

1 uname -r

2 history

 

3.4工作目录切换命令  

3.4.1 pwd命令  

用于查看当前的路径:

[[email protected] ~]# pwd

/root

 

3.4.2 cd命令  

用于目录切换

cd ~

返回当前用户家目录下

cd -

返回上次所在位置

cd .

进入当前目录

cd ..

进入父目录(上级目录)

cd +路径

最好从根开始

[[email protected] ~]# cd /etc/sysconfig

[[email protected] sysconfig]#

[[email protected] sysconfig]# cd /var/

[[email protected] var]# cd -

/etc/sysconfig

[[email protected] sysconfig]# cd ~

[[email protected] ~]#

[[email protected] var]# cd /var/

[[email protected] var]# cd ../root

[[email protected] ~]#

 

3.4.3 ls 命令  

用于显示当前命令的文件信息

参数

作用

-a

显示所有(包括隐藏文件)

-l

以列显示文件属性、时间、大小等

-d

显示目录属性等

-h

以G/M/K为单位显示

[[email protected] ~]# ls

anaconda-ks.cfg Documents install.log Music Public Videos

Desktop Downloads install.log.syslog Pictures Templates www.mqzzl.fun

[[email protected] ~]# ls -l Downloads/ //不加参数d显示文件夹内的内容

total 0

[[email protected] ~]# ls -ld Downloads/

drwxr-xr-x. 2 root root 4096 Apr 4 15:09 Downloads/ //加参数d显示文件夹的属性

 

3.5文本编辑命令---增删改查  

3.5.1 查看命令  

1)cat:用于查看纯文本文件,适用于内容较少的文件:

[[email protected] ~]# cat install.log

Installing libgcc-4.4.7-4.el6.x86_64

Installing setup-2.8.14-20.el6_4.1.noarch

Installing tzdata-2013g-1.el6.noarch

 

-n 显示行号

[[email protected] ~]# cat -n install.log

1 Installing libgcc-4.4.7-4.el6.x86_64

2 Installing setup-2.8.14-20.el6_4.1.noarch

3 Installing tzdata-2013g-1.el6.noarch

 

2)more:适用于查看长文本,显示百分比,只能向下翻页,不能回翻

[[email protected] ~]# more install.log

Installing libgcc-4.4.7-4.el6.x86_64

Installing setup-2.8.14-20.el6_4.1.noarch

Installing tzdata-2013g-1.el6.noarch

Installing filesystem-2.4.30-3.el6.x86_64

--More--(4%)

 

3)less:适用于查看长文本,可以上下翻页

 

4)head:用于查看文件头部,默认头10行

–n指定显示多少:

[[email protected] ~]# head -n 4 install.log

Installing libgcc-4.4.7-4.el6.x86_64

Installing setup-2.8.14-20.el6_4.1.noarch

Installing tzdata-2013g-1.el6.noarch

Installing filesystem-2.4.30-3.el6.x86_64

 

5)tail:用于查看文件尾部,默认尾10行

-n 指定显示多少:

[[email protected] ~]# tail -n 5 install.log

Installing rootfiles-8.1-6.1.el6.noarch

Installing man-pages-3.22-20.el6.noarch

Installing words-3.0-17.el6.noarch

Installing redhat-indexhtml-6-6.el6.noarch

*** FINISHED INSTALLING PACKAGES ***

-f 用于动态查看

 

3.5.2 tr命令  

用于临时替换:

[[email protected] Downloads]# cat test.txt

hello

[[email protected] Downloads]# cat test.txt | tr [a-z] [A-Z]

HELLO

 

3.5.3 diff命令  

用于比较多个文本的区别:

[[email protected] Downloads]# diff test.txt test1.txt

1c1,2

< hello

---

> HELLo

> good

注意:以<开始的行属于文件1,以>开始的行属于文件2。

 

3.6文件目录管理命令  

3.6.1 touch命令  

用于创建空白文件:

[[email protected] Downloads]# touch test

[[email protected] Downloads]# ls -l

total 0

-rw-r--r--. 1 root root 0 May 7 08:30 test

 

3.6.2 mkdir命令  

用于创建目录:

[[email protected] Downloads]# mkdir temp

[[email protected] Downloads]# ll

total 4

drwxr-xr-x. 2 root root 4096 May 7 08:34 temp

-rw-r--r--. 1 root root 0 May 7 08:30 test

-p:递归创建目录:

[[email protected] Downloads]# mkdir -p ./a/b/c

[[email protected] Downloads]# ls -d ./a/b/c

./a/b/c

 

3.6.3 cp命令  

用于复制:cp 源文件 目的文件:

[[email protected] Downloads]# ls

a temp test

[[email protected] Downloads]# cp test tsep

[[email protected] Downloads]# ls

a temp test tsep

 

3.6.4 mv命令  

用于移动(重命名):mv 源文件 目的文件:

[[email protected] Downloads]# ls

a temp test tsep

[[email protected] Downloads]# mv a b

[[email protected] Downloads]# ls

b temp test tsep

 

3.6.5 rm命令  

用于删除

-r:删除目录

[[email protected] Downloads]# ls

b temp

[[email protected] Downloads]# rm -r b

rm: descend into directory `b'? y

rm: descend into directory `b/b'? y

rm: remove directory `b/b/c'? y

rm: remove directory `b/b'? y

rm: remove directory `b'? y

[[email protected] Downloads]# ls

Temp

-f:强制删除:

[[email protected] Downloads]# ls

temp

[[email protected] Downloads]# rm -rf temp/

[[email protected] Downloads]# ls

[[email protected] Downloads]#

注意:慎用rm -rf /*

 

四、组合使用命令集  

4.1管道符  

把前一个命令原本要输出到屏幕上的内容,当作后一个命令执行的条件

格式:命令A | 命令B | 命令C | …

如:输出ps aux命令的行数:

[[email protected] Downloads]# ps aux | wc –l

135

如:修改root密码:

[[email protected] Downloads]# echo zaq1xsw2 | passwd --stdin root

Changing password for user root.

passwd: all authentication tokens updated successfully.

 

4.2命令行的通配符  

*

匹配零个或者多个字符

匹配单个字符

[0-9]

匹配任何数字

[a-z]

匹配小写字母

[A-Z]

匹配大写字母

[135]

匹配1、3、5中任何一个数字

[[email protected] ~]# ll /dev/[a-z]da

brw-rw----. 1 root disk 8, 0 May 7 02:18 /dev/sda

[[email protected] ~]# ps aux | grep -E ?shd

root 1719 0.0 0.0 66604 1184 ? Ss 02:18 0:00 /usr/sbin/sshd

root 2051 0.0 0.2 100352 4048 ? Ss 02:37 0:02 sshd: [email protected]/0

root 6711 0.0 0.0 103252 836 pts/0 S+ 09:14 0:00 grep -E ?shd

 

4.3转义字符  

4.3.1反斜杠(\  

用于使反斜杠后面的一个变量变成单纯字符串:

[[email protected] ~]# echo $SHELL

/bin/bash

[[email protected] ~]# echo \$SHELL

$SHELL

 

4.3.2单引号(' ')  

用于转义其中所用变量作为单纯字符串:

[[email protected] ~]# echo $SHELL

/bin/bash

[[email protected] ~]# echo '$SHELL'

$SHELL

 

4.3.3双引号(“ ”)  

用于保留其中的变量属性,不进行转义:

[[email protected] ~]# echo $SHELL

/bin/bash

[[email protected] ~]# echo "$SHELL"

/bin/bash

 

4.3.3反引号(` `)  

用于把引号里面的命令执行后返回结果:

[[email protected] ~]# echo uname -r

uname -r

[[email protected] ~]# echo `uname -r`

2.6.32-431.el6.x86_64

以上是关于Linux系统运维学习---常用命令集的主要内容,如果未能解决你的问题,请参考以下文章

linux学习13 Linux运维常用文件管理命令及系统变量基础

Linux 运维常用命令

linux运维必须知道的几个常用命令

Linux企业运维人员最常用150个命令汇总

老男孩:Linux企业运维人员最常用150个命令汇总

(转)老男孩:Linux企业运维人员最常用150个命令汇总