Linux常用命令总结
1. cd 进入目录
关机 shutdown 或 half 或 poweroff
重启 reboot
2. mkdir 创建目录
mkdir -p 创建多级目录
3. ls 列出目录文件
ls 目录 -a 隐藏文件(以点开头)也显示
ls 目录 -l 显示详情
4. cp 复制文件 -R 递归复制目录以及子目录
5. mv 改名 移动
6. touch a.txt 创建文件
7. rmdir 只能删空文件夹
rm 删文件/文件夹
rm -rf 删除文件夹 r迭代 f强制force
8. pwd 显示当前目录
<!-- 文本的查看 -->
echo hello > a.txt 输出重定向 (覆盖原来的内容)
echo world >> a.txt (追加原来的内容)
9. ln 链接命令
10. more //查看文件内容(自动退出)
more /etc/passwd >> passwd 把第/etc/passwd追加到passwd
less //查看文件内容(按Q退出) ctrl+b 后退 ctrl+f前进
head -3 文件 //查看前3行
tail -2 文件 //查看后2行
cat a.txt b.txt //查看两个文件(cat链接的意思)
11. grep -rn 'nobody' ./* //匹配文件中的‘nobodys’
grep -rn 'nobody' ./* | wc -l //匹配文件中的‘nobodys’的数量
grep -o '只输出匹配部分'
grep -E '06/May(.*){50,70}.php HTTP/1.1" ' ./*my_access.log //匹配日志中5月6号访问PHP的文件记录, (.*){50,70}的意思是任意字符50-70个,更多正则用法点击这里https://www.cnblogs.com/wangzhaobo/p/17378063.html
//匹配结果
./my_access.log:113.119.65.98 - - [06/May/2023:00:10:24 +0800] "GET /xmlrpc.php HTTP/1.1" 404 162 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"
12. tar fvc tmp.tar *.txt //打包文件 fvc(file, view)create创建 extract解压
tar fvcz mp4.tar.gz mp4 //压缩文件(z是gz文件,j是bz格式)
tar fvxz mp4.tar.gz -C ./ //解压.gz文件到当前文件夹
13. find . -name '*.txt' //查找当前文件下.txt文件 记得带引号
find . -name '*php' |xargs grep buy //查找当前文件*php文件中有buy的文件
find . | xargs grep -ri 'p35.png //查找当前文件中包含p35.png的文件(忽略大小写)
find配合cat查找文件里面包含的字符串数量
查找当前路径下.log后缀文件,且日期在2021-09-24到2021-09-30之前. 含有"若水"字符串的数量
find . -type f -user www -name "*.log" -newermt '2021-09-24' ! -newermt '2021-09-30' -exec cat {} \; | grep -c "若水"
find详解:https://www.cnblogs.com/ariesblog/p/13804196.html
14. su 切换用户switch user
15. ps -aux 列出进程
free 显示内存状态
kill 进程号
skill 进程名 杀的是*进程名*
16. mount /dev/cdrom /mnt //挂载 选择一个光驱(挂在就是将一个光驱文件映射到mnt,然后就可以通过mnt读取光驱文件了)
ls /mnt/Packages |grep vsftp
cp 路径 usr/local/src
umount /dev/cdrom //卸载
17. 文件操作
vi 文件名 //打开文件(如果不加文件名直接vi 最后:wq+空格+文件名)
命令模式下
a 光标的下个字符编辑 i 当前光标编辑 o 换行编辑 s 删当前光标字符编辑
h 前移1字符 j下一行 b单词首 $行首 {上一段 w下单词首 H本屏幕首 1G文章开头
l 后移1字符 k上一行 e单词尾 0行尾 }下一段 L本屏幕尾 G 文章末尾
:set nu(number) 打印行号
:set nonumber 去掉行号
<!-- 删除 -->
d+光标快捷键
x 删除当前字符
dd 删除一行
<!-- 复制 -->
v+光标快捷键+y
yy 复制一行
yny 复制n行
p 粘贴
xp 交换两个字符
ddp 交换两行
. 重复上一次命令
u 撤销上一次命令(undo)
shitft+j 合并两行
w 保存
q 退出
wq 保存退出
q! 不保存,强制退出
18. 网络配置
配置DNS /etc/resolv.conf
配置IP等 /etc/sysconfig/network-scrips/ifcfg-eth0
重启网络 service network restart/stop/start 重启/关闭/开启
协议:端口
ftp:21
Ssh:22
Telnet:23
http:80
https:443
Mysql:3306
Memcache:11211
19. 用户/组管理
所在文件位置:
组 /etc/gorup
用户 /etc/passwd
密码 /etc/shadow
group/user(add/del/mod)
useradd -g haha wang //添加 wang 用户到 haha 组下
groupmod -n tmp haha //更改将组haha名字改为tmp
passwd 用户名 //回车输入密码
20. 权限rwx 421 就是二进制111到000的变化
rwx 7
rw- 6
r-w 5
r-- 4
-wx 3
-w- 2
--x 1
--- 0
u 所属用户 g同组的 o其他人
chmod u+x 文件名 //相对修改权限,给所属用户添加一个执行的权限
chmod 041 文件名 //绝对修改权限,u->0, g->4, o->1
chown 新主人 某文件 //修改一个文件的主人
chgrp 新组 某文件 //修改一个文件的组
21. rpm 安装(相当于winds下面的exe)
rpm -i 软件全名 //安装 ivh 安装过程显示 例:rpm -i vsftpd-2.2.2-24.el6.x86_64.rpm
rpm -il 软件名 //查看软件安装的位置 例:rpm -ql vsftpd
rpm -q 软件名 //软件是否安装 例:rpm -q vsftpd
rpm -qa | grep vsftpd //利用管道 找出所有软件 中 软件名带有vsftpd的软件
22. yum 安装 //(相当于composer,解决rpm依赖安装)基础性的东西, 和底层的库 用yum 安装,
具体应用型的软件我们可以自己来编译
yum install httpd //安装
yum list installed | grep httpd//查看
yum remove httpd //卸载
安装基础软件
yum install gcc automake autoconf libtool gcc-c++
23. 编译软件
下载安装ngix
wget http://nginx.org/download/nginx-1.12.0.tar.gz
解压后 cd 到 nginx-1.12.0
./configure --prefix=/usr/local/nginx
提示没有pcre的库,百度下载解压到/usr/local/src(版本不要太高8.39)
1.指定安装路径
./configure --prefix=/usr/local/nginx --with-pcre=/usr/local/src/pcre-8.39 (注意,是pcre的解压位置.不是安装位置)
2.编译,3.安装
make && make install
关闭防火墙
service iptalbes stop
主机ping 虚拟机ip 能ping通,Telnet ip 80 不通就是防火墙的问题
netstat -nltp|grep 80 查看80端口谁用着呢
24. 安装PHP依赖的库
yum install gd zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libjpeg libjpeg-devel libpng libpng-devel
后面就是了LNMP的配置了.请转至http://www.cnblogs.com/wangzhaobo/category/1028125.html
查看端口号占用情况
netstat -apn|grep 8080
25. 查看文件夹大小容量
du -h --max-depth=1 文件夹路径
du -sh 查看当前目录总容量
du -sh * 查看当前每个文件总容量
du -h --max-depth=1 查看当前每个文件夹总容量
26.查找含有某字符串的所有文件 ,可以配合find具体看本文第13条
grep -rn "hello,world!" * //* : 表示当前目录所有文件,也可以是某个文件名 -r 是递归查找 -n 是显示行号 -R 查找所有文件包含子目录 -i 忽略大小写
27.setfacl命令可以用来细分linux下的文件权限。 (参考:https://blog.csdn.net/jin970505/article/details/79068429)
setfacl -m u:tank:rx test #给tank用户向test文件增加读和执行的acl规则
getfacl test #查看test文件的acl
apachectl restart 重启Apache
28.查看压缩文件里面的内容
zcat /backup/service_logs/2020/*/*/wangzhaobo.com/login/2020-*-*.txt.tar.gz | grep --binary-files=text 'cardNum=4799251916712371'