查找Linux命令的网站:
https://wangchujiang.com/linux-command
https://www.linuxcool.com
常见命令
ls:列出目录的内容。
cd:改变当前目录。
pwd:显示当前目录的路径名。
cp:复制文件或目录。
mv:移动或重命名文件或目录。
rm:删除文件或目录。
cat:连接并打印文件的内容。
more / less:分页显示文件内容。
head / tail:显示文件的开头/结尾部分。
touch:更改文件时间戳,如果文件不存在,则创建新的空文件。
find:在目录树中查找文件。
grep:在文件中查找匹配的字符串模式。
chmod:改变文件或目录的权限。
chown:改变文件或目录的所有者和组。
sudo:以超级用户的身份执行命令。
mkdir:创建新的目录。
rmdir:删除空的目录。
df:显示磁盘空间使用情况。
du:估计目录的磁盘使用量。
ifconfig / ip:显示或配置网络接口的信息。
ping:发送 ICMP ECHO_REQUEST 到网络主机。
netstat:显示网络连接、路由表、接口统计等等信息。
telnet / ssh:远程登录或在主机之间执行命令。
ftp / sftp:在主机之间传输文件的协议。
scp:在主机之间复制文件的协议。
wget:从网络上下载文件的命令。
nano / vi / emacs:文本编辑器。
ps:显示当前进程的快照。
top:实时显示进程活动。
kill:发送信号到进程,通常用于终止进程。
su:切换用户身份到超级用户。
exit:退出当前用户。
top:实时显示进程活动。
htop:一个更强大的进程查看器,需要单独安装。
netstat:显示网络连接、路由表、接口统计等信息。
ping:测试网络连接。
traceroute:显示数据包在计算机网络中的路径。
ssh:安全地登录到远程计算机。
scp:在计算机之间安全地复制文件。
sftp:在计算机之间安全地上传或下载文件。
wget:从网络上下载文件。
curl:传输数据,支持各种协议。
nano:一个简单易用的文本编辑器。
vi:一个常用的文本编辑器。
emacs:一个功能强大的文本编辑器。
tail:显示文件的最后几行。
head:显示文件的前几行。
mail:阅读和发送电子邮件。
mutt:一个文本界面的邮件阅读器。
pine:另一个文本界面的邮件阅读器。
目录结构
1、内核
2、Shell
3、文件系统
4、应用程序
lsof/bin/bash 查找某个文件相关的进程
lsof-uroot 列出某个用户打开的文件信息
lsof-credis 列出某个程序进程所打开的文件信息
lsof-itcp 列出所有tcp网络连接信息
根目录文件
主目录:home directory
root用户的主目录是 /root
其他用户的主目录是 /home/用户名
cd 空格 或者 cd ~
工作目录:working directory
man command(manual)——具体参数和使用方法
whatis command——命令的简要说明
info command——详细介绍
help command——Linux内置命令
关机(root):
poweroff
shutdown -h now
halt -p
重启(root):
reboot
快捷键和命令
查看别名:alias
设置别名(以bash为例):vim ~/.bashrc
格式:alias short='xxx;xxx'
读取并执行命令,使之生效:source ~/.bashrc
通配符
注意 -f 是不排序的意思,不能用于过滤文件。
所以 ls -f *[^txt] 展示的是名字不包含txt的目录和文件,并且显示了目录中的文件,比如/root目录下某个文件夹里面有很多.txt。才会看起来有.txt这些文件。
环境变量
查看全部变量:env
查看单个变量:echo $XXX
用户变量:~/.bashrc
系统变量:/etc/profile
文件描述符
重定向符号解释
重定向:改变输入输出的方向
输出重定向
2&1的含义:将标准错误输出重定向到标准输出,符号 & 是一个整体,不可分
开,分开后就不是上述含义了
21的写法其实是将标准错误输出重定向到名为"1"的文件里去了
输入重定向
常规命令格式
Command Options Arguments
命令 选项 参数
rm -rf /*
Options选项:命令的行为方式
Arguments参数:命令的对象
举例:
(千万别用这个命令,用了可能会删掉一些关键的库文件,导致无法开机等问题)
规范:命令(不能省略) 空格(别忘记空格) 大小写(区分大小写) 顺序(大部分不影响执行结果,但是少部分影响)
查找Linux命令的网站:
https://wangchujiang.com/linux-command
https://www.linuxcool.com
常用命令
命令:ls
全拼:list
格式:ls 选项 文件名
例:
ls -a
ll --block-size=M
作用:列出目录内容和属性
命令:pwd
全拼:print working directory
格式:pwd
作用:打印工作路径
命令:cd
全拼:change directory
格式:cd 相对路径或者绝对路径
作用:切换工作目录
命令:file
格式:file 选项 文件或目录
file -i 文件名
作用:查看文件类型
命令:cp
全拼:copy
格式:cp 选项 源文件 目标文件
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
作用:复制文件或目录
find
格式:find 目录 选项 名字或模式
-name 名字
find /etc -name a*
find / -name "aaa" 2/dev/null
-type 类型参数
f 普通文件,d 目录
find /root -type f
-size大小
find /root -type f -size +10M(视频有误已修改)
-exec command
把find找到的内容作为命令的参数去执行
{}就是找到的内容
find . -name "*.txt" -exec rm -rf {} \; (包括子目录)
find . -name aaa -exec mv {} bbb \;
作用:查找文件或者目录
其他查找命令:
whereis :查找二进制程序、代码等相关文件路径
which:查找并显示给定命令的绝对路径
locate:updatedb程序每天会跑一次,建立文件索引
命令:mkdir
全拼:make direcotry
格式:mkdir 选项 目录名
mkdir test
mkdir -p /usr/local/soft/redis
作用:创建目录
命令:mv
全拼:move
格式:mv 选项 原文件 新文件
mv 1.txt 2.txt
mv /a/1.txt /b/1.txt
作用:移动或者重命名
命令:rm
全拼:remove
格式:rm 选项 (多个)文件名
删除空目录:rmdir
-r 递归(连同子文件夹一起删除)
-f 强制删除
find . -name "a.json" -exec rm -rf {}
作用:删除文件
命令:touch
格式:touch 选项 文件名
touch a.txt
作用:创建空文件
挂载和链接
问题:一个目录树怎么使用多个磁盘?
原路径:/dev/sdb1 挂载到: /sdb-u
mkdir /sdb-u
mount /dev/sdb1 /sdb-u
挂载后
链接
命令:ln
全拼:link
格式:ln 源文件 链接文件
创建硬链接:
ln 1.php hard.php
vim hard.php
cat 1.php
注意:
1、用户不能给目录创建硬链接
2、只有相同的文件系统才可以创建硬链接(tmpfs NTFS FAT32)
查看软链接:
ll /usr/bin/nc
创建软链接:
ln -s /usr/local/phpstudy/system/phpstudyctl /usr/bin/study
使用:
study
源文件删除,软连接失效
文件压缩和解压缩
打包和压缩的区别
打包:多个文件变成一个文件——减少文件个数
打包/解包 pack/unpack
压缩:缩小一个文件的体积——减少文件体积
压缩/解压 compress/decompress
图片:BMP、GIF、PNG、JPEG、JPG
音频:APE、FLAC、MP3
视频:RMVB、AVI、MP4
压缩率:压缩后体积/压缩前体积
还有添加密码的作用
注意:打包、解包、压缩、解压都需要消耗时间
常见压缩格式
HTTP:gzip
gzip、 deflate(zlib的格式)、 br(Brotli)、identity(不压缩)
Windows:zip、rar、7z
winrar、360压缩、bandzip、7zip
Linux:gzip(tar.gz=.tgz)、bzip2(.bz2)、zip
压缩后体积: tar.bz2 < tgz < tar
压缩解压时间: tar.bz2 < tar < tgz
tar命令
(打包也叫归档)
zip命令
查看和处理文件内容
文本文件和二进制文件
文本文件
ASCII、UTF-8、Unicode、ANSI
txt、xml、conf、properties、yml等配置文件、日志文件、源代码
二进制文件
可执行程序、图片、音频、视频
cat
全拼:concatenate [kənˈkætəneɪt] 连接(输出多个文件名,查看小文件)
格式:cat 文件名
more/less(主要用more,more是less的升级版本)
/[查找字符] # 配合n键,从上往下查所有。
?[查找字符] # 配合n键,从下往上查所有。
按 Enter 键后:
n键盘查找下一个符合的内容。
N上一个符合的内容。
head/tail(查看前多少行或者后多少行)
head -n 10 redis.conf
tail -n 10 info.log
tail -f /var/log/messages(实时跟踪刷新)
grep(搜索文本文件中的内容)
全拼:Globally search a Regular Expression and
Print
全局搜索正则表达式并打印
格式:grep 选项 模式 文件名
pipe |
把前一个命令原本要输出到屏幕的数据当作是后一个命令的标准输入
command1 | command2 | command3
cat test.log | more -5 每次显示5行
ps -ef | less -N 显示行号
netstat -an|grep 3306 查看自己端口号有没有正常运行,3306也可以换成mysql
cat -n info.log |grep "debug" | more
wc
全拼:word count
-l或--lines 显示行数
-w或--words 只显示字数
wc -l redis.conf
wc -w redis.conf
diff(对比两个文件的差异)
全拼:different
diff diff_A.txt diff_B.txt
diff -r aaa bbb
Linux文本编辑器
常用的软件
Windows:Notepad(记事本)、Sublime、UltraEdit等
Linux:VI/VIM、nano、Emacs、Sed、gedit、Kate等
VI和VIM的区别
VI:Visual Interface
1976 Bill Joy(ex)
1991 Bram Moolenaar
Vim:VI IMproved
vim配置文件
全局配置:/etc/vimrc
用户配置:~/.vimrc
详细配置参考:
https://blog.csdn.net/xiao_yi_xiao/article/details/118491698
vim三种模式的区别
命令模式:通过命令操作文本文件
编辑模式:对文本的内容进行编辑
底行模式:结束操作的时候使用
三种模式切换:
命令模式
打开文件
VIM 文件名
vim /etc/sysconfig/network-scripts/ifcfg-ens33
vim redis.conf
错误提示:
E325: ATTENTION
Found a swap file by the name ".redis.conf.swp"
原因:编辑未结束
解决办法:保存文本文件,或者删除.swp
编辑模式
a:在光标下一个字符之前插入文本
A:在光标所在的航模插入文本
i:在光标上一个字符之前插入文本
I:在光标的行首插入文本
o:在光标所在的行下插入一行文本
O:在光标所在的行上插入一行文本
r:修改当前光标所在的字符
R:替换文本
编辑模式下:Ctrl+U 撤消
退出编辑模式:Esc
底行模式
Shift + :
:w 保存
:q 退出
:wq 保存并且保存
:q! 放弃修改,退出
:e! 放弃所有更改,重新编辑(不关闭)
显示行号: :set nu
:%s/word1/word2/g 把文档中的word1替换为word2
Linux软件安装
软件为什么要安装
Windows软件安装流程
1、安装检查
2、释放文件
3、复制可执行文件
4、DLL动态链接库/安装服务
5、注册表
6、开始菜单和快捷方式
Windows可执行程序:.exe
Linux可执行程序有:
/bin
/sbin
/usr/bin
/usr/sbin
脚本和程序的区别
不需要编译的:Javascript、Python、Ruby……
需要编译的:C、C++、Swift、Kotlin、Go……
解释型:边解释边执行
编译型:计算机可以直接执行
Linux软件常见安装方式
源码编译(make)、rpm、deb、yum、apt、Docker……
源码安装
rmp安装
RedHat Package Manager
yum安装
YUM(Yellow dog Updater, Modified)
dnf和yum的区别
DNF(Dandified YUM)
debian系
Deb包安装 apt安装
free BSD系
package
ports
软件版本管理
查看:
update-alternatives --display java
添加:
alternatives --install /usr/bin/java java /usr/local/jdk-11.0.2/bin/java
3
/usr/bin/java:注册地址,软链
java:服务名
/usr/local/jdk-11.0.2/bin/java:实际程序路径
3:优先级
切换:
update-alternatives --config java
用户和权限管理
用户组
1、root用户组:GID=0
2、程序用户组(系统用户组):1-999(CentOS7)
3、普通用户组:1000-65535
cat /etc/group
用户
1、root用户:UID=0(反之也成立)
2、程序用户(系统用户):1-999(CentOS7)
3、普通用户:1000-65535
cat /etc/passwd
用户管理相关文件
/etc/group
1、组名
2、组密码
3、GID
4、用户列表
影子文件:
cat /etc/gshadow
组名:密码:组管理员:组附加用户列表
/etc/passwd
1、用户名 2、密码 3、UID 4、GID 5、全名 6、home路径 7、shell工具
影子文件:cat /etc/shadow
/etc/shadow
1、用户名 2、密码 3、最后修改时间(1970 年 1 月 1 日以后的多少天)
4、最小修改间隔时间 5、密码有效期 6、密码需要变更前的警告天数
7、密码过期后的宽限天数 8、账号失效时间 9、保留
密码格式
命令:openssl passwd -1 -salt admin 123456
格式:$id$salt$encrypted
示例:$1$admin$LClYcRe.ee8dQwgrFc5nz.
/etc/sudoers
格式:
wuya ALL=(ALL) ALL
kali ALL=(ALL) NOPASSWD: /bin/useradd
全拼:super user do(授权)
sudo -l
sudo command(要执行的命令)
修改配置文件:visudo
用户管理基本命令
用户和文件的关系
文件所有者:所属用户、所属组
访问权限:读、写、执行
文件和目录归属
文件的拥有者
文件的所属组
全拼:change owner
chown -R wuya /usr/local/soft
chown -R redis:redis /usr/local/soft/redis
文件和目录权限
文件类型
d:目录文件(文件夹)
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文
用户类别
权限类别
修改权限
# 添加组用户的写权限。 全拼:change mode
chmod g+w test.log
# 删除其他用户的所有权限。
chmod o= test.log
# 使得所有用户都没有写权限。
chmod a-w test.log
# 当前用户具有所有权限,组用户有读写权限,其他用户只有读权限。
chmod u=rwx, g=rw, o=r test.log
# 等价的八进制数表示:
chmod 764 test.log
# 将目录以及目录下的文件都设置为所有用户拥有读写权限。
# 注意,使用'-R'选项一定要保留当前用户的执行和读取权限,否则会报错!
chmod -R a=rw testdir/
# 根据其他文件的权限设置文件权限。
chmod --reference=1.log test.log
Linux网络管理
网络的基本概念
网卡
MAC地址(Media Access Control)媒体访问控制
IP(Internet Protocal Address)互联网协议地址
192.168.142.132
47.106.11.166
局域网——使用私有IP地址
互联网——使用公有IP地址
公有IP地址的范围
A类的公有IP:
1.0.0.0-9.255.255.255
11.0.0.0-126.255.255.255
B类的公有IP:
128.0.0.0-172.15.255.255
172.32.0.0-191.255.255.255
C类的公有IP:
192.0.0.0-192.168.255.255
192.169.0.0-223.255.255.255
私有IP地址的范围
A类私有IP地址:
10.0.0.0-10.255.255.255
B类私有IP地址:
172.16.0.0-172.31.255.255
C类私有IP地址:
192.168.0.0-192.168.255.255
网络配置文件
查看和配置网络
ifconfig
全拼:network interfaces configuring
位于net-tools工具包
可以动态配置网络参数
其他选项参数:https://www.linuxcool.com/
ip
位于iproute工具包
添加设备、启动停止网络设备、设置IP、设置网关……
其他选项参数:https://www.linuxcool.com/
连通性探测
ping
全拼:Packet Internet Groper,因特网包探索器
ping baidu.com
ping 192.168.142.151
telnet
远程登录
telnet bbs.newsmth.net
探测端口
telnet 192.168.142.132 80
telnet 192.168.142.132 22
查看网络连接
natstat(ss)
全拼:network statistics
查看程序的网络连接情况:
netstat -ap | grep ssh
查看端口的网络连接情况:
netstat -ap | grep 3306
域名
nslookup
nslookup baidu.com
A记录:IP地址
CNAME:域名别名
MX:邮件服务器
dig(domain information groper)
dig baidu.com
dig www.xtu.edu.cn A +noall +answer
dig www.xtu.edu.cn MX +noall +answer
dig www.xtu.edu.cn NS +noall +answer
host
host baidu.com
host -t MX www.baidu.com
下载传输
Xshell拖曳——上传
xftp——双向,或者Filezilla、FlashFTP
sz file name——下载
rz——上传
vmtools拖动——传入
QQ——双向
wget
wget https://download.redis.io/releases/redis-6.0.9.tar.gz
wget -O redis.tar.gz https://download.redis.io/releases/redis-6.0.9.tar.gz
wget -c 断点续传
wget -b 后台下载
wget -i filelist.txt 同时下载多个
tail -f wget-log 查看下载进度
scp
全拼:Secure Copy
scp 1.txt root@192.168.142.66:/tmp
scp -r folder root@192.168.142.66:/tmp
curl
全拼:Client URL
curl https://www.baidu.com page.html
curl -X POST -d 'a=1&b=nihao' URL
curl -H "Content-Type: application/json" -X POST -d '{"abc":123,"bcd":"nihao"}' URL
防火墙设置
iptables工具
查看已开放的端口
firewall-cmd --list-ports
开启80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙
firewall-cmd --reload
停止防火墙
systemctl stop firewalld.service
禁止防火墙开机启动
systemctl disable firewalld.service
删除规则
firewall-cmd --zone=public --remove-port=80/tcp --permanent
Linux系统状态管理
查看相关信息
1、日期时间
date
cal
uptime
w
2、系统版本
cat /etc/redhat-release
uname -a
cat /proc/version
进程管理
1、程序 program
2、进程 process
3、服务 service
systemctl list-unit-files |grep mysql
cat /etc/services |grep mysql
运行程序
1、前台运行 ./xxx
2、后台运行 nohup ./xxx &
查看进程top
ps 全拼:process status
ps -ef
ps -aux
pstree
pstree -p
pstree mysql (查看用户的进程树)
pstree -p | grep ssh
服务管理
停止程序
内存使用情况
free
free -h
free -m
磁盘使用情况
du
全拼:disk usage
综合命令sar
全拼:system activity reporter
%user:用于表示用户模式下消耗的 CPU 时间的比例;
%nice:通过 nice 改变了进程调度优先级的进程,在用户模式下消耗的
CPU 时间的比例;
%system:系统模式下消耗的 CPU 时间的比例;
%iowait:CPU 等待磁盘 I/O 导致空闲状态消耗的时间比例;
%steal:利用 Xen 等操作系统虚拟化技术,等待其它虚拟 CPU 计算占
用的时间比例;
%idle:CPU 空闲时间比例。
定时任务
工具:crontab
全拼:cron table
Cron表达式:
https://tool.lu/crontab
crontab命令
示例脚本:
test.cron 输出wuya666
time.cron 每隔5秒钟打印时间
定时任务文件