收藏Linux常用命令

命令意思备注

shutdown -r now

poweroff  

shutdown -h now

重启 

关机

关机

  

centos7服务管理组件systemctl的服务存贮目录和常用列表命令

systemctl服务主体存贮目录:

/usr/lib/systemd/system/

systemctl服务开机启动链接存贮目录:

/etc/systemd/system/basic.target.wants/

列出所有开机自启的服务

systemctl list-unit-files|grep enabled

列出防火墙服务的自启状态

systemctl list-unit-files|grep firewalld

列出所有服务的层级和依赖关系,可以指定某个服务

systemctl list-dependencies [服务名称]

systemctl restart  httpd.service 

systemctl enable  tinyproxy

systemctl enable  httpd.service 

systemctl enable iptables.service #设置防火墙开机启动

systemctl enable vsftpd   #设置开机启动

/etc/init.d/mysqld stop

ls  排序

1) ls -lt  时间最近的在前面

2) ls -ltr 时间从前到后

3) 利用sort

    ls -l | sort +7 (日期为第8列)   时间从前到后

    ls -l | sort -r +7      时间最近的在前面

tar -zxvf /tmp/etc.tar.gz  解压

tar -zcvf /tmp/etc.tar.gz /etc<==打包                             后,以 gzip 压缩

tar -zcvf /tmp/misc.tar.gz  /var/a /var/b

多个文件夹一起压缩

要使用 zip 来压缩文件,在 shell 提示下键入下面的命令:

zip -r filename.zip filesdir

linux解压 tar命令

 tar zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/webapp/xxxx//WEB-INF/logs tomcat

将tomcat目录中,除了tomcat/logs 和 tomcat/webapp/xxxx//WEB-INF/logs 之外的文件压缩成压缩包:tomcat.tar.gz

注意,去除的文件夹后面不能带/,否则该文件夹依然会被压缩!

----------------------------------------------------------------------------------------------------------------------------------------------

1.tar zcvf file.tgz * .txt

file.tgz是要压缩后的文件名 * 代表当前目录下除了隐藏文件的目录及文件 .txt 是隐藏文件的名字

这个方法只是用已经知道有隐藏文件,且隐藏文件不多的情况。

2. tar zcvf file.tgz `ls -A`

