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

Linux笔记2

2016-07-24 16:17 471 查看
第二次上课主要学习了一些指令

基本命令:

命令格式注意:
1.多选项,以及多参数和命令之间使用空白字符分割
2.取消和结束命令执行:ctrl+c,ctrl+d
3.多个命令可以用;符号分开
4.一个命令可以用\分成多行

hostname:显示和设置系统的主机名称
语法:hostname 选项 参数

选项:
-v:显示详细信息
-a:显示主机别名
-d:显示DNS域名

-f:显示FQDN名称
-i:显示主机ip
-s:显示短主机名称,在第一个点处截断

-y:显示NIS域名

init 3:关闭图形界面
init 5:启动图形界面(图像界面模式切换)
startx:启动图形界面(相当于在系统上运行图形界面软件)
init 0:关机
chvt#:在各界面相互切换
ps:经过多次实践,发现在图形界面普通账户使用chvt切换到命令行界面会报错,提示找不到一个文件描述符指的控制台,但是root用户可以成功切换,暂时还没找到原因,后续找到了再补上!!!

lsb_release: LSB是Linux Standard Base的缩写,sb_release是用来显示LSB和特定版本的相关信息
此指令CentOS7上没有

free:显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区
选项:
-b:以byte为单位显示内存使用情况

-k:以KB为单位.................
-m:以MB为单位
-v:显示版本信息
-t:显示内存总和列

df:显示磁盘分区上可使用的磁盘空间,默认先是单位为KB.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息
选项:
-a或--all:包含全部的文件系统
--block-size=<区块大小>:以指定的区块大小来显示区块数目
-h或--human-readable:以可读性较高的方式显示信息
-i或--inodes:显示inode的信息
-k或--kilobytes:指定区块大小为1024字节
-l或者--local:仅显示本地端的文件系统
-t 文件系统或--type 文件系统:仅显示指定文件系统类型的磁盘信息
-T或--print-type:显示文件系统的类型
-x 文件系统或--exclude-type 文件系统:不要显示指定文件系统类型的磁盘信息
--version:显示版本信息

lscpu:查看cpu信息

ifconfig:显示Linux内核中网络接口的网络参数

id:可以显示真实有效的用户ID(UID)和组ID(GID)
语法:
id 选项 用户名
选项:
-g或--group:显示用户所属群组的ID
-G或--groups:显示用户所属附加群组ID
-n或--name:显示用户,所属群组或附加群组的名称
-r或--real:显示实际ID
-u或--user:显示用户ID

shell:
command>>shell>>二进制
shell起到了类似翻译官的作用,将command转换成计算机可识别的二进制格式,然后执行该command

PS1:定义提示符
定义如下
echo $PS1

PS1=qiuwei

提示符变更为qiuwei

date:显示和设置系统时间和日期

参数:
+时间日期格式:
%H 小时,24小时制
%I 小时,12小时制
%M 分钟
%S 显示秒
%s 从1970年1月1日00:00:00到现在经历的秒数
%T:显示时间,24小时(hh:mm:ss)
%a:显示星期 简称
%A:显示星期 全称
%c:日期和时间
[root@localhost ~]# date +%c
Sat 23 Jul 2016 05:09:59 PM CST
%F:
[root@localhost ~]# date +%F
2016-07-23
时间设置:

date -s “2016-7-23 09:49:30“

date:072214442016.30
月日时分年.秒
以上时间没加秒数则默认为0秒

-d 字符串:显示字符串所指的时间日期,字符串前后必须加上双引号
date -d "+10 day" +%F 十天后
date -d "-10 day" +%F十天前
date -d "10 day ago"+%F 十天前
date -d "+1 year" +%F 一年后
date -d "+1 month" +%F 一月后

clock和hwclock:显示和设置硬件时间如期

hwclock -w 将硬件时间更改为系统时间
hwclock -s 将系统时间更改为硬件时间

screen命令:通俗讲screen是一个可以在多进程之间多路复用一个物理终端的窗口管理器或者代理

常用参数:
screen -S help: 新建一个叫help的会话
screen -ls :理出当前所有的会话
screen -x help:加入到名叫help的会话中
以上需三个指令配合使用
为方便自己理解记忆,用文字描述下
假如A有困难需要B帮忙,B可以通过远程登录到A的终端上,使用screen命令实现屏幕共享,及操作同步
,步骤如下:
首先A和B都连接同一终端,A执行命令screen -S help,可建立一个名叫“help”的共享屏幕会话,B通过执行screen -ls查看到help ,然后B执行命令 screen -x help,就可以连接到A建立的“help”的共享屏幕会话,实现屏幕共享,操作共享

断开共享会话:ctrl+a+d(按键盘,不是输入字符)
重新连接断开的会话:screen -x help 或者screen -x 会话编号(进程编号?)
exit:退出会话
ctrl+a+s:锁定会话,锁定后,进行任何输入屏幕上都不会有反应,但是虽然屏幕上看不到反应,其实输入的指令内容都会被screen中的进程收到,
ctrl+a+q:配合上一个指令使用,解锁会话,上面锁住时输入的命令内容都会重新出现
ctrl+a+x:锁定会话,不同的是锁定后,会话被screen所属用户的密码保护,需要输入密码才能继续访问这个会话

