linux第二天
帮助的命令:
1.man [参数] 命令 , 打开帮助手册
1.命令: man 1 cd , cd , cp, mv ,printf
2.系统调用: man 2 系统函数, fork() 进程
3.C语言库函: man 3 C语言函数 , printf()
printf fork
2.help:
内部:help 命令名
外部: 命令名 --help
type 命令
cd is a shell builtin 内部
ls is aliased to `ls --color=auto' 外部
3.查看命令相关文件的路径:whereis -mb 命令
帮助-m,原代码文件-b
4. info 命令 显示的是命令手册
一。vi / vim
vi [路径/文件名]
1.命令模式
2.输入模式
3.末行模式
命令模式 - i/o/a/ I/A/O--> 输入模式
<----ESC 键------
命令模式 -- : / ?开头的命令---> 末行模式
i:当前光标前
o:当前光标所在行的下一行
a: 当前光标后
I:当前光标所在行的开头
A:当前光标所在行的结尾
O:当前光标所在行的上一行
:w [文件名] 保存
:q 退出
:wq 保存退出
:w! 强制保存
:q! 强制退出
:wq! 强制保存退出
4基本使用
1)命令模式下的命令: x:删除光标所在的字符(可实现剪切),
dd:删除当前行,
dw:删除单词
yy:剪贴板(复制)
p:粘贴
ZZ:保存并退出
移动光标(下上左右键, HJKL)
2)输入模式下的命令:
移动光标(下上左右键)
3)未行模式下的命令:
:x 保存退出 :wq
:w 文件名 保存
:q
:wq
:set nu显示行号
:set nonu 取消显示行号
到文档中查找字符是否存在
?查找字符
/查找字符 n , shift+n(N)
替换:
:开始的行号, 结束的行号s/要被替换的字符/新字符/参数
例如:1,6s/dd/cc(将dd替换成cc)
默认参数:无提示区分大小写 eg
i:不区分大小写
c :有提示信息(只换每一行的第一个)
e:区分大小写
g:无提示信息(所有)
结束的行号:
行号:9, 到文件尾 $, %
5.vim打开多个文件
1. vi 文件名1 文件名2 文件3 。。。
:n 跳到下一个文件
:N 跳到上一个文件
:e 文件名 跳到指定文件 如果文件名不存在创建一个新文件
注:同一时刻只能看到一个文件
2.vi 文件名
:sp 文件名 竖向打开文件 :new 文件名
:vsp 文件名 横向打开文件 :vnew 文件名
ctl+ww(多个文件光标切换,切换到下一个文件)
:sp 无文件名 打开当前光标所在处的文件
:new 无文件名 创建一个新文件,再保存时需要加入文件名,:wq 文件名
注:同一时刻只能看到多个文件
二。查看文件
cat [参数] [文件名]
不写文件名时,将键盘上的输入回车后显示在显示器上====>标准的输入输出命令
-n:连行号一起显示在屏幕上 -b:连行号一起显示在屏幕上,但空行不算。
-t:连特殊字符一起显示在屏幕上。
more [参数] 文件名
+n:从笫n行开始显示 (+5表示从第5行开始显示出来)
-n: 定义屏幕大小为n行
下翻命令:回车(单行下翻)(-5表示显示从第一行显示到第5行,其他的需翻页显示)
ctrl+f(整页下翻)
空格键(整页下翻) 未到底退出则按q键。
less [参数] 文件名
-N 显示每行的行号(less -N aa表示aa文档显示行号,如果aa文件内容很多会显示一部分,需要按空格和回车键显示全部内容)
按q可以退出
less 命令;空格键 滚动一页;
回车键 滚动一行。
head [参数] 文件名 (head -5 wu表示指定显示前面5行)
-n:指定显示多少行 (head 和tail都不能直接接+4,如果要使用+4需要加-n +4 )
head -5
head -n
head -n +3 a.txt 表示读取前面三行的数据
head -n -3 a.txt 表示读取第一行到倒数第三行的数据
tail [参数] 文件名(tail -5 wu表示指定显示末尾5行)
-n:指定显示多少行
tail -n +3 a.txt 表示从第三行开始读取到最后
tail -n -3 a.txt 表示读取最后三行数据
vi / vim 查看也作编辑
grep [参数] 用查找的内容 要查找的文件路径
-v 反向筛选出不含过滤关键词的
-i 忽略关键词大小写
-n 在显示符合范本样式的那一列之前,标示出该列的编号(把这行编号显示出来)
-r 在目录文件中查找
例如grep -rn cc ./
grep -r abcdefg /(在根目录下查找包含有abcdefg的文件)
find -name 文件名 (查找出来的是路径)
Linux查看日志常用命令: 文件
查看日志: cat , more less,head ,tail,vim
1.查看日志常用命令
tail:
tail -100f test.log 实时监控100行日志
tail -n 10 test.log
tail -10 test.log
tail -n -10 test.log
显示日志尾部最后10行的日志;
tail -n +10 test.log 显示第10行之后的所有日志;
head:
跟tail是相反的,tail是看后多少行日志;例子如下:
head -n 10 test.log
head -10 test.log
head -n +10 test.log
显示日志文件中的头10行日志;
head -n -10 test.log 显示日志文件除了最后10行的其他所有日志;
cat:
tac是倒序查看,是cat单词反写;例子如下:
cat -n test.log |grep "debug" 查询关键字的日志
2. 应用场景一:按行号查看---过滤出关键字附近的日志
1)cat -n test.log |grep "debug" 得到关键日志的行号
2)cat -n test.log |tail -n +92|head -n 20 选择关键字所在的中间一行. 然后查看这个关键字前10行和后10行的日志:
tail -n +92表示查询92行之后的日志
head -n 20 则表示在前面的查询结果里再查前20条记录
3. 应用场景二:根据日期查询日志
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效;
先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该 时间点
4.应用场景三:日志内容特别多,打印在屏幕上不方便查看
(1)使用more和less命令,
如: cat -n test.log |grep "debug" | more 这样就分页打印了,通过点击空格键翻页
(2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析
如:cat -n test.log |grep "debug" >debug.txt
三。压缩打包命令(压缩文件的后缀名:.tar.gz .bz2 .zip)(打包压缩名.rar)
一)归档与压缩 (v可以不要,v为查看压缩文件内容的)
1.tar -cvf 归档文件名.tar 要归档的文件名列表
2.tar -czvf 归档并压缩文件名.tar.gz 要归档的文件名列表 (z可以省略但是需加上,不加z的话,解压,查看都不能叫z,否则会报错)
3.tar -cjvf 归档并压缩文件名.bz2 要归档的文件名列表
4.zip 归档并压缩文件名.zip 要归档的文件名列表
二)解归档并压
1.tar -xvf 归档文件名.tar -C 解压缩的路径
2.tar -xzf 归档并压缩文件名.tar.gz -C 解压缩的路径
3.tar -xjf 归档并压缩文件名.bz2 -C 解压缩的路径
4.unzip 归档并压缩文件名.zip -d 解压缩的路径
-x:解压
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
-c: 建立压缩档案
-t:查看内容
-j:有bz2属性的
-v:显示所有过程
-Z:有compress属性的
三)查看解归档并压
1.tar -tf 归档文件名.tar
2.tar -tzf 归档并压缩文件名.tar.gz
3.tar -tjf 归档并压缩文件名.bz2
4.unzip -v 归档并压缩文件名.zip
四。用户的管理 (root)
1.useradd [参数] 用户名
-m:创建用户并创建用户的主目录(略)
-M:创建用户,不创建用户的主目录
2.passwd 用户名
3.su - 用户名
4.userdel [参数] 用户名
注:没有使用的用户名才可能以删除
-r:删除用户的主目录
5.usermod -L 用户名
锁定用户的密码(密码不可用)
usermod -U 用户名
解锁 用户的密码可用((密码可用))
6.创建组
groupadd 组名
7.组中添加用户
usermod -g 组名 以存在的用户 : 用户,组存在改变用户所属的组
useradd -g 组名 -m 用户不存在 :用户不存在,组存在, 创建用户时直接添加组(如不指定组,用户名就是组名)(直接在组里面添加新用户)
-m可以省略
8.删除组
groupdel 组名
注:没有使用的组才可能以删除
9、用户的系统文件
1).用户账号文件:/etc/passwd`
2).影子密码文件:/etc/shadow
3).组账号文件/etc/group
4).组影子密码文件/etc/gshadow
10.查看用户组
语法:
groups [用户名] ; 显示用户名所在的组
id [用户名];当前用户的信息
11.用户群组 成员更改
语法:
gpasswd [-option]用户名 群组名
-a 添加用户进群组
-d 从群组移除用
gpasswd -a a1 B ;
gpasswd -d a1 B;
注:不能移除主组
用户和组名必须都存在