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:当前光标前
a: 当前光标后
o:当前光标所在行的下一行
I:当前光标所在行的开头
A:当前光标所在行的结尾
O:当前光标所在行的上一行
4基本使用
1)命令模式下的命令: x:删除光标所在的字符(可实现剪切),
dd:删除当前行, (可实现剪切)
dw:删除单词(当前光标到空格或回车)(可实现剪切)
yy:复制当前行到剪贴板
p:粘贴
ZZ:保存并退出
移动光标(下上左右键, HJKL)
2)输入模式下的命令:
移动光标(下上左右键)
3)未行模式下的命令:
:x 保存退出
:w [文件名] 保存
:q 退出
:wq [文件名] 保存退出
:w! [文件名] 强制保存
:q! 强制退出
:wq! [文件名] 强制保存退出
:set nu 显示行号
:set nonu 不显示行号
到文档中查找字符是否存在
?查找字符
/查找字符 n , shift+n(N)
替换:
:开始的行号, 结束的行号s/要被替换的字符/新字符/参数
默认参数:无提示区分大小写 ,只替换找的每一行的第一个
i:不区分大小写
c :有提示信息(只换每一行的第一个)
e:区分大小写
g:无提示信息(全部替换)
结束的行号:
行号:, 到文件尾 $, %
5.vim打开多个文件
1. vi 文件名1 文件名2 文件3 。。。
:n 跳到下一个文件
:N 跳到上一个文件
:e 文件名 跳到指定文件 如果文件名不存在创建一个新文件
注:同一时刻只能看到一个文件
:q退出所有文件
2.vi 文件名
:sp 文件名 竖向打开文件 :new 文件名
:vsp 文件名 横向打开文件 :vnew 文件名
ctl+ww 切换窗口
:sp/vsp 无文件名 打开当前光标所在处的文件
:new/vnew 无文件名 创建一个新文件,再保存时需要加入文件名,:wq 文件名
注:同一时刻能看到多个文件
二。查看文件(普通文件)
cat [参数] [文件名]
不写文件名时,将键盘上的输入回车后显示在显示器上====>标准的输入输出命令
-n:连行号一起显示在屏幕上
-b:连行号一起显示在屏幕上,但空行不算。
-t:连特殊字符一起显示在屏幕上。
more [参数] 文件名
+n:从笫n行开始显示
-n: 定义屏幕大小为n行
下翻命令:回车(单行下翻)
ctrl+f(整页下翻)
空格键(整页下翻)
未到底退出则按q键。
less [参数] 文件名
-N 显示每行的行号
按q可以退出
less 命令;空格键 滚动一页;
回车键 滚动一行。
head [参数] 文件名
-n:指定显示多少行
head -5
head -n
tail [参数] 文件名
-n:指定显示多少行
vi / vim 查看也作编辑
grep [参数] 要查找的内容 要查找的文件路径
-v 反向筛选出不含过滤关键词的
-i 忽略关键词大小写
-n 在显示符合范本样式的那一列之前,标示出该列的行号
-r 在目录文件中查找
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,.rpm..)(打包文件的后缀名:.tar)
一)归档、压缩
1.tar -cf 文件名.tar 要归档的文件名列表
2.tar -czvf 文件名.tar.gz 要归档的文件名列表
3.tar -cjvf 文件名.bz2 要归档的文件名列表
4.zip -r 文件名.zip 要归档的文件名列表
二)解压、档
1.tar -xf 文件名.tar -C 路径
2.tar -xzf 文件名.tar.gz -C 路径
3.tar -xjf 文件名.bz2 -C 路径
4.unzip 文件名.zip -d 路径
三)查看解归档并压
1.tar -tf 归档文件名.tar
2.tar -tzf 归档并压缩文件名.tar.gz
3.tar -tjf 归档并压缩文件名.bz2
4.unzip -v 归档并压缩文件名.zip
四。用户的管理 (root)
1.添加用户
useradd [参数] 用户名
-m:创建用户并创建用户的主目录(略)
-M:创建用户,不创建用户的主目录(手动创建mkdir 用户名文件夹 , 需要将配置文件复制到用户名文件夹)
创建用户同时创建了组
2.设置用户的密码:su root
passwd [用户名] ,修改普通用户的密码
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 [用户名];当前用户的信息
用户id,组id, 群组id
11.用户群组 成员更改
语法:
gpasswd [-option] 用户名 组名
-a 添加用户进群组
-d 从群组移除用
gpasswd -a a1 B ;
gpasswd -d a1 B;
注:不能移除主组
用户名与组名必需是存在的