会话分离与恢复:
可以不中断screen中窗口中的程序而暂时断开screen会话,随后重新连接该会话,重新控制该窗口中运行的程序
例如:
执行screen命令。创建了一个会话,并在里面执行yes命令,此时会话屏幕持续输出y
在screen键入ctrl+a+d,暂时退出会话,
等一段时间后screen -x pts-2 重新连接该会话,发现yes依然在执行,屏幕还是在持续输出y

安装screen: yum install screen

或者在镜像中找到安装包直接安装

hash:可查看使用过的外部命令,缓存在内存中
hash -d yes : 清除缓存中的yes命令
hash -r :清除缓存中所有的命令

一般命令分为两种:内部命令和外部命令

type:查看命令是内部命令还是外部命令

type cd type ls

系统执行外部命令的机制:
一般情况下,命令输入后,系统会在如下路径依次查找,会优先执行第一个匹配到的指令
/usr/lcoal/sbin

/usr/lcoal/bin
/sbin
/bin
/usr/bin
/usr/bin
/root/bin

查看外部命令路径:
echo $PATH

系统执行命令顺序(优先级):
内部命令 > 外部命令缓存 > 外部命令路径
外部命令执行后才会有外部命令缓存,而要执行外部命令缓存的前提是外部命令依然存在
通俗讲:假如yes命令在/bin中,执行此命令后,会产生缓存,如果再想执行yes命令,系统会优先使用缓存中的yes,但是如果删掉/bin的yes命令,再执行yes命令,虽然缓存中已记录了yes,但是命令是不会执行成功的,因为缓存中路径/bin下已经没有yes,我的理解是缓存只是yes快捷方式,/bin下的yes才是实际内容,所以/bin下的yes没了,缓存中的yes也不能执行了

另外:外部命令查找是从左到右的,会优先选择第一个匹配到的指令,但是有的指令不止存在在一个路径中,有多个路径可以匹配,如果不想执行第一个,则可以使用相对路径的,如下:
/bin/yes, /sbin/yes
#: /sbin/yes
如上命令会直接匹配/sbin/yes ,而不是/bin/yes

ps:假如yes在/test/yes,当前目录也在/tse下,直接运行yes(前提外部命令默认路径无yes指令),也是无法执行成功的,因为系统执行外部命令是默认去外部命令路径下查找的,在/test下直接运行yes,系统会直接查找默认的外部命令路径,不会查找/test的,想要这样执行:
/test/yes,或者.yes

暂时禁用命令:enable -n cd
启用命令:enable cd

which:查找并显示给定命令的绝对路径

[root@localhost ~]# which pwd
/usr/bin/pwd
备注:which是根据使用者所配置的PATH变量内的目录去搜寻可运行档的!所以,不同的PATH配置内容所找到的命令是不一样的

alias:用来定义别名的
alias cls=clear 将cls定义为clear的别名
unalias cls 删除别名cls

命令优先级: 别名 > 内部命令 > 外部命令缓存 > 外部命令路径

ehco命令用法
echo命令在shell中显示shell变量的值,或者直接输出指定的字符串
语法: echo 选项 参数

回显:
[root@localhost ~]# echo hahha
hahha

选项:
-n:输出文字不换行
-e:启用转义符
例:
\n:换行
[root@localhost ~]# echo "000000\n00"
000000\n00
[root@localhost ~]# echo -e "000000\n00"
000000
00

“\字母”表示光标
有-e选项时,字符串出现以下字符,则有特别含义,不会当作一般字符输出
\a:发出警报
\b:删除前一个字符 >>光标前进一格
\c:最后不加上换行符>>不换行,且光标后不显示
[root@localhost ~]# echo -e "shabi\chah "
shabi[root@localhost ~]#
\f:换行但光标仍然停留在原来的位置

shabi[root@localhost ~]# echo -e "shabi\fhah "
shabi
hah
\n:换行且光标移至行首
[root@localhost ~]# echo -e "shabi\nhah "
shabi
hah
\r:光标移至行首,但不换行>>后面会覆盖前面的
[root@localhost ~]# echo -e "shabi\rhah"
hahbi
[root@localhost ~]# echo -e "shabi\rpingxiong"
pingxiong
\t:插入tab
\v:与\f效果相同
\0nnn:插入nnn(八进制),所代表的ASCII字符
\xHH:插入HH(十六进制)所代表的ASCII字符



echo输出颜色文本:

例如:echo -e "\033[47;32;5mpingxiongshishabi\033[0m"

说明:
以上-e是命令echo的选项,启用转义符,"\033"引导非常规字符序列(即"\033["表示终端转义字符开始,"\033"即退出键<ESC>的ASCII码)。"m"意味着设置属性然后结束非常规字符序列,这个例子里真正有效的字符,以上命令中47;32;5;0是实现控制文本颜色控制的,其他的可理解为固定格式

