您的位置:首页 > 运维架构 > Linux

linux基础命令

2016-07-26 18:03 267 查看
命令行扩展:$( ) 或``
把一个命令的输出打印给另一个命令的参数
echo"This system's name is $(hostname) "
This system's name is CentOS-6
echo "i am $(whoami) "
i am root




大括号扩展:{ },打印重复字符串的简化形式
echo file{1,3,5}
file1 file3 file5
echo file{1,2}{3,4}
file13 file14 file23 file24


命令补全
内部命令:内部命令没有具体的二进制程序,而是shell提供的
外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令
用户给定的字符串只有一条惟一对应的命令,直接补全;否则,再次Tab会给出列表。
路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
如果惟一:则直接补全;否则:再次Tab给出列表。

保存你输入的命令历史。可以用它来重复执行命令
登录shell时,会读取命令历史文件中记录下的命令~/.bash_history
登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中

重复前一个命令,有4种方法:
重复前一个命令使用上方向键,并回车执行。
按!! 并回车执行。
输入!-1 并回车执行。
按Ctrl+p 并回车执行。


!字符串:重复前一个以“字符串”开头的命令
!#:执行history命令输出中的序号为#对应的命令
!?abc:重复前一个包含abc的命令
!-n:重复倒数第n个命令
使用up(向上)和down(向下)键来上下浏览从前输入的命令
键入ctrl+r来在命令历史中搜索命令
(reverse-i-search)`’:

要重新调用前一个命令中最后一个参数:
!$ 表示
Esc, .(点击Esc键后松开,然后点击. 键)
Alt+ .(按住Alt键的同时点击. 键,需要在本机操作,远程连接无法使用)

cmd !^ : 利用上一个命令的第一个参数做cmd的参数
cmd !$ : 利用上一个命令的最后一个参数做cmd的参数
cmd !* : 利用上一个命令的全部参数做cmd的参数
cmd !:n : 利用上一个命令的第n个参数做cmd的参数

!n:^ 调用第n条命令的第一个参数
!n:$ 调用第n条命令的最后一个参数
!n:m 调用第n条命令的第m个参数
!n:* 调用第n条命令的所有参数

!string:^ 从命令历史中搜索最近一个以string 开头的命令,并获取它的第一个参数
!string:$ 从命令历史中搜索最近一个以string 开头的命令,并获取它的最后一个参数
!string:n 从命令历史中搜索最近一个以string 开头的命令,并获取它的第n个参数
!string:* 从命令历史中搜索最近一个以string 开头的命令,并获取它的所有参数

history [-c] [-d offset]

history -anrw [filename]
history -psarg [arg...]
-c: 清空命令历史
-d: 删除历史中指定的命令;
n: 显示最近的n条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-n: 读历史文件中未读过的行到历史列表
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-p: 展开历史参数成多个行,但不存在历史列表中
-s: 展开历史参数成一行,附加在历史列表后

历史命令相关变量设置
HISTSIZE:命令历史记录的条数(内存中);
HISTFILE:指定历史文件,默认为~/.bash_history;
HISTFILESIZE:命令历史文件记录历史的条数(磁盘中);
HISTTIMEFORMAT=“%F %T“ 显示时间
HISTIGNORE=“str1:str2:… “ 忽略string1,string2历史
控制命令历史的记录方式:
环境变量:HISTCONTROL=‘’str1:str2:…“设置多个变量的值
ignoredups:忽略重复的命令;连续且相同方为“重复”
ignorespace:忽略所有以空白开头的命令
ignoreboth:即ignoredups和 ignorespace
erasedups:删除重复命令

设置环境变量
export 变量名="值“
配置文件存放在/etc/profile(全局设置)或~/.bash_profile(个人设置)

快捷键
Ctrl+l 清屏,相当于clear命令
Ctrl+c 取消命令的执行
Ctrl+a 会移动到命令行的最前面
Ctrl+e 会移动到命令行的最后面
Ctrl+u 会删除到行首
Ctrl+k 会删除到行尾
arrow ctrl+b ctrl+f会向左或向右移动一个字符
Esc+b左移一个单词
Esc+f右移一个单词

图形界面应用程序->附件->终端
支持多个“标签”shell的图形化终端模拟器
Ctrl+shift+t 创建一个标签页
Ctrl+PaUp/PgUn切换到下一个/前一个标签页
Ctrl+Shift+c 复制选中的文本
Ctrl+Shift+v 把文本粘帖到提示符后

whatis
显示命令的简短描述,每晚使用一个数据库更新,刚安装后不可立即使用
制作whatis数据库:CentOS 6 makewhatis ;CentOS 7 mandb
用法示例
whatis cal 或man –f cal
apropos cal 或man -k cal

内部命令查找帮助的方法:
help COMMAND 简单
man bash 详细

外部命令:
(1) COMMAND --help 多数
COMMAND -h 少数
(2) 使用帮助文档手册(manual)
man COMMAND
(3) 信息页
info COMMAND
(4) 程序自身的帮助文档
README
INSTALL
ChangeLog
(5) 程序官方文档
官方站点:Documentation
(6) 发行版的官方文档
(7) Google

命令显示用法总结和参数列表(使用的大多数,但并非所有的)
date--help

date[OPTION]...[+FORMAT]
date[-u|--utc|--universal][MMDDhhmm[[CC]YY][.ss]]
[]是可选的
CAPS或<>是变量
...表示一个列表
x |y| z的意思是“x或y或z“
-abc的意思是-a -b -c


显示当前日期格式:2016-08-08 date +%F
显示前天是星期几 date -d '-2 day' +%A
设置当前日期为2008-08-0808:00 date 080808002008.00




提供命令帮助的文件
手册页存放在/usr/share/man
几乎每个命令都有man的“页面”
man页面分组为不同的“章节”
统称为Linux手册

man [章节] 命令
man命令的配置文件:CentOS 6 /etc/man.config ;CentOS 7 /etc/man_db.conf
MANPATH /PATH/TO/SOMEWHERE: 指明新手册文件搜索位置
man -M/PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索COMMAND命令的手册页并显示

1: 用户命令
2: 系统调用
3: C库调用
4:设备文件及特殊文件
5: 配置文件格式
6: 游戏
7: 杂项
8: 管理类的命令
9:Linux 内核API

man –a keyword 列出所有帮助
搜索man手册
man -k keyword列出所有匹配的页面

man命令的操作方法:
使用less命令实现
Space, ^V, ^f, ^F: 向文件尾翻屏
b, ^B: 向文件首部翻屏
d, ^D: 向文件尾部翻半屏
u, ^U: 向文件首部翻半屏
RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行y or ^Y or ^P or k or ^K:向文件首部翻一行
q: 退出
#:跳转至第#行
1G: 回到文件首部
G:翻至文件尾部

/KEYWORD:
以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写;
n: 下一个
N:上一个
?KEYWORD:
以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区分字符大小写;
n: 跟搜索命令同方向,下一个
N:跟搜索命令反方向,上一个

作业:
1.字符终端登录时,显示当前登录终端号,主机名和当前时间
CentOS release 6.8 (Final)
Kernel \r on an \m
添加 \t \l
man 8 mingetty查得issue内的各代码意义
\d 日期
\l 终端
\m 硬件等级
\n 主机名
\o 域名
\r 操作系统版本
\t 时间
\s 操作系统名称







2.今天17:30自动关机
shutdown -h 17:30

man常用于命令参考,GNU工具info适合通用文档参考。
没有参数,列出所有的页面,info 页面的结构就像一个网站
每一页分为“节点”,链接节点之前*
info [命令]
方向键,PgUp,PgDn 导航
Tab键移动到下一个链接
d 显示主题目录
Home 显示主题首部
Enter进入选定链接
n/p/u/l进入下/前/上一层/最后一个链接
s文字文本搜索
q退出info

点击“系统”->“文档”:
提供的官方使用指南和发行注记
/usr/share/doc目录
多数安装了的软件包的子目录,包括了这些软件的相关原理说明
不适合其它地方的文档的位置
配置文件范例
HTML/PDF/PS 格式的文档
授权书详情

第三方程序官方文档
通过发行版官方的文档光盘或网站可以获得
安装指南
部署指南
虚拟化指南
红帽知识库和官方在线文档 http://kbase.redhat.com http://www.redhat.com/docs http://access.redhat.com rhn.redhat.com或者本地卫星服务器/代理服务器
基于网络管理的机器
RHN代理服务器为RHN流量提供缓存
RHN卫星服务器提供自主的RHN

RHN账户
为及其注册和基于网络管理的RHN用户
用于系统自动验证的系统ID
sosreport
收集所有系统上的日志信息的工具,并自动打成压缩包,方便技术人员和红帽全球支持提供分析问题的依据 http://tldp.org http://www.slideshare.net http://www.google.com Openstackfiletype:pdf
rhcasite:redhat.com/docs

命令别名alias
临时生效 alias 命令='命令别名'
取消临时设置 unalias 命令
永久有效 写入配置文件~/.bashrc 添加alias 命令='命令别名'

使用source ~/.bashrc 立即生效
命令的执行顺序
绝对/相对路径,命令别名,内部命令,hash缓存,PATH搜索路径

reset: 当bash出现乱码时,修复bash
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息