Linux常用命令

Linux常用命令

【切换root用户】

设置《sudo su -》不需要密码:
切换到root用户下:
>> vim /etc/sudoers

>> vim /etc/sudoers.d/wagent # wagent:名字自定义
appadmin ALL=(ALL) NOPASSWD:ALL # 让appadmin用户不需要密码登录root
%appgroup ALL=(ALL:ALL) NOPASSWD:ALL # 让appadmin的组appgroup不需要密码登录root

【设置su为不需要密码】

如果需要对某用户su命令也不需要输入密码,则需要修改下列的:

切换到root权限;
创建group为wheel,命令为groupadd wheel;
将用户加入wheel group中,命令为usermod -G wheel your_user_name
修改su的配置文件/etc/pam.d/su,增加下列项:
auth required pam_wheel.so group=wheel
Uncomment this if you want wheel members to be able to
su without a password.
auth sufficient pam_wheel.so trust use_uid

【查找】
find . -type f -exec grep -n -H -A 2 -T “eventManager->dispatch(” {} ; 【查找有包含指定字符的文件,并显示行号】

find vendor/magento/ -name ‘routes.xml’ -exec grep -i ‘Magento_Catalog’ ‘{}’ + 【查找所有指定文件中包含某字符串】

find vendor/magento/ -name routes.xml | xargs grep ‘title=“System”’ 【查找所有指定文件中包含某字符串】

grep -irn ‘$object_manger->get’ ./ 【查找当前目录下所有文件中包含指定字符串的文件】

grep -rn save-button ./ | grep -v ‘Catalog’ 【查找当前目录下所有文件中包含指定字符串的文件,并排除指定字符串】catalog/product/validate

find ./ -type d -name “del_dir” -exec rm -r {} ; 【查找所有指定目录并删除】
或:
find . -type f -name “del_dir” | xargs rm -rf *

find ./ -name “a.txt” -exec rm {} ; 【查找所有指定文件并删除】
或:
find ./ -name “a.txt” | xargs rm 或 find ./ -name *.jpg | xargs -i rm {}

find vendor/ -name "*^M" -exec rm -f  {} \;			查找所有特殊指定文件并删除

find ./ -type f -regex “.*\Test.php” | xargs perl -pi -e"s/str1/str2/g" 【查找指定目录下指定文件包含内容并替换】

sed -i “s/str1/str2/g” grep str1 -rl ./ 【查找指定目录下文件包含内容并替换】

find ./ -name *.jpg -print | xargs -i mv ‘{}’ /images/ 【查找匹配并移动到指定目录 mv可写成cp】 xargs -i 参数或者-I参数配合{}即可进行文件的操作。

查找某时间段内的所有文件
find ./ -mtime +20 -a -mtime -50 -type f 【在20-50天内修改过的文件 】

2.精确到时分秒
如:在2018年8月27日内的文件
touch -t 201808270000 t_start;touch -t 201808272359.59 t_end;find . -type f -newer t_start ! -newer t_end | xargs ls -l | grep -v “t_start|t_end”;rm -f t_start;rm -f t_end;
先创建两个时间结点文件;查找时间结点范围内的文件(-newer f1 !f2 #查更改时间比f1新但比f2旧的文件);过滤文件;删除临时文件t_start,t_end;

find  -type f \( −newermt '2018−08−27 00:00' −a −not −newermt '2018−08−27 23:59' \)
	
touch -t 201808280000 t_start;touch -t 201808282359.59 t_end;find . -type f -newer t_start ! -newer t_end | xargs ls -l | grep -v "t_start\|t_end";rm -f t_start;rm -f t_end;

find命令查找某一个时间点以后创建或者修改的文件
touch -t 201711211615.47 start
touch -t 201711211617.47 end

find ./* -newer start |xargs ls -al
-rw-r--r-- 1 zengzhihao Panodic 0 Nov 21 16:16 ./3.c
-rw-r--r-- 1 zengzhihao Panodic 0 Nov 21 16:18 ./6.c
-rw-r--r-- 1 zengzhihao Panodic 0 Nov 21 16:17 ./end

find ./* -newer start -not -newer end |xargs ls -al
-rw-r--r-- 1 zengzhihao Panodic 0 Nov 21 16:16 ./3.c
-rw-r--r-- 1 zengzhihao Panodic 0 Nov 21 16:17 ./end

或者

 find ./* -newermt '2018-08-27 00:00:00' 		【只查文件 -type f】

按照文件修改时间查找并删除,删除邮箱下70天前的邮件的命令:

find . -type f -mtime +75 | xargs rm -f

按照文件大小查找并删除,删除当前目录下所有大小为0的普通文件的命令:

find . -type f -size 0c | xargs rm -f

按照类型来查找并删除,删除当前目录下所有的目录的命令:

find . -type d | xargs rm -rf

【kill】
ps -ef | grep firefox | awk ‘{print $2}’ | xargs kill -9 【firefox需要杀死的进程】
ps -ef | grep inotify | awk ‘{print $2}’ | xargs kill -9 【firefox需要杀死的进程】

【date】
Linux下查看设设置时间date命令

查看时间 
   # date "+%Y-%m-%d %H:%M:%S"

设置时间 
   #date -s "2018-05-17 09:51:50"
   
   注意:这里说的是系统时间,是linux由操作系统维护的。
	在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。
	如果要确保修改生效可以执行如下命令。
  
  //写入到硬件时钟 
	#hwclock –w
		这个命令强制把系统时间写入CMOS 

一、查看和修改Linux的时区

  1. 查看当前时区
    命令 : “date -R”
  2. 修改设置Linux服务器时区
    方法 A
    命令 : “tzselect”
    方法 B 仅限于RedHat Linux 和 CentOS
    命令 : “timeconfig”
    方法 C 适用于Debian
    命令 : “dpkg-reconfigure tzdata”
  3. 复制相应的时区文件,替换系统时区文件;或者创建链接文件
    cp /usr/share/zoneinfo/ 主 时 区 / 主时区/ /次时区 /etc/localtime
    例如:在设置中国时区使用亚洲/上海(+8)
    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

二、查看和修改Linux的时间

  1. 查看时间和日期
    命令 : “date”
    2.设置时间和日期
    例如:将系统日期设定成2009年11月3日的命令
    命令 : “date -s 11/03/2009”
    将系统时间设定成下午5点55分55秒的命令
    命令 : “date -s 17:55:55”
  2. 将当前时间和日期写入BIOS,避免重启后失效
    命令 : “hwclock -w”

注:
date
不加参数可以直接看到当前日期时间
cal
不加参数可以直接看到本月月历

【zip】
zip参数:
-r 递归压缩,将指定目录下的所有文件以及子目录全部压缩
-d 从压缩文件内删除指定的文件
-i “文件列表” 只压缩文件列表中的文件
-x “文件列表” 压缩时排除文件列表中指定的文件
-u 更新文件到压缩文件中
-m 将文件加入压缩文件压缩后,删除原始文件,即把文件移到压缩文件中
-F 尝试修复损坏的压缩文件
-T 检查压缩文件内的每个文件是否正确无误

  • 压缩级别 压缩级别是一个1~9的数字

压缩某个文件夹,并排除某些目录或文件
zip -r aaa.zip picksmart -x "picksmart/pub/"
注:排除 picksmart/pub/
中所有
zip -r cloud_backweb_0829.zip cloud_backweb/ -x cloud_backweb/ewebeditor/uploadfile/* -x cloud_backweb/wordfile/* -x "cloud_backweb/download/wordfile/"
注:cloud_backweb/ewebeditor/uploadfile/
和cloud_backweb/wordfile/* 此目录下均是文件,
cloud_backweb/download/wordfile/* 此目录中有文件和文件夹,
均做排除压缩,注意双引号。

文件更新压缩:
zip -u ghostscript-9.18.zip index.htm

查看压缩内容:
unzip -v ghostscript-9.18.zip

指定压缩目录或文件:
zip -r 1.zip * -i “examples/*” 只压缩examples目录中的所有文件和文件夹,注意双引号,没有双引号只压缩此目录中的文件。

unzip 参数:
-x “文件列表” 解压文件,但不包含文件列表中指定的文件
-t 测试压缩文件有无损坏,并不解压
-v 查看压缩文件的详细信息,具体包括压缩文件中包含的文件大小、文件名和压缩比等,并不解压
-n 解压时不覆盖已经存在的文件
-o 解压时覆盖已经存在的文件,并且不要求用户确认
-d 目录名 把压缩文件解压到指定目录下

解压至指定目录:
unzip -d doc/ 1.zip

【Linux命令行进行文本按行去重并按重复次数排序】
1、文本行去重
(1)排序
由于uniq命令只能对相邻行进行去重复操作,所以在进行去重前,先要对文本行进行排序,使重复行集中到一起。
$ sort test.txt

(2)去掉相邻的重复行
$ sort test.txt | uniq

2、文本行排序去重并按重复次数统计
(1)首先,对文本行进行去重并统计重复次数(uniq命令加-c选项可以实现对重复次数进行统计。)。
$ sort test.txt | uniq -c

(2)对文本行按重复次数进行排序。
sort -n可以识别每行开头的数字,并按其大小对文本行进行排序。默认是按升序排列,如果想要按降序要加-r选项(sort -rn)。
$ sort test.txt | uniq -c | sort -rn

(3)每行前面的删除重复次数。
cut命令可以按列操作文本行。可以看出前面的重复次数占8个字符,因此,可以用命令cut -c 9- 取出每行第9个及其以后的字符。
$ sort test.txt | uniq -c | sort -rn | cut -c 9-

【cut命令的使用】
cut -b list [-n] [file …]
cut -c list [file …]
cut -f list [-d delim][-s][file …]

上面的-b、-c、-f分别表示字节、字符、字段(即byte、character、field);
list表示-b、-c、-f操作范围,-n常常表示具体数字;
file表示的自然是要操作的文本文件的名称;
delim(英文全写:delimiter)表示分隔符,默认情况下为TAB;
-s表示不包括那些不含分隔符的行(这样有利于去掉注释和标题)
三种方式中,表示从指定的范围中提取字节(-b)、或字符(-c)、或字段(-f)。

范围的表示方法:
n 只有第n项
n- 从第n项一直到行尾
n-m 从第n项到第m项(包括m)
-m 从一行的开始到第m项(包括m)
- 从一行的开始到结束的所有项

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值