第二章Linux基础学习笔记

本章内容:
1.用户登录
2.终端
3.shell介绍
4.执行命令
5.简单命令
6.Tap键补全
7.命令行历史
8.bash快捷键
9.使用gnome-terminal
10.whatis
11.command –help
12.man and info
13.本地帮助文档/usr/share/doc/
14.官网在线文档
15.其他网站和搜索

笔记开始整理时间:2018年3月29日19:22:02
本章内容:
1.用户登录
2.终端
3.shell介绍
4.执行命令
5.简单命令
6.Tap键补全
7.命令行历史
8.bash快捷键
9.使用gnome-terminal
10.whatis
11.command –help
12.man and info
13.本地帮助文档/usr/share/doc/
14.官网在线文档
15.其他网站和搜索

用户登录
root用户
uid=0
一个特殊的管理账户,也被称为超级用户
root已接近完整的系统控制
对系统谁还几乎有无限的能力
除非必要,不要登录为root
普通(非特权)用户
权限有限
造成损害的能力比较有限
终端teirminal
设备终端 键盘鼠标显示器
物理终端 /dev/console
控制台console
虚拟终端(tty:teletypewriters,/dev/tty#,#为[1-6])
图形终端(/dev/tty7)startx,xwindows)
CentOS 6:ctrl+alt+F7
CentOS 7:在哪个终端启动,即位于哪个虚拟终端
串行终端(/dev/ttyS#)
ttyS
伪终端(pty:pseudo-tty,/dev/pts/#)
pty,SSH远程连接
查看当前的终端设备:tty
交互式接口
启动终端后,在终端设备附加一个交互式应用程序
GUI:Graphic User Interface
X protocol,windowmanager,desktop
Desktop:
GNOME(C,图形库gtk),
KDE(C++,图形库qt)
XFCE (轻量级桌面)
Cli:Commmand Line Interface
shell程序:sh,csh,tcsh,ksh,bash(bourn again shell) GPL zsh
什么是shell
shell是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口
它接收用户输入的命令并把它送到内核去执行。
shell也被称为Linux的命令解释器(command interpreter)
shell是一种高级程序设计语言
bash shell
GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一
目前也是Linux的标准shell,与sh兼容
CentOS默认使用
显示当前使用的shell
echo $SHELL
显示当前系统使用的所有shell
cat /etc/shells
命令提示符:prompt
echo $PS1                   显示提示符格式
PS1=”\[\e[1;35m\][\u@\h \w]\\$\[\e[0m\]”

执行命令
输入命令后回车
提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后
提交给内核分配资源将其运行起来

在shell中可执行的命令有两类
内部命令:由shell自带的,而且通过某命令形式提供
help                   显示内部命令列表
enable               查看全部可用内部命令
enable -n cmd 禁用内部命令
enable cmd      启用内部命令
enable -n          查看所有禁用的内部命令
外部命令:在文件系统路径下有对应的可执行程序文件
which -a
which –skip-alias
whereis
区别指定的命令是内部或外部命令
type cmd

执行外部命令
hash缓存表
系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找命令。
找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释
器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找。利
用hash缓存可大大提高命令的调用速率
hash常见用法
hash                            显示hash缓存
hash -l                         显示hash缓存,包含路径,可作为输入使用
hash -p path name   将命令全路径path起别名为name
hath -t name             显示hash中name的路径
hash -r                        清除hash缓存
命令别名
alias 显示当前shell进程所有可用的命令别名
alias NAME=”VALUE” 定义别名NAME,其相当于执行命令VALUE
例如:
alias cdnet=‘cd /etc/sysconfig/network-scripts/
unalias cdnet          取消别名cdnet
unalias -a                取消所有别名
PS: 在命令行中定义的别名,仅对当前shell进程有效,且注销之后失效
如想永久有效,需写入配置文件
.bashrc 仅对当前用户有效
/etc/.bashrc 修改对所有用户有效
编辑配置给出的新配置不会立即生效,需注销或者使用
. .bashrc 或者
source .bashrc 执行之后配置生效
命令格式
COMMAND [OPTIONS] [ARGUMENTS..]
选项OPTIONS:用于启用或者关闭命令的某个或某些功能
参数ARGUMENT,命令的作用对象,比如文件名,用户名等
例如:
ls -a etc/
rm -rf /etc/          -rf=-r -f
PS:
参数和选项可以多个,使用空白字符分隔
命令运行过程可中断,使用ctrl+C,ctrl+D
多个命令可以一行执行,使用;符号隔开,如:
pwd;ls;ifconfig
一个命令可以分开成多行显示,用\分开,如
p\
w\
d +回车
日期和时间:
Linux的两种时钟
date 显示系统时间
clock 硬件时间,即主板bios芯片时间
date mmDDHHMMYYYY.ss                   设置时间,格式为月日时分年。秒
date -d "-2 day"                                          显示2天之前的时间
date +%F                                                     显示时间,按照2018-03-31格式显示
date "+%F %T"                                           显示时间格式为2018-03-31 02:08:14
date +%s                                                      显示时间为1970年1月1日0点至今经过多少秒
date -d @nnnn                                           将秒时间换成正常时间
clock -s                                                         硬件时间覆盖系统时间
clock -w                                                       系统时间覆盖硬件时间
ll /etc/localtime                                         显示当前时区
timedatectl list-timezones                       显示全部时区
timedatectl set-timezones Asia/Shanghai          设置时区为上海
cal                                                                 显示日历
cal -y                                                            显示整年日历
cal 5 1978                                                   显示1978年5月日历
PS:更多用法可以参见date --help

简单命令
halt,poweroff                                     关机
init 0                                                       关机
reboot / init 6                                       重启
reboot -f                                                 强制重启,不调用shutdown
reboot -p                                                切断电源,相当于关机
shutdown                                              1分钟之后关机
shutdown -r 10 wall                            10 分钟后重启,且给所有用户发送提醒信息
shutdown -c                                          退出shutdown
shutdown -now                                    立即关机
shutdown -r 21:30                               21:30重启
PS:linux提供了很多种关机方式,有时会有细微的差别,实际工作中服务器的
关机重启还需慎重。

tty                                                           查看当前在哪个终端(tty1-6,pts/)
who                                                        查看当有所有的登录会话
whoami                                                 查看本终端当前用户
w                                                            系统当前所有的登录会话以及所做的操作

ifconfig                                                 查看网络链接
nano /etc/motd                                 简单的文本编辑命令

screen                                                   新建会话命令
screen -S help                                     新建help会话
screen -ls                                             显示当前所有screen会话
screen -x help                                     加入help会话
ctrl+a,d                                             脱离当前screen会话
screen -r                                              恢复断开的screen会话
exit                                                       离开会话
PS: screen命令的功能可以使不同终端使用同一个会话窗口,要求连接的终端
接入同一台主机,且使用相同的账号登录。

echo                                                      显示字符
echo abc                                              显示abc,默认-E,会去掉\的解释作用
echo -n aaa                                         输出aaa,结束之后不换行
echo -e "aaa\a"                                  输出aaa且发出警告音,-e选项会开启\解释功能
\b                   退格键
\c                   最后不加换行字符,效果等于-n
\n                   换行且光标移到行首
\r                   回车,即光标移到行首,但不换行
\t                    插入tap
\\                   插入\字符
\0nnn           插入八进制数nnn所代表的ASCII字符
\xHH            插入十六进制数HH所代表的ASCII字符

单引号,双引号,反向单引号以及 $() 和 {} 的用法
可以尝试查看执行以下命令观察输出
echo echo $PS1 输出结果:echo \[\e[1;35m\][\u@\h \w]\$\[\e[0m\]
echo "echo $PS1" 输出结果:同上
echo 'echo $PS1' 输出结果:echo $PS1
echo
echo $PS1 输出结果:\[\e[1;35m\][\u@\h \w]\$\[\e[0m\]
可以看出:
单引号以内皆为字符,不识别变量和命令
双引号可以识别变量,但不识别命令操作
反向单引号,可识别变量和命令
但是如果需要嵌套输出命令结果:如:
echo echo pwd
如果最终需要输出命令pwd的显示结果,
echo
echo pwd 是无法识别pwd的,即反向单引号无法嵌套使用
echo
echo $(pwd) 此为正确用法
其中$(pwd) 等同于
pwd` 为调用命令输出的标准用法,且可嵌套
如以上命令还可以写成:
echo $(echo $(pwd))

echo f{1,3,5}                     显示f1 f3 f5
touch f{1..10}                   创建文件f1 f2..f10
touch a{1..30..2}             创建文件a(1-30) 间隔为2
rm file{00000..00100} 删除file00000-file00100

Tab键的使用
命令补全:
用户给定的字符串只有一条唯一对应的命令时候是,按tab键会直接补全命令
如不唯一,单机tab无反应,再次按下tab键,则会给出所有匹配列表
ifcon+tab键                  ifconfig
ifc+2tap                        列出所有ifc开头的命令
路径补全:
在输入路径时如给出的字符串在上级目录对应唯一的一个目录或者文件,按下
tap键,直接补全
如不唯一,两下tap键会列出满足条件的所有目录或者文件列表

cmd 2tap                   所有子命令或文件补全
ifc+2tap                    所有以ifc开头的命令
/2tap                         显示所有根目录下一级目录,包括隐藏目录,但不显示文件
./2tap                        当前目录下子目录,包括隐藏目录,不显示文件
*2tap                         当前目录下子目录,不包含隐藏目录,不显示文件
~2tap                        显示所有用户列表
$2tap                        显示所有变量
@2tap                       /etc/hosts记录,sentos7不支持
=2tap                        相当于ls -A,sentos7不支持

命令行历史
重复前一个命令,有4种方法
使用上方向键,并回车执行
按!!,并回车执行
输入!-1,并回车执行
按ctrl+P,并回车执行,相当于上方向键
!:0 执行前一条命令,去除参数
ctrl+n                            显示当前历史中的的下一条命令,但不执行,相当于下方向键
ctrl+j                             执行当前命令
ctrl+r                            在命令历史中搜索命令
ctrl+g                           从历史搜索模式中退出
!n                                执行history命令输出对应序号n的命令
!-n                              执行history历史中倒数第n个命令
!l                                 重复前一个以l开头的命令
!?s                            重复前一个包含s的命令
!l:p                            显示前一个以l开头的命令结果
!$:p                           打印输出!$(上一条命令的最后一个参数)的内容
!*:p                         打印输出!*(上一条命令的所有参数)的内容
^string                       删除上一条命令中的第一个string字符串
^string1^string2       将上一条命令中的第一个string1替换成sting2
!:gs/string1/string2          将上一条命令中的所有string1换成string2

!$                                  调用前一个命令中最后一个参数
esc,.                                 调用前一个命令中最后一个参数
alt+.                               调用前一个命令中最后一个参数

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

history                            命令
history                            显示命令历史记录
history -c                       清空历史记录
history -d nnn              删除历史记录中的第nnn个命令
history n                        显示最近的n条记录
history -a                       追加本次会话新执行的命令历史列表至历史文件
history -r                       读历史文本附加到历史列表
history -w                      保存历史列表到指定的历史文件
history -n                       读历史文本中未读过的行到历史列表
history -p $(cmd)        执行命令cmd,不生成历史,如不加引号,
会直接打印命令
history -s cmd              生成记录cmd,但是不执行,如用$(),命令会执行,
执行的结果会记录到历史
HISTSEZE                    命令历史就的条数
HISTFILE                     指定历史文件,默认为~/.bashrc
HISTFILESIZE            命令历史文件记录的条数
HISTTIMEFORMAT=”+%F %T“          历史记录显示时间
HISTIGNORE=”str1:str2*…”                 忽略str1命令,str2开头的文件
HISTCONTROL 环境变量
=ignoredups                            默认,忽略重复的命令,连续且相同为重复
=ignorspace                            忽略所有以空白开头的命令
=ignoreboth                            相当于dups+space
erasedups                                删除重复命令
以上变量存放 /etc/profile 或~/.bashrc

bash的快捷键
ctrl+l          清屏,相当于clear命令
ctrl+o          执行当前命令,并重新显示本命令
ctrl+s          阻止屏幕输出,锁定
ctrl+q          允许屏幕输出
ctrl+c          终止命令
ctrl+z          挂起命令
ctrl+a          光标移到命令行首,相当于Home
ctrl+e          光标移动命令行尾,相当于end
ctrl+f           光标向右移动一个字符
ctrl+b          光标向左移动一个字符
alt+f            光标向右移动一个单词尾
alt+b           光标向左移动一个单词尾
ctrl+u          从光标处删除至命令行首
ctrl+k          从光标处删除至命令行尾
alt+r            删除当前整行
PS:还有部分快捷键用法以及图形界面快捷键用法并未列出,alt组合键经常
和其他软件冲突

获得帮助
##获得帮助的能力决定了技术的能力。
##Linux提供了多种获得帮助的方式

whatis 显示命令的简短描述,如:
whatis ls
makewhatis                           sentos6安装whatis
mandb                                     sentos7安装whatis

help cmd                                内部命令用法介绍
cmd –help                             外部命令用法介绍,有些命令是-h

man bash                               全部内部命令用法接受
man -f                                     简短描述,等于whatis
man cmd                                获得命令cmd的man帮助
man 5 cmd                            看命令man帮助的第5章节
man -k keyword                   列出所有匹配的页面,使用wahtis数据库

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

man帮助段落说明
NAME 名称及简要说明
SYNOPSIS 用法格式说明
[] 可选内容
<> 必选内容
a丨b 二选一
{} 分组
… 同一内容可出现多次
DESCRIPTION          详细说明
OPTIONS                    选项说明
FILES                          相关文件
AUTHOR                     作者
COPYRIGHT              版本信息
REPORTING BUGS  bug信息
SEE ALSO                   其他帮助参考

man文档查看相关操作
space 向下翻屏
b 向上翻屏
G 跳转至文件尾部
1G 翻至文件首部
q 退出
搜索方式:
/keyword 从当前位置向文件尾部搜索,不区分字符大小写
n:下一个
N:上一个
?keyword 从当前位置向文件首部搜索,不区分字符大小写
n:下一个,与搜索方向同向
N:上一个,与搜索方向反向

导航info页
info cmd                   打开info帮助文档
Home                        显示主题首部
enter                          进入选定链接
tab键                         移动到下一个链接
d                                显示主题目录
n/p/u/l                    进入下/前/上一层/最后一个链接
s                                 文字文本搜索
q                                退出info

其他获得帮助的途径
通过本地文档获取帮助
/usr/share/doc/ 大多数安装了的软件包的子目录,包括了这些软件的相关原理说明
在线文档获取帮助
比较大型的软件,可以上官方网站获取官方文档说明
通过发行版官方的文档光盘或者网站可以获得
安装指南、部署指南、虚拟化指南等
红帽知识库和官方在线文档
红帽全球技术支持服务

笔记整理完成时间:2018年3月31日14:44:00

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/93990

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班