首页 > 代码库 > Linux基础学习(三)
Linux基础学习(三)
在学习Linux命令的时候,我们会发现每一个命令都有很多的参数,如果说要把素有的参数都牢牢记住,可能有些强人所难,所以我们需要学习 man 。俗话说的好,授人以鱼不如授人以渔,学会了man就相当于学会了钓鱼的方法
1.man
man的全称其实是manual这个单词,是手册的缩写。所以这个命令就是用来查阅自己不熟悉的命令,文件,接口,库等都是什么。
使用方法:
man passwd ##查看passwd命令的帮助
man的级别
1 系统命令
2 系统接口
3 函数库
4 特殊文件,比如设备文件
5 文件
6 游戏
7 系统的软件包
8 系统管理命令
9 内核
使用方法:
man 5 passwd ##查看/etc/passwd文件的帮助(我们可以自己试验一下,看看和man passwd有什么区别)
man页面的快捷方式
上下键 ##向上或向下一行
Pgup|Pgdn ##向上一个屏幕或向下一个屏幕
d|u ##向下或者向上半个屏幕
G|gg ##跳转到最下面或最上面
/关键字 ##搜索关键字,关键字会高亮显示,n向下匹配,N向上匹配
q ##退出帮助页面
如果我们是开发人员,一定不会让用户看到所有的运行结果,用户能看到的应该只是友好的用户界面。所以,我们接下来就要学习 输入输出的管理
2.管理输入输出
在系统中用普通用户执行
find /etc -name passwd
因为student用户权限问题会有以下输出
find: ‘/etc/pki/CA/private’: Permission denied ##没有进入权力,报错
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/audit’: Permission denied
/etc/passwd ##正确输出
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/selinux/targeted/modules/active’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/grub.d’: Permission denied
/etc/pam.d/passwd ##正确输出
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/ipsec.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
find: ‘/etc/named’: Permission denied
如果我们只想让用户看到正确的输出,屏蔽掉错误输出,那我们就需要让错误输出在其他地方去显示,不管是垃圾箱也好,自己定义的file文件也好,总之不要让它显示出来就好,所以,我们需要让它重定向。
find /etc -name passwd > file ##重定向正确的输出
find /etc -name passwd 2> file ##重定向错误的输出
find /etc -name passwd &> file ##重定向所有的输出
注意:>,2>,&>都会覆盖原文件内容,所以,如果我们想要清空一个文件,也可以是使用如下命令
>file ##清空file
但是有时候我们并不希望覆盖源文件,我们希望它能追加在源文件的下面,当然也可以
find /etc -name passwd >> file ##追加正确输出
find /etc -name passwd 2>> file ##追加错误输出
find /etc -name passwd &>> file ##追加所有输出
这样,使用>>就不会覆盖原文件内容啦!
| 管道,管道的作用是将前一条命令的输出作为管道后一条命令的输入
ls /bin | wc -l ##统计ls /bin 命令输出 的行数
但是错误的输出是无法通过管道的,即系统中被标识为2的输出是无法通过管道的,如果想让他通过管道,我们就要把它的标识变成 1
使用 2>&1 可以把错误的输出编号由2变成1
tee 复制输出到指定位置(注意,是复制,上面所讲相当于剪切)
date |tee file |wc -l ##tee命令复制date命令的输出到file中,并统计输出行数
在上一章我们曾粗浅的学习了vim编辑文件的相关知识,现在就让我们更具体的了解一下这个强大的编辑器
3.vim
在vim的命令模式下可以配置vim的工作方式(所谓命令模式,就是当你打开vim时不能编辑的那个模式)
:set nu ##添加行号
:set nonu ##取消行号
:set mouse=a ##添加鼠标选择(默认情况下,vim中是无法使用鼠标的)
:set cursorline ##显示行线
*以上设定都是临时的
永久设定方式:
vim /etc/vimrc ##此文件是vim的配置文件,在此文件最后加入以上参数
vim 命令模式下关键字搜索:
/ 关键字
n向下匹配
N向上匹配
vim命令模式下字符的管理
1.字符的复制
yl ##复制一个字母
y3l ##复制三个字母
yw ##复制一个单词
y3w ##复制三个单词
yy ##复制一行
y3y ##复制三行
p ##复制完成后按"p"粘贴(不用退出命令模式)
2.字符的删除
dl ##删除一个字母
d3l ##删除3个字母
dw ##删除一个单词
d3w ##删除3个单词
dd ##删除一行
d3d ##删除3行
3.字符的剪切
cl ##剪切一个字母
c3l ##剪切3个字母
cw ##剪切一个单词
c3w ##剪切3个单词
cc ##剪切一行
c3c ##剪切3行
esc ----->p ##剪切后会进入插入模式,在粘贴时一定要退出插入模式,在命令模式下粘贴
vim的可视化模式
在命令模式下按 ctrl+v 进入可视化模式
在可视化模式下可以区域选择字符
可视化模式下批量添加字符:
ctrl + v 选中要加入字符的所在列
按 I 进入插入模式,输入要插入的字符(注意,这里是大写I)
按esc即可整列插入
命令模式下批量修改字符
:%s/原有字符/替换后的字符 ##只替换每一行中出现的第一个原有字符
:%s/原有字符/替换后的字符/g ##替换所有
:%s/\t//g ##把全文的tab键替去掉,\t表示tab键
:%s/^\ *//g ##把全文行首的空格去掉,"^\ *"表示行首的空格
:%s/^\#\ */#/g ##把全文#后的空格去掉
vim的分屏功能
ctrl+w s ##上下分屏
ctrl+w v ##左右分屏
ctrl+w c ##关闭光标所在屏幕
ctrl+w 上下左右 ##光标移动到指定屏幕
vim光标的快速移动
在命令模式下:
:数字 ##移动到指定的行
G ##文件最后一行
gg ##文件第一行
i ##光标所在位置进入插入模式
I ##光标所在行行首进入插入模式
a ##光标所在字符的下一个字符进入插入模式
A ##光标所在行行尾进入插入模式
o ##光标所在行下一行进入插入模式
O ##光标所在行上一行进入插入模式
s ##删除光标所在字符并进入插入模式
S ##删除光标所在行并进入插入模式
vim的退出
:q ##当用vim打开文件但没有对字符作任何操作时可直接退出
:q! ##当用vim打开文件并对字符作操作,放弃所有操作退出
:wq ##保存退出
:wq! ##强行保存退出,对超级用户及文件所有人生效
vim手册
vimtutor ##vim的手册
:q ##退出vimtutor
gedit相关快捷键
ctrl+n ##在gedit中打开一个新的tab
ctrl+s ##保存文件
ctrl+o ##打开文件
ctrl+x ##剪切字符
ctrl+v ##粘贴字符
ctrl+c ##复制字符
yelp help:gedit ##gedit的图形手册
Linux基础学习(三)