一、Linux系统管理
1.系统基础管理和维护
1.1 Tab:补全。
Tab一次,输入的内容能够唯一标识,直接跳出命令(补全);
输入的内容不能够唯一标识,再Tab,显示出所有匹配的命令。
Tab命令补全的原理:vi,系统根据环境变量$PATH去文件下寻找命令
(echo $PATH:系统环境变量的路径全部打出来了)
1.2 shell命令操作——快捷键
(shell是一种脚本语言)
mkdir :创建目录
touch :创建文件
cat:查看文件
Ctrl+a: 光标跳到最前面
Ctrl+e: 光标跳到最后面
Ctrl+k: 光标移到中间,按键删除光标及其后的内容
Ctrl+u: 光标移到中间,按键删除光标前面的内容
Ctrl+l: 清屏
Ctrl +r: 寻找历史命令(想再次看网卡内容)
Ctrl+c: 停止当前正在运行的程序
ping +IP地址:测试网络连通性
1.3 vi / vim操作 :用于编辑文本
1.4历史命令
history:查看历史命令
!+历史命令的列表行数:直接执行该行的命令(!10:执行第十行的历史命令)
!$ :执行最后一次的历史命令
help history ;查看帮助
history -w:把历史命令列表同步到历史命令文件中
history -c:清空历史命令
echo $HISTFILE:查看历史命令文件位置
(echo:输出打印到屏幕上)
-c:清空history list。可以用 -r 选项再读回来。
-d:删除指定的命令历史
-a:将新增的history追加到history file。
-n: read all history lines not already read from the history file
-r:从history file读取命令并追加到history list。
-w:将当前的history写入history file。
如何设置 历史命令的保存数量
echo $HISTSIZE :查看history(历史命令文件)可保留的历史命令的条数
vim /etc/profile:进入/profile文件中
HISTSIZE=1000:表示只能保存1000行命令,剩余不被保存
source /etc/profile:重新加载,更新profile文件内容
表示历史文件最多存1000条历史命令。
如何设置历史命令的时间戳,和使用用户
vim /etc/profile:进入/profile文件中,更改历史命令的行数,然后进行 source
在最后一行编辑:
export HISTTIMEFORMAT="%F %T `whoami`(空格)"
:wq:保存退出
source /etc/profile:更新profile文件内容
1.5 别名alias
定义别名:
[root@localhost ~]# alias net="vi /etc/sysconfig/network-scripts/ifcfg-eth0"
取消别名:
[root@localhost ~]# unalias net
跳过别名:(\称为转义符)
[root@localhost ~]# \net
让别名永久生效:
编辑bashrc文件:
[root@localhost ~]# vim /etc/bashrc
下最后一行编辑输入:
alias net="vim /etc/sysconfig/network-scripts/ifcfg-eth0"
:wq
[root@localhost ~]#source /etc/bashrc
当“\”+命令:跳过命令
1.6 定义变量
变量分为环境变量、本地变量和局部变量。
本地变量:针对当前shell进程中的某代码片段,通常指函数。
局部变量:针对当前shell进程;对当前shell之外的其它shell进程,包括当前shell的子shell进程均无效。
环境(全局)变量:针对于当前的shell下的所有进程及子进程都生效。
(1)环境(全局)变量:
步骤:
vi test.sh:编辑test.sh文件(.sh是脚本文件)
sh test.sh:执行test.sh文件
(2)
定义变量:
[root@localhost test1]# a="qqqq"
查看:
[root@localhost test1]# echo $a
取消变量:
[root@localhost test1]# unset a
[root@localhost test1]# a=name #当前shell进程,子进程。
[root@localhost test1]# echo $SHELL
1.7 输入,输出
0:标准输入
1:标准输出
2:错误输出
">"覆盖
“>>”追加
“>”+文件名:标准输出到文件
[root@localhost ~]# ls >file1 // 将ls输出的结果输入到file1文件中
“2”>+错误文件的文件名:错误输出到文件
[root@localhost ~]# mysql 2> err
“>”+文件名 2> errname :将标准输出到filename文件,错误输出到errname
[root@localhost ~]# ll anaconda-ks.cfg anaconda-ks1.cfg > ceu 2>err
[root@localhost ~]# ll anaconda-ks.cfg anaconda-ks1.cfg &>file4
[root@localhost ~]# ll anaconda-ks.cfg anaconda-ks1.cfg >file5 2>&1
输出结果不显示在屏幕上:
/dev/null
标准输入到文件file3:
标准输出和错误输出都放在同一文件中:(两种方法)
(1)
(2)
标准输出和错误输出都放在不同