第一个单元 访问命令行
############################################################################
(一).bash
shell:命令提示符含义,shell开启及退出,命令的格式及分类
(二).获取帮助:wahitis,man,help,info
(三).用户登录:切换、锁定界面,开机,重启
(四).简单命令的例子:date,hwclock,cal,passwd,file,cpio
(五).bash支持:命令行编辑,命令历史history,命令补全Tab,命令别名alias,命令替换,文件名通配
(六).文本处理:cat,tac,more,less,head,tail,cut,sort,uniq,wc,tr
什么是内核?
硬件(最底层),cpu(大脑),内存(草稿)
kernel:太过脆弱,需要shell保护,进行判断谁先执行。
bash shell:对内核进行保护,但是有漏洞,也是软件。只负责传输数据
Bourne-Again shell:比shell的功能更强
(一)bash shell
****************************************************************************
1.打开命令行的提示符含义:
[谁开启的@在哪开启
所在系统的位置]用户级别(#:超级用户,$:普通用户)
超级用户(管理员用户):管理系统,root,权限几乎不受限制。
普通用户:使用系统,权限小。
注:命令必须要在命令行的最后输入,执行才有效
2.shell开启及退出
退出:Ctrl+D,exit
切换用户:su -
USERNAME(用户必须存在 su:Switch
user)
切到超级用户:su - root
su -
注:超级用户可以直接切换到普通用户
普通用户切换到高级用户或普通用户需要输入密码
开启:
图形方式:1.右键
2.Applications
虚拟控制台方式:
进入:Ctrl+Atl+F2|F3|F4|F5|F6
退出:Ctrl+Atl+F1|F7
3.命令格式:命令 + 参数
+ 目标 (都需要用空格隔开)
参数(options):
-后跟单词的缩写
--后跟单词的全拼
目标:省略时默认为当前目标,多个目标需要用空格隔开
注:命令,参数,目标是三种身份,需要隔开
当目标名称里有空格就用单引号引起来。
取消执行已输入的命令:Ctrl
+ C
4.命令类型:
内置命令:shell内置,内建的
外部命令:在文件系统的某个路径下有一个与命令名称相对应的可执行文件
5.环境变量:
变量:命名的内存空间
变量赋值:如a=10
声明变量:申请内存使用
printenv:显示环境变量
PATH:使用冒号分隔的路径,从头到尾查找使用过的命令,会有缓存,下次可以从缓存中找命令。
hash:查看缓存
(二)获取帮助:
****************************************************************************
【】:中括号里的可以省略
<>:表示必须要添加
...:表示可以添加多个或者不添加
|:多选一
{}:分组
1.wahitis 命令:查看命令是干嘛的
2.help:
COMMAND --help:外部命令,获取此命令的帮助信息
help COMMAND:内部命令,获取此命令的帮助信息
3.info COMMAND:在线文档(很详细)
/usr/share/doc:文档
4.man 更详细的帮助,man是分章节的
格式:man + [command]
man 5 + [filename]
whatis COMMAND:查看章节
分章节:
1:用户命令(所有用户都可以使用)
2:系统调用
3:库用户
4:特殊文件(设备文件)
5:文件格式(配置文件的语法)
6:邮件
7:杂项
8:管理命令
MAN:man文档中的提示信息
NAME:命令名称及功能简要说明
SYNOPSIS:用法说明,包括可用选项
DESCRIPION:命令功能的详尽说明,包括每一个选项的意义
FILFS:命令相关的配置文件
EXAMPLES:使用示例
SEE ALSO:另外参考
快捷翻屏:
向后翻一屏:空格(SPACE)
向前翻一屏:b
向后翻一行:回车(Enter)
向前翻一行:k
查找:
/KEYWORD:向后
n:下一个
N:前一个
?KEYWORD:向前
n:下一个
N:前一个
(三)用户登录:
*****************************************************************************
1.图形登陆:输入用户名和密码(点击右上角用户名-->Log
out注销)
2.文本界面登陆:Ctrl+Alt+F2:
localhost login:输入用户名(输入可见,用户必须存在)
Password:输入秘密(输入不可见)
3.界面切换:
Ctrl+Atl+上下键
4.锁定操作界面:
图形界面:Ctrl+Atl+l
控制台界面:Ctrl+D
5.关机,重启:
立即关机:powering off
poweroff
shutdown -h now
init 0
关机重启:rebooting
reboot
shutdown -r now
init 6
(四)简单命令的例子
****************************************************************************
1.时间
ntp:网络时间协议
硬件时钟:clock,hwlock
系统时钟:date
date:显示系统时间及修改时间
date +%F:只显示年月日
date 111111.11(修改月日小时分钟.秒钟)
显示72天以后的时间:date
-d 72day
Tue Mar 24 11:52:55 CST 2015
hwclock:
-w:把系统时间同步到硬件时间,改硬件时间
-s:把硬件时间同步到系统时间,改系统时间
-r:读取时间,不加也一样
cal:查看日历(calendar)
cal:打印当月的日历
cal 2014:打印2014年的日历
cal 12 2014:打印2014年12月的日历
2.修改密码
passwd:修改密码
超级用户:passwd
USERNAME:修改用户的密码
要求普通用户的密码字符超过8个字符,但是不是必须要求,输入两次密码即可
修改超级用户自己的密码
passwd既可
普通用户:passwd
(回车,输入自己现在的密码,输入新密码两次)
只可以修改自己的密码
字符必须超过8个
必须是字符和数字的组合
修改密码时必须知道自己现在的密码
新密码不可以和旧密码相似
超级用户锁定普通用户:passwd
-l USERNAME
超级用户解锁普通用户:passwd
-u USERNAME
非交互方式修改密码:echo
PASSWORD |passwd --stdin USERNAME
PASSWORD:用户的新密码
USERNAME:要修改用户的名称
--stdin:标准输入
3.检测文件类型
file:检测文件类型
格式:file FILE
cpio -i < NAME:解压NAME在当前目录
(五)bash支持的功能
****************************************************************************
shell:外壳
GUI:Gnome,KDE,xfce
CLI:sh:自身也是一个执行程序
csh:类似c语言
ksh:比csh更多商业化的产品
bash:功能更强大,开源的
zsh:新的
bash:是外部程序,但带有命令
程序:只有一个,但是进程可以有多个
进程:是程序的副本,进程是程序执行实例,在每个进程看来,当前主机上只存在内核和当前进程
bash支持:
1.命令行编辑
2.命令历史
3.命令补全
4.命令别名
5.管道,重定向
6.命令行展开
7.文件名通配
8.变量
9.编程
1.命令行编辑
光标跳转:
Ctrl + r:输入字符可以查找到最近含有此字符的命令
Ctrl + 左右键:以单词为单位左右跳转
Ctrl + a:跳到字符串的行首
Ctrl + e:跳到字符串的行尾
Ctrl + k:删除光标及光标以后的字符
Ctrl + u:删除光标以前的字符
Ctrl + d:依次删除光标以后的字符
上下键盘:调出最近执行的命令
左右键盘:以字符为单位左右跳转
2.命令历史
bash一般情况下会自动记录过去曾经执行过的命令,会保存在内存的一段缓冲区当中,上下键盘:调出最近执行的命令
history:查看命令历史
-c:清空命令历史
-d:删除某一行or几行,删除指定位置的命令
!n:执行命令历史中第n条命令
!-n:执行命令历史中倒数第n条命令
!!:执行上一条命令
!string:表示执行命令历史中最近一个以string开头的命令
!$:引用前一个命令的最后一个参数
3.命令补全
Tab键:自动补齐命令or路径
tab一次:可以补齐唯一的命令或文件名
tab两次:可以列出不唯一的命令或文件
4.命令别名:
有空格用‘’引起来,临时的,在shell中定义的别名仅对当前shell生命周期中有效,别名的有效范围为当前的shell进程
alias:起别名
格式:alias CMDALIAS=‘COMMAND
[options][arquments]‘
例子:alias cls=clear(清屏)
alias:不使用任何参数时,输出所有的命令别名,alias本身是shell内建命令
unalias:撤销别名
格式:unalias CMDALIAS
5.命令替换
$(COMMAND),`COMMAND`:把命令中的某个子命令替换为执行结果的过程
例子:恶echo "The
current directory is $(pwd)"
bash支持的引号
反引号``:命令替换
双引号"":弱引号,可以实现变量替换
单引号‘‘:强引用,不完成变量替换
强引用:
\:转义
‘‘:转义
弱引用:
"":不能转义 ` ! $
${}:改变优先级
$():指定命令执行顺序
ehco "$a"a
echo $a"a"
echo ${a}a
echo $(a)a
6.文件名通配
*:代表匹配所有字符,包括空格
rm -fr *:不能删除以.开头的文件
?:代表匹配任意单个字符
~:表示用户家目录
~ USERNAME:用户USERNAME的家目录
~+:代表当前目录 .
~-:代表当前目录的上一级目录 ..
{}:连续选择,适用于新建touch
如:{a-c}:a,b,c
非连续选择:{a,c}
[]:匹配指定范围内的任意单个字符
[abc]:从中选择一个
[a-z]:所有小写字母
[a-zA-Z]:所有字母
[^]:匹配指定范围外的任意单个字符
^:非 【^a】:除了a
!:非 【!a】:除了
man 7 glob
【【:alpha:】】:匹配所有字母
【【:lower:】】:匹配小写字母
【【:upper:】】:匹配大写字母
【【:alnum:】】:匹配所有的数字和字母,包括大小写
【【:punct:】】:匹配非空的符号
【【:digit:】】:匹配数字
【【:space:】】:匹配空格,空白字符
例子:【【:alpha:】】*【【:space:】】*【【:alpha:】】
匹配以字母开头,字母结尾,中间有空格的
(六)文本处理:
****************************************************************************
cat,tac,more,less,head,tail,cut,sort,uniq,wc,tr
(1)查看文本
cat:连接并显示,若只有一个文本只显示一个文本,若有多个依次显示多个。
-n:显示出行号,显示时给每行给与编号
-E:显示每行行的结束符,在linux里结束符为$,在windows里结束符号为$\n
-A:显示出所有的内容,包括非打印符
tac:显示和cat是相反的,从最后一行开始显示
Ctrl+c:中断,取消命令
Shift+Pgup/Pgdn:(上/下翻)但是是有限的,只是缓存
more:分屏显示,到最后就直接退出了
空格:向前翻
b:向后翻
less:分屏显示,到最后不直接退出了
空格:向前翻
b:向后翻
回车:向后一行一行翻
k:向前一行一行翻
head:查看前n行,默认显示前10行,空白行也算
格式:head
FILENAME:默认显示前十行
head -n FILENAME:显示文件前n行
tail:查看后n行,默认显示前10行,空白行也算
格式:tail
FILENAME:默认显示后十行
tail -n FILENAME:显示文件后n行
-n:显示的行数,在linux中
head -n 2 = head -2
tail -f:显示内容并且不退出,显示完也不退出,若有新内容立即显示的(如查看日志)
查看文件尾部,不退出,等待显示后续追加至此文件的新内容
(2)文本处理
cut:显示文本字段
-d:指定字段的分隔符,默认是一个空格
-f:指定要显示的字段
-f 1.3:显示第一个字段和第三个字段
-f 1-3:显示第一个字段,第二个字段,第三个字段
例:cut -d:
f1 /etc/passwd 显示/etc/passwd文件的第一个字段,字段的分隔符为:
(3)文本排序
sort:不影响源文件内容,只是改变显示的结果,sort默认是按ASCII表的字母升序进行排序的,默认不是按数字大小排序,而是按字符排序的
-n:按数值排序的,按升序排序(默认)
-r:按降序排序的
-t:字段分隔符
-k:以哪个字段为关键字进行排序
例如:sort -t:
-k3 /tec/passwd 给/etc/passwd以:为分隔符的第三个字段进行排序
-u:相同的字符之显示一次(unique)
-f:排序时,忽略字符大小写,不区分大小写
uniq:不显示相邻行且相同的行,之显示一行,报告哪行是重复的或忽略重复的行,不相邻的行不代表重复。
-d:只显示重复的行
-D:显示重复的几行,显示所有的重复的行
-c:显示行的重复的次数
(3)文本统计
wc:(word count)
格式:wc
filename:显示文件的行数,单词数,字节(字符)数,字节包括空格
-l:只显示行数
-w:只显示单词数
-c:只显示字节(一个汉字3个字节,空格算一个字节)
-m:只显示字符(一个汉字1个字符,空格算一个字节)
-L:表示最长的一行包含多少个字符
System monitor:系统监控
w -f:w查看谁登陆了我的系统并在做什么
pwd:查看所在位置
init 3:关闭图形
init 5:开启图形
print:默认没有换行符
echo:默认会有一行空白行
echo -n:不显示空白换行
echo -e:-e后可以用转义字符
file:查看文件所用的文件类型