file.tgz是要压缩后的文件名 ` 这个符号是键盘上数字1左边的符号,不是引号。

  ls -A 和 ls -a 是有差别的  如果写ls -a 则把上级目录也给压缩了 ls -a 会报错。

  看下面图片

  linux下压缩隐藏文件

rm -rf /var/log/httpd/access

rm  error_log

find . -name 'access*.log' -delete      查找后直接删除

find . -name 'access*.log' | xargs rm 

find . -name "*.png" -newermt "2018-12-20 17:30:00" ! -newermt "2019-01-10 22:00:00" -ls

find /path/to/dir -type f -name "*" -newermt 2013-02-07 ! -newermt 2013-02-08 

查找2013-02-07至2013-02-08之间修改的文件

find /path/to/dir -type f -name "*" -newermt 2013-02-07 ! -newermt 2013-02-08 | xargs rm 

查找2013-02-07至2013-02-08之间修改的文件并删除,有时报错可用

find /path/to/dir -type f -name "*" -newermt 2013-02-07 ! -newermt 2013-02-08 -delete

删除文件夹

删除文件

 find . -name "*.htm" -o  -name "*.html”  查找*.html或者*.html文件

rm -rf : /usr/bin/rm: 参数列表过长

find media/uploads/wkhtmltoimage/ -iname '*.*' -type f -delete   

mkdir创建文件夹

mv abc 123

Linux 重命名文件或目录

比如说我们要将一个名为abc的文件重命名为123就可以这样来写:mv abc 123,但是要注意的是,如果当前目录下也有个123的文件的话,我们的这个文件是会将它覆盖的。

1、把文件(或目录)移动到另外一个目录中;2、变更文件(或目录)名称。

CP命令

格式: CP [选项] 源文件或目录 目的文件或目录

选项说明:-b 同名,备分原来的文件

-f 强制覆盖同名文件

-r 按递归方式保留原目录结构复制文件

cp -r /tmp/a /root/a

记得有空格

(\cp -rf /tmp/a  /root/a  加一个\不出现询问是否覆盖) 

cp复制

\cp -rf /var/www/a/* /var/www/20120913

复制a文件夹中所有文件至/var/www/20120913

\cp -rf /var/www/a/. /var/www/20120913

复制a文件夹中所有文件至/var/www/20120913 包括隐藏文件 

rsync 复制文件除了指定文件

rsync -av --exclude='Lanren/Runtime' --exclude='Home/Runtime' --exclude='Member/Runtime' --exclude='Member/Public/upload' --exclude='Home/Public/upload' --exclude='upload'  /home/www/vote.lanrenmb.com /home2/test1.zz.lanrenmb.cn

find -name '*.html' |xargs perl -fpi -e 's|<script src="a.js([^>]*)></script>||g'   

   (注:好像只能匹配替换单行)  

# cd /etc

# find ./ -exec grep old.x.x.x ‘{}’ \; -exec sed -i.bak s/old.x.x.x/new.x.x.x/g ‘{}’ \;

find 查找替换

把*.html中<script src="a.js([^>]*)></script>替换为空

find -name "index.php"  查出当时目录及之目录所有index.php文件 

——————————————————————————————————————————————————————————

查找"colorbutton,font,justify"  html文件 替换成 "colorbutton,font,justify.autogrow" 并生成 *.bak备份文件,

ag -0 -l --html $1 | xargs -0 perl -pi.bak -e "s/colorbutton,font,justify/colorbutton,font,justify,autogrow/g"

ag -0 -l --html $1 | xargs -0 perl -fpi -e "s/colorbutton,font,justify/colorbutton,font,justify,autogrow/g"   不生成备份文件

------------------------------------------------------------------------------------------------------------------------------------------------------------

查找   link: '<?php echo C('site_url

ag  --html link:\ \'\<\\?php\ echo\ C\\\(\'site_url

查找  link: '<?php echo C('site_url

替换 link: '<?php echo C('share_url

ag -0 -l --html $1 | xargs -0 perl -fpi -e "s/link\:\ \'<\?php\ echo\ C\(\'site/link\:\ \'<\?php\ echo\ C\(\'share/g"

---------------------------------------------------------------------------------------------------------------------------

此命令会替换掉旧IP地址,并且留下.bak的备份文件。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

find . -name '*.html' |xargs perl -fpi -e 's|if\(wx_error == 1\)\{|if\(typeof wx_error == \x27undefined\x27\) return;\nif\(wx_error == 1\)\{|g'

表示把 

if(wx_error == 1){

替换成

if(typeof wx_error == 'undefined') return;

if(wx_error == 1){

\x27 代表 '

\n 代表换行

find . -name '*.html' -o -name "*.htm" |xargs perl -fpi -e 's|<\/body>|<script type="text\/javascript">\n\/\*创建于2016-06-14\*\/\nvar cpro_id = "u2671677";\n<\/script>\n<script src="http:\/\/cpro\.baidustatic\.com\/cpro\/ui\/cm\.js" type="text/javascript"></script>\n</body>|g'

表示把

</body>

替换成

<script type="text/javascript">

/*创建于2016-06-14*/    

var cpro_id = "u2671677";

</script>

<script src="http://cpro.baidustatic.com/cpro/ui/cm.js" type="text/javascript"></script>

</body>

---------------------------------------------------------------------------------------------------------------

ascii Chart     

find . -name '*.html' |xargs perl -fpi -e 's|n_url \x3d n_url\x2ereplace\x28\x22\x5c\x26token\x5c\x3d\x3c\x3fphp echo \x24\x5fGET\x5b\x27token\x27\x5d\x3b\x3f\x3e\x22\x2c\x22\x22\x29\x3b|n_url \x3d n_url\x2ereplace\x28\x22\x5c\x26token\x5c\x3d\x3c\x3fphp echo \x24\x5fGET\x5b\x27token\x27\x5d\x3b\x3f\x3e\x22\x2c\x22\x22\x29\x3b \nn_url \x3d n_url\x2ereplace\x28\x22\x5c\x2ftoken\x5c\x2f\x3c\x3fphp echo \x24\x5fGET\x5b\x27token\x27\x5d\x3b\x3f\x3e\x22\x2c\x22\x22\x29\x3b \nn_url \x3d n_url\x2ereplace\x28\x22\x5c\x2fwecha\x5fid\x5c\x2f\x3c\x3fphp echo \x24\x5fGET\x5b\x27wecha\x5fid\x27\x5d\x3b\x3f\x3e\x22\x2c\x22\x22\x29\x3b|g'

表示把  

n_url = n_url.replace("\&token\=<?php echo $_GET['token'];?>","");

替换成

n_url = n_url.replace("\&token\=<?php echo $_GET['token'];?>","");

n_url = n_url.replace("\/token\/<?php echo $_GET['token'];?>","");

n_url = n_url.replace("\/wecha_id\/<?php echo $_GET['wecha_id'];?>","");

------------------------------------------------------------------------------------------

find -name '*.html' |xargs perl -fpi -e 's|link: \x27\x3c\x3fphp echo C\x28\x27site_url|link: \x27\x3c\x3fphp echo C\x28\x27share_url|g’

link: '<?php echo C(‘site_url

替换

link: '<?php echo C(’share_url

————————————————————————————————

删除 ^M

find . -name '*.php' |xargs perl -fpi -e 's|\015||g'

\015代表 ^M

chmod -R 777  XXX更改文件/文件夹权限

du -sh /home/xxxxinfo/*

du -ch --max-depth=1     列出目录第一层文件夹大小

查看文件夹大小

df -h查看分区大小已用空间,剩余多少

find / -type f -size +100000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'这个命令能找出超过100M的文件有哪些,对清理文件有作用。

查找当前文件夹中 24小时内被修改过的文件,并打包  

find . -mtime -1 -type f -print0 | xargs -0 tar rvf "lastfiles.tar" (tar -xf lastfiles.tar,解压)

find . -name "*.php" -mtime -1 -type f -print

批量查找并删除文件

find . -name "access*.log" -exec rm -r "{}" \;  

用法 php [-q] [-h] [-s] [-v] [-i] [-f ] | { [args...]}

  -q 安静模式。不输出HTTP头。

  -s 将php程序文件用转化为彩色格式的HTML(比如保留字用绿色,函数和变量为蓝色,注释为黄色而字串则是红色等等。

  -f 读入并解释指明的文件。

  -c 在中读入php.ini文件

  -a 交互式运行

  -d foo[=bar] 定义ini中的输入项 foo 的值为 bar

  -e 输出额外信息以便调试和性能分析

  -z 调入Zend扩展文件

  -i php的相关信息

  -h help本身。

linux下执行PHP脚本

1.用php -q 文件名.php 方式把php程序当shell程序来用,

2.用 -s把自己的php程序html化。这样是不是很省心?

3.利用php的odbc功能可以在shell命令中对数据库进行操作。

linux zip 命令详解 

功能说明:压缩文件。 

语 法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>] 

1. 我想把一个文件abc.txt和一个目录dir1压缩成为yasuo.zip:

# zip -r yasuo.zip abc.txt dir1

2.我下载了一个yasuo.zip文件,想解压缩:

# unzip yasuo.zip

3.我当前目录下有abc1.zip,abc2.zip和abc3.zip,我想一起解压缩它们:

# unzip abc\?.zip

注释:?表示一个字符,如果用*表示任意多个字符。

4.我有一个很大的压缩文件large.zip,我不想解压缩,只想看看它里面有什么:

# unzip -v large.zip

5.我下载了一个压缩文件large.zip,想验证一下这个压缩文件是否下载完全了

# unzip -t large.zip

6.我用-v选项发现music.zip压缩文件里面有很多目录和子目录,并且子目录中其实都是歌曲mp3文件,我想把这些文件都下载到第一级目录,而不是一层一层建目录:

# unzip -j music.zip

inux下通过shell更改用户密码

echo "root:wy6bk2Dq87zt" | chpasswd

root的密码改为admin

./db_ntr_com_cn.sh

执行shell命令   首先要确保文件有可执行权限  #chmod u+x filename   

cat /etc/passwd 

看所有系统用户信息

myisamchk -c -r   /var/lib/mysql/posts.MYI

myisamchk -o -r -f *.MYI  修复全表

先停止mysql

修复:

mysql错误:Table XXX is marked as crashed and should be repaired   修复mysql

top

查看服务器运行状态、cpu、内存等情况

load average: 8.13, 5.90, 4.94

过去的1、5、15分钟内运行队列中的平均进程数量

一般来说只要每个CPU的当前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这台机器的性能有严重问题。对于 上面的例子来说,假设系统有两个CPU,那么其每个CPU的当前任务数为:8.13/2=4.065。这表示该系统的性能是可以接受的

chkconfig --list  查看系统服务

服务是否已设置为开机启动,执行命令:ntsysv

下mysql和apache 自动启动的问题

确保/etc/rc.d/init.d/mysqld 存在,用service mysqld start能够正常启动

运行命令:chkconfig --add mysqld

运行命令: chkconfig --level 345 mysqld on

重启即可

--------------------------------------------------------------------------------------

查看httpd是否已经是系统的服务

chkconfig --list|grep httpd

httpd           0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭

现在我们要设置httpd开机自启动,使用如下命令

chkconfig --level 345 httpd on

chkconfig --list|grep httpd

httpd           0:关闭  1:关闭  2:关闭  3:启用  4:启用  5:启用  6:关闭

查找与删除程序

rpm -qa  vsfptd                   # 查找

rpm -e  vsftpd                    #删除

Linux服务器关闭和开启SeLinux的方法

A 不需要重启Linux:

[root@localhost ~]# setenforce 0

B 需要重启Linux:

vi /etc/selinux/config 将SELINUX=enforcing 改成SELINUX=disabled

不需要重启Linux 开启

[root@localhost ~]# setenforce 1

Linux 查看登录成功的用户信息

命令: last

最新的登录记录在最前面,所以可以用 一下命令来查看。

last | less

查看登录失败的用户信息

命令: lastb

查看登录日志

命令:  tail /var/log/secure

linux实时查看更新日志命令

tail -f app.log

文件及文件内容的查找

grep  [option]   PATTERN  [FILE...] 

grep 命令用于查找指定的模式匹配,格式为:

grep [命令选项] 要查找的匹配模式 [要查找的文件]

例如:

grep cams test.txt 在”test.txt“文件中查找cams 字符串;

grep -r cams /root/cams 在”/root/cams“目录及其子目录下的所有文件中,查找cams 字符串;

 grep  "request_irq"  *   -R

   #被查找文件是utf-8

find -name "*.html" -print0 | xargs -0 grep -C 3 --color=always -H "dfdfdf" 

find -type f -name '*.html' | while read path;do iconv -f GBK -t UTF-8 "$path" | grep -FHn -C 5 --color=always --label="basename $path" "验证回答"; done | less -r

find得到一堆html文件路径。文件路径iconv和grep都需要,不得已用while代替xargs。

由于这些html文件编码是GBK的,需要用iconv转换为UTF-8,接下来再用grep分析。

C 5代表显示上下文各5行,–color=always表示高亮,–label这里用了路径的基本名,即文件名,最后使用less -r分屏幕输出。

less

进入less模式后,键入F,即实时滚动文档

F        实时滚动文档

Ctrl + c  退出实时滚动模式

类似效果:

tail -f catalina.out

kill

确定要杀死进程的PID或PPID  

pidof vsftpd  查找进程PID

kill -9 111,333,4444

killall -u wang   杀死wang用户所有进程

usermod -G

修改用户组

usermod -G health720 blog26wz //表示将blog26wz添加到附加组health720中去。

这样health720组,旗下有 health720、blog26wz 两个用户,如果把文件夹/home/www/www.health720.com 设为775 这样ftp用户 health720与blog26wz可以同时修改

查看用户所在组

groups <username>

修改文件与文件夹,附于多个多用户权限

setfacl与getfacl

[test@RedHat92 ~]$ getfacl testfile 

# file: testfile

# owner: test

# group: test

user::rw-

group::rw-

other::r--

权限一目了然.不多介绍了,下面就要用Setfacl来进行修改了.使其在对于其它用户的权限里,只对ftpa1用户只读只写.

[test@RedHat92 ~]$ setfacl -m u:ftpa1:rw- testfile   

[test@RedHat92 ~]$ getfacl testfile 

# file: testfile

# owner: test

# group: test

user::rw-

user:ftpa1:rw-

group::rw-

mask::rw-

other::r--

然后用getfacl命令来进行查看.我们就可以看到多了一行user:ftpa1:rw- 这说明其对用户ftpa1开放了读写的权限.

为了证实其可用性,再切换到ftpa1用户下访问这个文件,发现与前面不同的是,这回可以读写了.

如果是目录呢?

setfacl -R -m u:ftpa1:rw- testdirectory/   (-R一定要在-m前面,表示目录下所有文件  注意:如果ftp连接直接给 rwx,即可列出目录 )

如:setfacl -R -m u:ftpa1:rwx /home/www

如:setfacl -R -m u:fpta01:rwx /home/www

setfacl -x u:ftpa1 testdirectory/   (去掉单个权限)

setfacl -b (去掉所有acl权限)

如果我们希望在一个目录中新建的文件和目录都使用同一个预定的ACL,那么我们可以使用默认(Default) ACL。在对一个目录设置了默认的ACL以后,每个在目录中创建的文件都会自动继承目录的默认ACL作为自己的ACL。用setfacl的-d选项就可以 做到这一点:

[test@RedHat92 ~]$ setfacl -d --set u:ftpa1:rw- testdirectory/  (注意:如果ftp连接直接给 rwx,即可列出目录)

[test@RedHat92 ~]$ getfacl testdirectory/

注意事项

1,tune2fs开启acl后已是永久有效,无需再改fstab的mount选项。

2,对于组权限,setfacl设置的权限只对主组(即useradd -g或usermod -g的组)有效,对附加组(即useradd -G或usermod -aG的组)无效,即使文件的所有组已改为附加组。

3,setfacl和chmod设置的权限可以相互覆盖,当二者设置的权限不一致时,以使用getfacl看到的“#effective:”后的权限为准。对一个目录设置了setfacl后,不要再对其chmod,否则chmod的权限将覆盖先前setfacl的权限。

4,对目录测试了setfacl后,mv后权限依旧在,但cp后权限不在了。

----------------------------------------------------------------------------------------------------------

查看文件系统是否开启acl权限控制

$ tune2fs -l /dev/sda3 | grep option

Default mount options: acl

方法一:修改mount选项

$ mount -o remount,acl /dev/vda3 /mnt/acltest

$ vim /etc/fstab

/dev/vda3 /mnt/acltest ext4 defaults,acl 0 0

方法二:使用tune2fs修改文件系统信息

$ tune2fs -o acl /dev/vda3 开启文件系统的acl选项

$ tune2fs -o ^acl /dev/vda3 取消文件系统的acl选项

setfacl命令“不支持的操作”

mount -o remount,acl /XXXX    (想要使用acl的地方)

-----------------------------------------------------------------------------------------------------

开启ssh debug日志

Linux为用户添加sudo权限

1)进入超级用户模式。也就是输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。(当然,你也可以直接用root用)

2)添加文件的写权限。也就是输入命令"chmod u+w /etc/sudoers"。

3)编辑/etc/sudoers文件。也就是输入命令"vim /etc/sudoers",输入"i"进入编辑模式,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存(就是先按一 下Esc键,然后输入":wq")退出。

4)撤销文件的写权限。也就是输入命令"chmod u-w /etc/sudoers"

创建一个2G的文件(Linux命令dd)

dd if=/dev/zero of=/tmp/test bs=1M count=2048

测试硬盘读写速度

通过两个命令输出的执行时间,可以计算出测试硬盘的读/写速度:

dd if=/root/1Gb.file bs=64k | dd of=/dev/null

dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000

在CentOS系统下,设置自己安装的程序开机启动。

注意 一定要  chmod +x /etc/rc.local

把启动程序的命令添加到/etc/rc.d/rc.local文件中,比如下面的是设置开机启动httpd。

#!/bin/sh

#

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don't

# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

/usr/local/apache/bin/apachectl start

/bin/bash /home/web_php_restart.sh

Linux下utf-8 BOM 的检查和删除

当源程序是gb格式,你转换为 utf8 的时候,很多情况是头部会出现bom,当是php 程序时候,这样会出现很多意想不到的事情,那怎么办呢,你可以用linux 命令来查找,然后对文件的bom 进行删除,就ok 了

grep -r $’\xEF\xBB\xBF’ * |grep .php

bom:UTF-8签名(UTF-8 signature)也叫做BOM(Byte Order Mark)

用vim去除utf-8 BOM

1.’去掉utf-8 BOM

:set nobomb

2.’保留utf-8 BOM

:set bomb

3.vim中查看编吗

:set fileencoding

强制退出其它用户

1.首页  last -10  查看最近登陆情况

2.一般就是 pkill -9 -t <tty>,关键是找到 <tty>,可以 w 或者 ps -ef | grep '^test'

3. pkill -9 -t pts/1

强制关闭所有screen会话

killall screen 结束所有的session会话

List screens:

screen -list

Output:

There is a screen on:

23536.pts-0.wdzee       (10/04/2012 08:40:45 AM)        (Detached)

1 Socket in /var/run/screen/S-root.

Kill screen session

screen -S 23536 -X quit

进入一个screen

screen -D -r 23536

#如果出现切换后乱码,创建utf8编码模式的新会话

screen -U -S newsession

#切换会话(utf8编码查看)

screen -U -r new_screen_test

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr

后半部分,排序,去重,再按次数进行逆向排序的操作

有时Linux系统wifi连不上,无提示。

可关闭mac地址随机化

vim /etc/NetworkManager/NetworkManager.conf

在该文件底部,加上

[device]

wifi.scan-rand-mac-address=no

保存重启服务

 iftop -i enp30s0   -Pp -Nn -t -L 10 -s 1

查看前10位连接IP流量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值