一、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文件总行数