Linux系统管理命令

Linux bash shell的基础特性

1.补全

查看系统中支持的shell cat/etc/shell
查看当前系统的默认shell echo $SHELL

命令补全:

很多命令都会提供一个bash-complete的脚本,因此给定的打头的字符串如果在系统中能够唯一的标识某一个命令程序文件,再按一下tab键,命令可以直接补全。
如果不能够唯一标识,则需要再次敲击tab键,会给出命令列表以便寻找所需命令。

路径补全:

和命令补全机制不同,在给定的起始路径下:以对应路径下打头的字符串来逐一匹配起始路径下的每一个文件。
tab:

能够唯一标识 直接补全
不能唯一标识 再按一次tab后给出列表

2.快捷键

Ctrl+c 终止前台运行的程序,或者删除整行
Ctrl+d 退出当前shell命令执行行
Ctrl+l 相当于命令“clear”,清除屏幕内容
Ctrl+a 光标移动到命令行的最前端
Ctrl+e 光标移动到命令行的最后端
Ctrl+k 删除光标后所有的字符
Ctrl+u 删除光标前所有的字符
Ctrl+h 删除光标所在位置的前一个字符
Ctrl+r 搜索历史命令
Ctrl+g 结束‘Ctrl+r’的操作
Ctrl+s 锁定终端,使输入的内容无法在屏幕上显示
Ctrl+q 解除“Ctrl+s”的锁定状态
Ctrl+z 使正在运行的进程暂停

3.命令历史

history命令

HISTSIZE shell进程中可以保留的命令历史的条数, ehco $HISTSIZE
HISTFILE 持久保持命令历史的文件
HISTFILESIZE 命令历史文件大小

格式: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开头的命令

HISTCONTROL

ignoredups 忽略重复的命令
ignorespace 忽略以空白开头的命令
ignoreboth 以上两者同时生效

HISTCONTROL=’ ’

4.命令别名

# alias name=‘commond’ 定义别名(仅对当前shell环境有效)
# unalias name 撤销别名

永久保存别名:
#vi /etc/bashrc
alias name=‘commond’

5.变量

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

echo $NAME

6.特殊的符号

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

7.输入输出重定向

linux系统三种IO设备:

标准输入 STDIN-----0 默认来自于键盘的输入
标准输出 STDOUT----1 默认输出到终端窗口
标准错误 STDERR----2 默认输出到终端窗口
重定向:
输入重定向:不常用
输出重定向:使用户将一个命令的执行结果输出重定向到一个文件中,而不是显示到屏幕上
1>:覆盖
1>>:追加
错误重定向:
2>
2>>
正确和错误都重定向到同一个位置:2>&1 &>
Linux系统管理命令
/dev/null:数据黑洞
/dev/zero:吐0机

8.命令行通配符:

* 匹配任意长度的任意字符
匹配任意单个字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[[:upper:]] 所有的大写字母
[[:lower:]] 所有的小写字母
[[:alpha:]] 匹配所有的字母
[[:digit:]] 所有的数字
[[:alnum:]] 字母和数字
[[:space:]] 空白字符
[[:punct:]] 标点符号

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

ls命令:

ls [OPTION]… [FILE]…

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

显示当前工作目录 绝对路径

-L 显示当前的路径,不管有没有链接文件,不加选项时就是以此显示
-P 显示当前路径,如果有链接文件,直接显示链接文件指向的文件
cd命令:

改变工作目录

~ 用户家目录
- 表示前一个工作目录
上级目录
. 当前目录
date命令:

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

%p 显示本地 AM 或 PM
%r 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%T 直接显示时间 (24 小时制)
%a 星期几 (Sun…Sat)
%A 星期几 (Sunday…Saturday)
%b 月份 (Jan…Dec)
%B 月份 (January…December)
%c 直接显示日期与时间
%D 直接显示日期 (mm/dd/yy)
%U 一年中的第几周 (00…53) (以 Sunday 为一周的第一天的情形)
%W 一年中的第几周 (00…53) (以 Monday 为一周的第一天的情形)
%x 直接显示日期 (mm/dd/yy)
%Y 完整年份 (0000…9999)

-d “string”:字符串所指的日期和时间,并不代表当前时间 not now
-s “string”:根据字符串来设置日期和时间
日期的设置需要加上时间的设置,否则会将时间重置为00:00:00
-u: 显示目前的格林威治时间
–version : 显示版本编号

passwd命令:设置用户口令

只有root用户有权限使用

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

su - username
-c commond: 变更用户为 user的使用者,执行commomd命令,再变回原来使用者
-:用户的环境变量切换

clear命令:清理

Ctrl+l