linux系统管理

一.linux bash基础特性:

1.补全: 1.命令补全 2.路径补全
系统支持的shell:# cat /etc/shells
当前系统默认shell:# echo $SHELL
命令补全: 给定的打头的字符串如果在系统中能够唯一的标识某个命令程序文件,按一下TAB键,直接补全,如果不能唯一标识,则需要再次敲击TAB键,会给出命令列表(依赖于命令解析)

路径补全(依赖于文件系统机制):在给定的起始路径下,以对应路径下打头的字符串来逐一匹配起始路径下的每一个文件,敲击TAB键,如果能够唯一标识,则直接补全,否则,再敲击依次TAB键,则给列出来(与命令补全机制不同)

1.快捷键:

Ctrl+c终止前台运行的程序
Ctrl+d退出,exit,logout
Ctrl+l清屏(相当于翻了一屏)
Ctrl+a光标移动到命令行的最前端
Ctrl+e光标移动到命令行的最后端
Ctrl+u删除光标前所有的字符
Ctrl+k删除光标后所有的字符
Ctrl+r搜索命令历史

2.命令历史:

history

HISTSIZE : shell进程中 可以保留的命令历史的条数,echo,$HISTSIZE
HISTFILE: 持久保持命令历史的文件
HISFILESIZE: 命令历史文件大小
history: history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg…]

-c清空命令历史
-d offset删除指定的命令历史
-r从文件中读取命令历史到命令历史列表中(.bash—history----->内存)
-w把命令历史列表中的命令追加到命令历史文件中(.bash—history<-----内存)
history #显示最近的#条命令
!#执行命令历史列表中第#条命令
!!执行上一条命令
!STRING再一次执行命令历史列表中最近一个以STRING开头的命令
调用上条命令的最后一个参数
ESC+.(点号)或者!+$
HISTCONTROL
(#echo HISTCONTROL
 #HISTCONTROL='ignore.......'**)
ignoredups忽略掉重复的命令
ignorespace忽略以空白开头的命令
ignoreboth忽略以上两者

3.命令别名:

定义别名#alias name =‘command’(仅对当前的shell环境有效)
撤销别名#unalias name
  永久保存:
  加载到文件中:#vi /etc/bashrc
              #alias name='command'

4.变量:

本地变量当前shell环境生效当前shell进程中某一个代码段,通常指某一个函数
局部变量当前shell进程生效,其他shell包括子shell均不生效
环境变量当前shell进程以及子进程
   echo $NAME

5.特殊的符号:

I管道 p 将前一个命令的执行结果当作后一个命令的输入
I进程管道:当前程序运行中执行
. 点号当前目录
… 双点号上一级目录
;分号分割命令 linux在执行多条命令时。可以用分号分开,顺序的去独立执行各条命令,每条命令不关心是否失败,所有命令都执行
``反单引号,命令替换
’ ’单引号,强引用,不做变量的替换
“ ”双引号,弱引用,可以实现变量和命令的替换
{ }做扩展,或者在shell脚本中构建代码块
*表示通配

6.输入输出重定向:

	linux系统三种IO设备
			标准输入 STDIN-----0 默认来自于键盘的输入
			标准输出 STDOUT----1 默认输出到终端窗口
			标准错误 STDERR----2 默认输出到终端窗口
	重定向:
			输入重定向  ------不太用
			输出重定向:使用户将一个命令的执行结果输出重定向到一个文件中,而不是显示到屏幕上
					1>:覆盖
					1>>:追加

			错误重定向:
					2>
					2>>

			正确和错误都重定向到同一个位置:2>&1   &>
					ls /tmp/file  /tmp/file1  > test   2>&1
	/dev/null:数据黑洞
         zero:吐0

7.命令行通配符:

*匹配任意长度的任意字符
匹配任意单个字符
[ ]匹配指定范围内的任意单个字符
[^]匹配指定范围外的任意单个字符
	例:
	[^abcdefg]
  常用:
        [a-z],[A-Z][0-9],[a-z0-9]
		[[:upper:]]:所有的大写字母
		[[:lower:]]:所有的小写字母
		[[:alpha:]]:匹配所有的字母
		[[:digit:]]:所有的数字
		[[:alnum:]]:字母和数字
		[[:space:]]:空白字符
		[[:punct:]]:标点符号

二. 常见的系统管理类命令:

1.ls命令:

ls:
 	 ls [OPTION]... [FILE]...
-a:-显示所有文件包括隐藏文件
-A显示所有文件包括隐藏文件但除过.和…
-c以ctime排序,-lt一起使用
-l以长数据格式显示文件属性以及权限等信息
-t以修改时间排序
-d列出目录本身,而不是目录中的内容
-i列出文件的inode号 一般和-l一起使用
-h将文件的大小以kB MB GB格式显示

2.pwd命令:

 	pwd:显示当前工作目录   绝对路径
	pwd -L:显示当前的路径,不管有没有链接文件,不加选项时就是以此显示
	pwd -P:显示当前路径,如果有链接文件,直接显示链接文件指向的文件
        例:
        
[root@localhost ~]# cd /etc/init.d
[root@localhost init.d]# pwd
/etc/init.d
[root@localhost init.d]# pwd -P
/etc/rc.d/init.d
[root@localhost init.d]# pwd -L
/etc/init.d
[root@localhost init.d]# cd
[root@localhost ~]# cd /etc/rc.d/init.d
[root@localhost init.d]# pwd
/etc/rc.d/init.d
[root@localhost init.d]# pwd -L
/etc/rc.d/init.d
[root@localhost init.d]# pwd -P
/etc/rc.d/init.d

3.cd命令:

    改变工作目录
~用户家目录
-表示前一个工作目录
上级目录
.当前目录

4.date命令:

 date:显示或者修改系统时间和日期
	 	date [OPTION]... [+FORMAT]
      	date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

   		-d "string":字符串所指的日期和时间,并不代表当前时间  not now
      		-s "string":根据字符串来设置日期和时间
      			日期的设置需要加上时间的设置,否则会将时间重置为00:00:00

FORMAT:

%%一个文字的 %
%a当前locale 的星期名缩写(例如: 日,代表星期日)
%A当前locale 的星期名全称 (如:星期日)
%b当前locale 的月名缩写 (如:一,代表一月)
%B当前locale 的月名全称 (如:一月)
%c当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25)
%C世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)
%d按月计的日期(例如:01)
%D按月计的日期;等于%m/%d/%y
%e按月计的日期,添加空格,等于%_d
%F完整日期格式,等价于 %Y-%m-%d
%gISO-8601 格式年份的最后两位 (参见%G)
%GISO-8601 格式年份 (参见%V),一般只和 %V 结合使用
%h等于%b
%H小时(00-23)
%I小时(00-12)
%j按年计的日期(001-366)
%k%k hour, space padded ( 0…23); same as %_H
%lhour, space padded ( 1…12); same as %_I
%mmonth (01…12)
%Mminute (00…59)
%n换行
%N纳秒(000000000-999999999)
%p当前locale 下的"上午"或者"下午",未知时输出为空
%P与%p 类似,但是输出小写字母
%r当前locale 下的 12 小时时钟时间 (如:11:11:04 下午)
%R24 小时时间的时和分,等价于 %H:%M
%s自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数
%S秒(00-60)
%t输出制表符 Tab
%T时间,等于%H:%M:%S
%u星期,1 代表星期一
%U一年中的第几周,以周日为每星期第一天(00-53)
%VISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)
%w一星期中的第几日(0-6),0 代表周一
%W一年中的第几周,以周一为每星期第一天(00-53)
%x当前locale 下的日期描述 (如:12/31/99)
%X当前locale 下的时间描述 (如:23:13:48)
%y年份最后两位数位 (00-99)
%Y年份
%z+hhmm 数字时区(例如,-0400)
%:z+hh:mm 数字时区(例如,-04:00)
%::z+hh:mm:ss 数字时区(例如,-04:00:00)
%:::z数字时区带有必要的精度 (例如,-04,+05:30)
%Z按字母表排序的时区缩写 (例如,EDT)