以下可选:
0   重新设置属性到缺省设置
1   设置粗体
2   设置一半亮度(模拟彩色显示器的颜色)
4   设置下划线(模拟彩色显示器的颜色)
5   设置闪烁
7   设置反向图象
22   设置一般密度
24   关闭下划线
25   关闭闪烁
27   关闭反向图象
30   设置黑色文字
31   设置红色
32   设置绿色
33   设置黄色
34   设置蓝色
35   设置紫色
36   设置青色
37   设置白色(灰色)
40   设置黑色背景
41   设置红色背景
42   设置绿色背景
43   设置黄色背景
44   设置蓝色背景
45   设置紫色背景
46   设置青色背景
47   设置白色(灰色)背景

echo "":表示弱引用
echo '':表示强引用
echo ``:表示命令引用



我理解为如下:
第一个''是直接将''中的强行当做字符引用输出
第二个``:引用的是''中的命令的执行结果
第三个“”:分别引用了echo和$USER,执行了结构
此处还未理解透彻,后续在补全

查看帮助手册:
whatis
command --help
man
info
本地帮助文档/usr/share/doc/
官方在线文档
其他网站和搜索

whatis:
显示命令的简短描述
每晚使用一个数据库更新
刚安装后不可立即使用
makewhatis或mandb制作数据库

whatis command

man命令:
提供命令帮助手册
手册页存放在/usr/share/man
几乎每个命令都有man的页面
man页面分组为不同的章节
man章节:
用户命令

系统调用

C库调用

设备文件及特殊文件

配置文件格式

游戏

杂项

管理类的命令

Linux内核API

man命令的控制翻页指令:
space空格键:向下翻页
Page Up和Page Down:表示向上翻一行和向下翻一行
enter回车键:向下翻一行
/word:搜寻关键字
Home:去第一页
End:去最后一页
/string:向下搜寻string
?string:向上搜寻string
n,N:利用/和?搜寻字串是,n来继续下一个搜索(从上往下)
N来搜索上一个搜索(从下往上)
q:结束man

man有9个章节同一个命令可能在多个章节中都有,
搜索指定的章节
man -# command (#为章节数)

info:
常用快捷键
?:显示info的常用快捷键
n:打开与本Node关联的下一个Node
p:打开与本Node关联的前一个Node
u:打开与本Node关联的上一个Node
i:回到上一次访问的Node
m或g 选择一个菜单项(Node 的名字) 输入指定菜单的名字后按回车,打开指定菜单项关联的 Node
空格键 下一页(PageDown 也可以,下一页从当前页的最后两行开始算起) 下一个 Node (若当前页在 Node 文档的末尾)
Del 键 上一页(PageUp 也可以,上一页从当前页的开始两行开始算起) 上一个 Node (若当前页 Node 文档的开始)
b 或 t 或 Home 文档的开始(b 是 begining 的意思)
e 或 End 文档的末尾(b 是 ending 的意思)
Ctrl-l 刷新当前页,若当前文档显示情况有问题时
Ctrl-g 取消所键入的指令

histoy:
bash的基础特性:
命令历史:shell进程护在其会话中保存此前用户提交执行过的命令
指令: history
HISTSIZE:shell进程可保留的命令历史的条数
HISTFILE:持久保存命令历史的文件;
.bash_history
HISTFILESIZE:命令历史文件的大小(数量?)
-c:清空命令历史;
-d offset:删除指定命令历史
-r:从文件读取命令历史至历史列表中
-w: 把历史列表中的命令追加至历史文件中
history n :显示最近的n条命令;
调用命令历史列表中的命令:
!n:历史中的第n条命令
!!:最近的一次命令
!STRING:再次执行命令历史列表中最近一个以STRING开头的命令
STRING:字母
注意:命令的重复执行有时候需要依赖于幂等性
调用上一条命令的最后一个参数:
快捷键:ESC然后 .
字符串:!$
控制命令历史的记录的方式:
环境变量:HISTCONTROL
ignoredups:忽略重复的命令:
ignorespace:忽略以空白字符开头的命令
ignoreboth:以上两者同时生效

命令补全:
shell程序在接收到用户执行命令的请求时,分析完成时,最左侧的字符串会被当作命令;
命令查找机制:
查找内部命令;
根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的

给定的打头字符串如果能唯一标识某命令程序文件,则直接补全
不能唯一标识某命令程序文件,则再击tab键一次,会给出列表;
路径补全:
根据给定的起始路径下,以对应路径下的打头字串来逐一匹配起始路径下的每个文件
否则,再一次tab,给出列表。

bash的快捷键:
ctrl+l:清屏,相当于clear命令
ctrl+c:取消命令的执行
ctrl+a:光标移动到命令行的最前面
ctrl+e:光标移动到命令行的最后面
ctrl+u:删除行首到光标
ctrl+k:删除行尾到光标

以上为第二次上课学习到的命令和一些相关知识,如有错误,请帮忙指出,嘿嘿!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: