一、Linux常用基本命令篇(一)

 

1、cat error.log | grep -C 5 'nick'            //显示error.log文件包含'nick'关键词的上下各5行的内容
2、less error.log                         //分页查询
3、less +100g xx.log                  //直接定位到第100行,并且为进行分页查看
Shift+G      //先执行less,然后执行该命令可移动到最后一行,这个直接就是最后一行,从尾到头
Ctrl+G       //文件第一条开始,从头到尾
按F键        //是向前查看 forword
按B键        //是向后查看 backword
4、tail -f xx.log           //将文件末尾的最后10行进行输出并持续监视末尾,若有新内容写入,则会继续读取刷新输出
5、find 路径 -name 文件名       //在指定路径下,根据文件名查找某文件的存储位置(返回路径),iname为忽略大小写
6、locate 文件名                        //在当前目录查找某文件
7、grep  --color “key” xxx.log               //根据key模糊查xxx.log,--color表示将关键词进行高亮显示
8、grep –i “key” xxx.log           //带上-i,关键词忽略大小写
9、grep -F “key” xxx.log          //带上-F,关键词忽略正则匹配
10、grep -m 最大行数               //最多返回行数
11、grep -E "字符串1|字符串2|字符串3" 文件名    //多条件搜索,grep -E等价于egrep
12、zgrep  “key”                        //支持压缩包查看,也像grep一样支持一般文件内容筛选查看
13、zgrep -i -F -m 200 admin admin.log*2021-12-01* | awk '$2>"13:33" && $2<"13:35"'   //限制行数200行,忽略大小写,忽略正则匹配,查询带”admin”关键词2分钟内的
日志(假设当前时间为13:35,2分钟前时间为13:33),查询日志文件为admin.log-2021-12-01,*为通配符代表0-n个字符
14、awk '$2>"beginTime" && $2<"endTime"' xxx.log         //查询某段时间范围内的日志内容
//awk执行过程增加条件逻辑控制
在 awk中exit的执行有两种情况:当exit语句不在 END中时,任何操作中的exit命令表现得如同到了文件尾,所有模式或操作执行将停止,END模式中的操作被执行。而出现在END中的exit将
导致程序终止。退出状态为0代表成功,非零值表示出错。
awk '{if($2>3 && $2<5) exit;else print $0,NR}' file1    //满足if条件就执行exit退出,否则输出当前行,awk是读一行=>处理一行=>输出一行。
15、awk -F “:”  '{print $2,$4}'  test.txt       //读取test.txt,以":"作为分隔符,打印第2和第4个数据,不带-F默认以空格为分隔符,第一个数据从$1开始,$0代表整行数据;
多个分隔符,加入以空格或:作为分隔符,使用-F '[ :]'或-F '[ :]+'(+的作用时,把多个空格或多个:也当作是一个空格符);注意:-F '[[]]',这里内部的[]会被当成整个分隔符而
不是或的关系
16、sed -n '/11:07:15/,/11:09:15/p' xxx.log       //查询xxx.log文件里11:07:15-11:09:15范围的内容,注意:如果时间点不存在,则可能查不到内容,建议使用awk命令
17、gzip 文件名              //将某文件压缩为 文件名.gz
18、gzip -dv 文件名       //将某文件解压为文件名,并且列出详细信息
19、zip -q -r xxx.zip /home/html            //将/home/html目录下所有文件和文件夹压缩为xx.zip文件,-q为不显示执行过程,-r为递归处理目标目录下的所有子文件夹
20、unzip -v xxx.zip         //通过-v查看xxx.zip包含的文件内容信息,但不进行解压
21、unzip -d /home/html xxx.zip          //将xxx.zip进行解压,通过-d参数将解压后的文件存储在目录/home/html
22、tar -tzvf xxx.tar.gz        //查看xxx.tar.gz压缩包里包含的文件内容信息,但不进行解压
23、tar -czvf xxx.tar.gz 文件名     //将 指定文件进行压缩为xxx.tar.gz
24、tar -xzvf xxx.tar.gz        //将xxx.tar.gz压缩包进行解压,-zxvf参数可统一对目录进行压缩、解压
25、wget http://nginx.org/download/nginx-1.6.2.tar.gz      //从指定地址下载资源包
26、sh -x xxx.sh        //执行脚本xxx.sh,-x表示将每步执行过程显示出来
27、sed -i '3i xxxx' test.sh      //给tesh.sh文件的第3行加入xxxx语句
echo "new line" >> xxx.sh     //给xxx.sh文件里的末尾加入一行内容       
sed -i 's/\r$//' xxxxxxx.sh   //把文件中出现的所有\r符号替换为空白,用于解决在windows编辑sh文件时换行使用的是\n\r而在linux中的换行符使用的是\n,造成
执行sh文件时出现“/bin/bash^M: 坏的解释器: 没有那个文件或目录”错误
28、mkdir -p xxx/xx/xx     //-p的作用为确保每一级的目录存在,如果不存在则进行创建
29、
//chmod:修改目录或文件权限
chmod -R 764 xxx    //-R表示对xxx目录下所有的子目录以及子文件进行迭代修改权限,设置权限为111 110 100,即目录拥有者权限设置为:可读可写可执行,同组的其它用户
权限设置为:可读可写不可执行,其它组用户权限设置为:可读不可写不可执行

//chown:修改指定文件原有的拥有者和关联组(该命令只有超级用户才能使用)
chown -f -R ra:ragroup xxx  //-R表示对xxx目录下所有的子目录及文件进行迭代设置拥有者为ra,关联组为ragroup,-f为忽略错误信息
chown root /var/run/httpd.pid  //把指定的pid文件的拥有者设置为root

//chgrp:设置所属群组(非超级用户可使用,只要该用户是该组的一员)
chgrp -v bin test.sh    //-v表示不显示执行过程,此命令表示把test.sh的所属组更改为bin组。通过ll命令查看,由左到由的第四个参数代表的是该文件所属组,
例:(文件属性格式为:dr__r__r__,第一个符号如果为d代表该文件是一个目录,如果是-代表是文件,如果是l代表是一个链接)
文件属性    文件硬链接数    所属用户    所属组    文件大小    建档日期    文件名   

//useradd:添加用户
useradd lik                    //添加新用户lik
passwd username                //修改指定用户username的密码,然后会要求输入两次新密码来完成密码设定
useradd -g testgroup lik       //-g表示把用户lik加入到testgroup组

//groupadd:添加组
groupadd sdf                   //添加一个新组sdf,系统组信息统一存储于/etc/group
groupadd -g 344 runoob        //添加一个新组runoob,-g表示并设置它的组id为344

//查看当前系统下的所有用户和用户组信息
cat /etc/passwd                //查看所有用户
cat /etc/group                 //查看所有用户组
groups user                    //查看用户user的所属组
id user                        //查询该用户的相关id信息

//修改用户的所属组
usermod -g 用户组 用户名         //强制修改用户所在组
usermod -a -G 用户组 用户名      //把某个用户添加进某个组

30、
ls |more      //每按一下空格,文件列表就会进入下一页显示

ls -lh             //-l显示文件大小信息,-h显示文件大小的单位

du -sh          //du命令可显示文件使用磁盘情况,-s只显示总和大小,-h方便阅读格式的查看

ps -ef |grep xxx       //-e显示所有进程信息,-f全格式显示,该命令为查找xxx的进程信息并且全格式显示

//shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败。

wc -l xxx        //显示xxx文件总行数