http://man.linuxde.net/ linux命令大全网址
一、简单命令
- ctrl + L 清屏
- clear 清屏
-
systemctl disable firewalld 永久禁用防火墙
-
systemctl stop firewalld 暂时禁用防火墙
-
yum install lrzsz 上传文件工具
-
rz 本地上传到服务器
-
sz 服务器下载到本地
-
type ll 看命令的类型简介
-
help cd 查看cd的操作指南
-
man ls 查看命令如何使用
-
uname -a 查看内核信息
-
ifconfig 查看网络配置信息
-
ping www.baidu.com 查看网络是否连通
-
cal 2022 查看日历
-
history 查看历史操作命令
二、常用命令
- pwd 当前目录路径
- whoami 当前的用户
- whereis profile.d 查找当前文件或命令在系统路径中的位置
- file abc 查看abc文件的类型
- cat abc 查看abc文件中的内容
- -n 显示行数
- cd 路径 切换目录
- cd ~用户a 回到用户a的家目录
- cd - 切换回上一次的目录
- grep 过滤信息 过滤文本中的信息,一般配合管道符使用
- grep 字符串 文件名
- zgrep 从压缩文件中过滤信息
- zgrep 字符串 压缩文件
- egrep 可以使用正则来搜索
- egrep 正则表达式 文件名
- echo 类似于system.out printf() 打印语句
- -n表示不换行
- -e特殊字符生效,例如"hello\nworld"使\n生效
- cp abc.txt 123.txt 复制文件并且可以重命名, abc为源文件,123为新文件
- -r 可以拷贝带有目录的文件或拷贝目录
- mkdir 创建目录
- mkdir a b c 一次创建多个目录
- mkdir -p a/b/c 创建多层级目录
- rmdir 删除目录
- rm 删除文件或目录
- -r 递归删除
- -f 强制删除
- mv 移动文件或目录,可以重命名
- touch 创建文件
- stat 查看文件或目录的状态信息
- ln 创建链接
- -s 创建软连接相当于快捷方式,删除源文件,链接失效
- 不加-s 创建硬链接,删除原文件,不影响链接的使用
- ll 查看当前目录下的文件及目录
- -i 可以看到node节点编号,例如用来查看软硬链接的不同
- find 查找路径 -name 查找的信息 一般用来查看文件在什么地方
- tail -f 文件名 实时显示文件内容,一般用于显示日志文件
- head 从开头读取N行, 默认读取10行
- head -5 file 读取5行
- head +15 file 从第15行开始显示
- tac 文件名 逆序显示文件
- chmod 修改权限
- chmod 777 abc.txt 可加-R递归修改目录
- chmod o+r abc.txt u表示用户,o表示其他,g表示用户组,r读,w写,x执行
- chown 修改用户和属组
- chown paas:paas abc.txt 修改用户的所属用户和属组
- -R 递归修改目录
- more less 分页显示文件,回车:下一行,空格下一页,b回退,q推出
- scp 远端传输文件
- scp 本地文件 用户名@服务器地址ip:/opt 传输本地文件到远端服务器的opt目录下
- scp 用户名@服务器地址ip:/opt/file 本地路径 传输远端文件到本地
- -r 递归传输目录
- scp -r file.txt paas@10.23.156.89:/opt
-
df -h 目录 显示磁盘大小
-
du -h 显示目录大小
-
tar -zxvf 压缩文件 解压路径 解压文件,-C 指定解压到的目录
-
tar -zcvf 文件名 被压缩文件 后缀为tar.gz
-
tar -ztvf 压缩文件 查看压缩文件中的包含的文件
-
tar -zpcvf 备份
-
zip -r 文件 压缩文件 后缀为zip
-
unzip 文件 解压文件
-
gzip 文件 压缩文件 后缀为gz
-
gunzip 文件 解压文件
-
netstat - anlp | grep 8080 查看端口
-
telnet 192.168.0.221 8060 查看与指定的ip地址端口是否连通
-
curl 调用接口
-
curl -X GET www.baidu.com
-
-
date 查看当前系统时间
-
ntpdate cn.ntp.org.cn 自动同步时间
-
特殊字符
* 任意字符
. 当前目录
.. 上级目录
/ 路径分割符
$ $name输出变量值
~ cd ~ 切换到家目录
-
用户权限
-
umask 默认为0022
-
新建文件夹权限为777-022=755
-
新建文件权限为666-022=644
-
-
useradd aaa 创建用户aaa
-
-d 指定主目录 -g 指定用户组 -G 添加附加组
-
-s 指定用户登陆的shell -u id 指定用户id -c 备注 添加说明
-
id root 查看用户id,用户组id,属组
-
-
usermod -l bbb aaa 修改用户aaa为bbb
-
userdel bbb 删除用户bbb
-
su aaa 切换用户
-
cat /etc/shadow 查看所有用户
-
passwd aaa 给用户aaa设置密码
-
-
用户组权限
groupadd ccc 创建组 -g 102 指定属组id为102
groups 查看当前用户的属组
groups ccc 查看ccc用户的属组
groupmod -n new_ccc aaa 修改组aaa为new_ccc
usermod -g aaa test_a 修改用户aaa的属组为test_a
groupdel test_a 删除组
-
权限
r 读取 4
w 写入 2
x 执行 1
d 表示目录
chown -R paas:paas aaa.txt 修改aaa文件的所属用户和组, -R表示递归处理文件目录
chmod 777 aaa.txt 修改文件的读写权限
chmod o+x aaa.txt 同上
chgrp 改变文件的所属的用户组
u 用户 g 属组 o 其他 a 全部身份(ugo)
-
管道符、重定向
cat -n /etc/profile | grep unset 过滤出包含unset的行,-n显示行号
ps -ef | grep mysql 查询mysql的进程
ps aux 会查出和终端有关的进程 pts通过远端访问,tty服务器上直接访问的
> 重定向(覆盖)
>> 重定向(追加)
2>&1 将标准错误重定向到标准输出
-
有关进程的命令
ps 查看进程
ps -ef 常用来查看运行中的进程
top 查看内存使用情况
python test.py & 一般用于启动服务,进程会进入后台执行, 不会自动退出
kill -9 pid 杀死进程
-
crontab定时任务
systemctl status crond.service 查看定时服务的状态
crontab -e 添加定时任务
* * * * * command
分 时 日 月 周 命令
以分钟为例
*/5 表示每5分钟
3,5,8 表示3分钟、5分钟、8分钟的时候执行
3-10 表示3分钟到10分钟的每分钟都会去执行
systemctl restart crond.service 重启crontab,使配置生效
crontab -l 查看当前的定时任务
crontab -r 清楚定时任务
-
普通剑客
-
cut 显示切割的行数据
-
-d 指定分隔符对源文件的行进行分割
-
-f 选定显示哪些列
-
m-n m列到n列
-
-n 第一列到第n列
-
m- 从第m列到最后一列
-
n 第n列
-
-
-s 不显示没有分隔符的行
-
--output-delimiter="|" passwd 自定义输出显示的分隔符
-
cut -d':' -f1,2,3 /etc/passwd 切分文本, 根据:分割,获取123列,默认使用制表符分割,-d自定义分割符
-
sort 排序,字典序和数值序
-
-n 按数值排序
-
-r 倒序 reverse
-
-t 自定义分隔符
-
-k 选择排序列
-
-f 忽略大小写
-
sort -t ':' -k2 /etc/passwd 切分文本,按:号分割,再按第二列排序输出,按位置排序
-
-
wc 统计行、单词、字节数
-
-l 统计有多少行
-
-w 统计有多少个单词
-
-c 统计有多少个字节
-
-m 统计有多少个字符
-
wc -l /etc/passwd 统计passwd中有多少行
-
-
-
Linux的三剑客
-
sed 行编辑器
-
-i 操作源文件
-
"2d" 删除第2行
-
-n 只显示匹配到的行
-
"s/vim/vi" 把vim替换为vi
-
"s/vi/vim/i" i表示忽略大小写,把不管是大写还是小写的vi换为vim
-
"/[0-9]/p" 正则匹配包含0-9的行
-
-r "s/(id:)[0-6](:init:)/\15\2/" 小括号表示里面的内容不被替换,\1表示第一个小括号中的内容
-
sed -n "/PATH/w path.log" /etc/profile 把匹配到的PATH的行写入path.log文件中
-
-
awk 文本分析工具,逐行读入,以空格和制表符作为默认分隔符将每行切片进行分析
-
支持自定义分隔符
-
支持正则表达式
-
支持自定义变量,数组
-
支持内置变量
-
FILENAME awk浏览的文件名
-
ARGC 命令行参数个数
-
FS 设置输入域分隔符,等价于命令行-F选项
-
NF 浏览记录的域的个数,列数
-
NR 已读的记录数,行数
-
OFS 输出域分隔符
-
ORS 输出记录分隔符
-
RS 控制记录分隔符
-
支持函数,print、split、substr、sub、gsub
-
支持流程控制语句,if、while、do/while、for、break、continue
-
awk -F ":" '{print $1"--"$7}' new_passwd 用冒号切割,取第一、七列,注意{}外用单引号
-
awk -F ':' 'BEGIN{print "start shell"}{print $1,$7}END{print "end shell"}' new_passwd
-
awk -F ':' '{print NR"-"NF"-" $0}' new_passwd 前面添加行数和列数
-
awk '{split($1,date, "-")}END{for(i in date){print i "\t" date[i]}}' date.txt $1第一列,用"-"切割第一列,并赋值给date,date为数组下标从1开始
-
// $3对第三列日期数据用"-"切割赋值给date数组,下标从1开始,生成两个字典类型的数据,键为第一列的数据,值为第五列的数据 awk '{ split($3, date, '-') if (date[2] == "01"){ map_name_money[$1] += $5 if ($2 == "0"){ map_role[$1] = "Manager" }else{ map_role[$1] = "Worker" } }} END{ for(name in map_name_money){ print name"\t"map_name_money[name]"\t"map_role[name] } }' info.txt
-
-
grep 对数据进行过滤、提取、分析
-
-i 忽略大小写
-
-o 仅显示匹配到目标字符串
-
-v 显示不能被匹配到的字符串
-
-E 支持使用扩展的正则表达式
-
-q 静默模式,不输出任何信息
-
-n 显示匹配行与行号
-
-c 只统计匹配行数
-
grep "^#" test.txt -v | grep "^$" -v 过滤注释行,并过滤空行
-
-
-
mount 挂在文件
-
mkisofs -r -J -V mytest -o /home/mytest.iso /root/test 将test文件夹下的文件制作成iso镜像
-
mount /home/mytest.iso /mnt 把mytest.iso挂在到mnt目录下
-
umount /mnt/test 取消挂载
-
-
三种安装方式
-
yum安装
-
rpm安装
-
rpm -ivh rpm包
-
rmp -qa 显示所有rpm安装的软件 通过grep jdk 过滤
-
rpm -qi jdk-19-19.0.1-10.x86_64 查看软件的详细信息
-
rpm -qc iptables 查找iptables所在位置
-
rpm -e --nodeps mysql* 卸载mysql --nodeps忽略依赖关系
-
-
源码编译安装
-
nginx 安装
-
yum install gcc gcc-c++ -y
-
yum install openssl-devel -y
-
yum install pcre pcre-devel -y
-
yum install zlib zlib-devel -y
-
解压nginx的zip包,进入nginx目录
-
./configure --prefix=/opt/apps/nginx --with-http_ssl_module --without-http_gzip_module --error-log-path=/var/log/nginx/nginx.log --pid-path=/var/log/nginx/pid
-
make 进行编译
-
make install 进行安装
-
进入nginx/sbin目录
-
执行nginx文件,若端口冲突在nginx.conf中配置
-
-
-