5.clock/hwclock命令:

-w以系统时间为主
-s以硬件时钟为主
[root@localhost ~]# date -s "2020-02-24 19:52"
Mon Feb 24 19:52:00 CST 2020
[root@localhost ~]# date
Mon Feb 24 19:52:02 CST 2020
[root@localhost ~]# hwclock
Mon 24 Feb 2020 07:51:35 PM CST  -0.766620 seconds
[root@localhost ~]# hwclock -w
[root@localhost ~]# hwclock
Mon 24 Feb 2020 07:52:26 PM CST  -0.610775 seconds
[root@localhost ~]# date -s "2021-02-12 20:45"
Fri Feb 12 20:45:00 CST 2021
[root@localhost ~]# hwclock -s
[root@localhost ~]# hwclock
Mon 24 Feb 2020 07:54:18 PM CST  -0.500946 seconds
[root@localhost ~]# date
Mon Feb 24 19:54:20 CST 2020


6.who和w命令 :

(查看当前用户登入信息)

[root@localhost ~]# who
root     tty1         2020-02-25 03:36
root     pts/0        2020-02-24 19:51 (192.168.75.1)
[root@localhost ~]# w
 19:55:09 up 19 min,  2 users,  load average: 0.00, 0.03, 0.05
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                03:36    4:56   0.15s  0.15s -bash
root     pts/0    192.168.75.1     19:51    1.00s  0.10s  0.07s w

7. last命令:

(过去用户登入信息)

-a地址后置
-d将IP地址转换为主机名
[root@localhost ~]# last
root     pts/0        192.168.75.1     Mon Feb 24 19:51   still logged in
root     tty1                          Tue Feb 25 03:36   still logged in
reboot   system boot  2.6.32-642.el6.x Tue Feb 25 03:35 - 19:56  (-7:-39)
root     tty1                          Mon Feb 24 08:00 - crash  (19:35)
reboot   system boot  2.6.32-642.el6.x Mon Feb 24 08:00 - 19:56  (11:56)

