命令 | 意思 | 备注 | |||
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> --------------------------------------------------------------------------------------------------------------- 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:关闭 | ||||
查找与删除程序 |
| ||||
Linux服务器关闭和开启SeLinux的方法 | A 不需要重启Linux: [root@localhost ~]# setenforce 0 B 需要重启Linux: vi /etc/selinux/config 将SELINUX=enforcing 改成SELINUX=disabled 不需要重启Linux 开启 | ||||
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流量 |
收藏Linux常用命令
最新推荐文章于 2024-06-15 21:31:35 发布