wtmp begins Mon Feb 24 08:00:12 2020
[root@localhost ~]# last -a
root     pts/0        Mon Feb 24 19:51   still logged in    192.168.75.1  (地址后置)
root     tty1         Tue Feb 25 03:36   still logged in
reboot   system boot  Tue Feb 25 03:35 - 19:56  (-7:-38)    2.6.32-642.el6.x86_64
root     tty1         Mon Feb 24 08:00 - crash  (19:35)
reboot   system boot  Mon Feb 24 08:00 - 19:56  (11:56)     2.6.32-642.el6.x86_64

wtmp begins Mon Feb 24 08:00:12 2020

8. uname命令:

(用于显示系统信息)
-a显示全部的信息
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

9.uptime命令:

   (用于获取主机运行时间和查询 linux 系统负载等信息)
 [root@localhost ~]# uptime
  08:21:34 up 36 min,  2 users,  load average: 0.00, 0.00, 0.00
 
#当前服务器时间:    08:21:34
#当前服务器运行时长  36 min
#当前用户数          2 users
#当前的负载均衡      load average  0.00, 0.00, 0.00,分别取1min,5min,15min的均值

另:系统平均负载是指在特定时间间隔内运行队列中的平均进程数。

如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能是良好的。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。如果你的linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。

10.passwd命令:

   设置用户口令  
 		只有root用户有权限使用
      		-k:到期后密码仍然可以使用
      		-l:lock,锁定用户密码,只有root有权限操作
      		-u:unlock,解除锁定
      		-f:强制操作:只有root有权限
      		-n  days :两次密码修改的最小天数
      		-x  days:两次密码修改的做大天数
      		--stdin:密码从标准输入获取密码,非交互式设置密码使用
      			# echo 123456 | passwd  --stdin root
      		-w  days:距离多少天提醒用户修改密码
      		-S:查询密码状态
      		-i  days:密码过期后 多少天之后,用户被禁用

11.su命令:

改变用户身份
		su  -   username

      		-c  commond: 变更用户为 user的使用者,执行commomd命令,再变回原来使用者
      		-(不能省略):用户的环境变量切换

12.clear命令:

     clear:清理
	 			相当于 Ctrl+l

13.dmesg命令:

(用于显示开机信息)

14.free命令:

(free是指查看当前系统内存的使用情况,它显示系统中剩余及已用的物理内存和交换内存,以及共享内存和被核心使用的缓冲区)

-b以字节为单位表示
-k以kb为单位表示
-m以兆为单位表示
-g以G为单位表示
-s间隔秒数,每隔多少秒刷新一次
-ttotal
-h友好单位表示
[root@localhost ~]# free -h
             total       used       free     shared    buffers     cached
Mem:          980M       289M       690M       536K        17M       144M
-/+ buffers/cache:       128M       852M
Swap:         9.1G   [root@localhost ~]# free -s 2(每隔两秒刷新一次)
             total       used       free     shared    buffers     cached
Mem:       1004136     296912     707224        536      17516     147712
-/+ buffers/cache:     131684     872452
Swap:      9551868          0    9551868
      0B       9.1G

15. ps命令:

  (显示系统进程瞬间运行状态)
-l显示详细信息
-aux当前以用户为主的所有进程状态
[root@localhost ~]# ps -aux
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1  19232  1496 ?        Ss   19:35   0:01 /sbin/init
root          2  0.0  0.0      0     0 ?        S    19:35   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    19:35   0:00 [migration/0]
root          4  0.0  0.0      0     0 ?        S    19:35   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S    19:35   0:00 [stopper/0]
root          6  0.0  0.0      0     0 ?        S    19:35   0:00 [watchdog/0]
root          7  0.1  0.0      0     0 ?        S    19:35   0:02 [events/0]
root          8  0.0  0.0      0     0 ?        S    19:35   0:00 [events/0]
root          9  0.0  0.0      0     0 ?        S    19:35   0:00 [events_long/0]
root         10  0.0  0.0      0     0 ?        S    19:35   0:00 [events_power_ef]
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 无法中断的休眠状态 (通常 IO 的进程)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

16.top命令:

(性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器)

[root@localhost ~]# top
top - 20:22:58 up 47 min,  2 users,  load average: 0.00, 0.01, 0.05
Tasks:  80 total,   1 running,  79 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:   1004136k total,   296788k used,   707348k free,    17516k buffers
Swap:  9551868k total,        0k used,  9551868k free,   147796k cached
 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

PID:进程id   user:进程拥有者  PR进程优先级  NI:nice值,负数表示优先级最高   VIRT:进程使用虚拟内存总量   REX:进程正在使用未被换出的物理内存大小   SHR:共享内存大小   S:进程状态:R:正在运行 S:睡眠状态  T:stop中断 z:僵尸状态 D:不可中断的睡眠状态
%CPU:从上次刷新到目前使用的CPU时间占比
%MEM:进程使用的物理内存百分比
TIME+:进程使用CPU的时间,单位1%秒
COMMAND:命令名/命令行
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值