Linux基础命令
ls命令
ls = list
功能:列出当前目录(或指定目录)中的文件和文件夹
语法:ls [-l -h -a] [参数]
- 参数:指定的目录
- -l,以列表形式查看
- -h,需配合-l使用,以易读的方式展示大小
- -a, 显示隐藏的文件
cd命令
cd = change directory
功能:切换工作目录
语法:cd [目标目录]
参数:要切换去的目录(如果不提供,默认切换到当前登录用户HOME目录)
pwd命令
pwd = print working directory
功能:显示当前所在目录的完整路径
mkdir命令
mkdir = make directory
功能: 创建文件夹
语法:mkdir [-p] 参数
- 参数:被创建文件夹的路径
- -p:可选,递归创建多级目录(父目录不存在也自动创建)
touch命令
功能:创建空文件
语法:touch 参数
- 参数:被创建的文件路径
cat命令
功能:查看文件内容
语法:cat 参数
- 参数:被查看的文件路径
more命令
功能:翻页查看文件
语法:more 参数
参数:被查看的文件路径
cp命令
功能:复制文件、文件夹
语法:cp [-r] 参数1 参数2
- 参数1:被复制的
- 参数2:要复制去的地方
- 选项: -r,可选,复制文件夹使用
mv命令
功能:移动文件、文件夹;重命名文件、文件夹
语法:mv 参数1 参数2
- 参数1:被移动的
- 参数2:要移动去的地方
重命名功能:
- 当参数1和参数2在同一目录下时,mv命令用于重命名
- 例如:
mv old_name.txt new_name.txt
将old_name.txt重命名为new_name.txt
rm命令
功能:删除文件、文件夹
语法:rm [-r -f] 参数...参数
- 参数:被删除的文件或文件夹的路径,支持多个,以空格隔开
- 选项: -r,删除文件夹使用
- -f,强制删除
which命令
功能:查看命令的程序本体文件路径
语法:which 参数
- 参数:要查看的命令
find命令
功能:查找文件
语法:find 路径 [-name] [-size] 参数
- 路径:要搜索的目录
- -name:按文件名
- -size:按文件大小(+10M、-10M)
- 参数:搜索的关键字,支持通配符
grep命令
功能:过滤关键字
语法:grep [-n] 关键字 文件路径
- 选项-n,可选,显示匹配行号
- 参数,关键字,必填,表示要过滤的关键字
- 参数,文件路径,必填,表示要过滤的文件路径,可作为内容输入端口
wc命令
功能:统计
语法:wc [-l -w -c -m] 文件路径
- 选项,-l,统计行数
- 选项,-w,统计单词数
- 选项,-c, 统计字节数
- 选项,-m, 统计字符数
- 参数,文件路径,表示要统计的文件路径,可作为内容输入端口
管道符 |
功能:将符号左边的结果,作为符号右边的输入
echo命令
功能:输出内容
语法:echo 参数
- 参数:要输出的内容
`反引号
功能:被两个反引号包围的内容,会作为命令执行
示例:echo `pwd`
会输出当前目录的路径
重定向符
功能:将符号左边的结果,输出到右边指定的文件中去
>
,表示覆盖输出>>
,表示追加输出
tail命令
功能:查看文件尾部内容
语法:tail [-f -num] 参数
- 参数:被查看的文件
- 选项-f,持续跟踪文件修改
- 选项-num,查看尾部多少行,默认10
vi/vim
基本上 vi/vim 共分为三种模式,命令模式(Command Mode)、输入模式(Insert Mode)和命令行模式(Command-Line Mode)。
命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
命令 | 描述 |
---|---|
i | 在当前光标位置进入输入模式 |
I | 在当前行的开头,进入输入模式 |
A | 在当前行的结尾,进入输入模式 |
0 | 移动光标到当前行的开头 |
$ | 移动光标到当前行的结尾 |
/ | 进入搜索模式 |
dd | 删除光标所在行的内容 |
yy | 复制当前行 |
p | 粘贴复制的内容 |
u | 撤销修改 |
输入模式
在输入模式下,使用ESC
键可以返回到命令模式
底线命令模式
在命令模式下按下:
就进入了底线命令模式
命令 | 描述 |
---|---|
:wq | 保存并退出 |
:q | 仅退出 |
:q! | 强制退出 |
:w | 仅保存 |
:set nu | 显示行号 |
su命令
功能:切换用户
语法:su [-] [用户]
-
表示切换后加载环境变量,建议带上- 用户可以省略,省略默认切换到root用户
sudo命令
功能:以root身份执行命令x
语法:sudo 其他命令
用户组管理
- 创建用户组:
groupadd 组名
- 删除用户组:
groupdel 组名
用户管理
- 创建用户:
useradd [-g 用户组] [-d 用户主目录] [-m] 用户名
- 删除用户:
userdel [-r] 用户名
(删除用户时,加上-r选项会删除用户的主目录) - 查看用户:
id 用户名
getent命令
- 查看所有用户组:
getent group
- 查看所有用户:
getent passwd
chmod命令
功能:修改文件权限
语法:chmod [-R] 权限 文件路径
- 选项-R,可选,递归修改文件夹下的所有文件权限
- 权限,表示要修改的权限,可以用数字表示,也可以用符号表示
- 文件路径,表示要修改的文件路径
chown命令
功能:修改文件所有者
语法:chown [-R] 用户:用户组 文件路径
- 选项-R,可选,递归修改文件夹下的所有文件所有者
- 用户:用户组,表示要修改的所有者
- 文件路径,表示要修改的文件路径
软件安装
centOS系统
yum [install remove search] 软件包名
-y
表示自动确认安装
ubuntu系统
apt [install remove search] 软件包名
-y
表示自动确认安装
systemctl命令
功能:管理服务
语法:systemctl [start stop restart status enable disable] 服务名
start
,启动服务stop
,停止服务restart
,重启服务status
,查看服务状态enable
,开机启动服务disable
,取消开机启动服务
软链接
功能:将文件、文件夹链接到其他位置(快捷方式)
语法:ln -s 参数1 参数2
- 参数1,被链接的文件或文件夹
- 参数2,要链接去的地方
主机名
查看:hostname
设置:hostnamectl set-hostname 主机名
ping命令
功能:测试网络连通性
语法:ping [-c num] 目标地址
wget命令
功能:下载文件
语法:wget [-b] url
-b
,可选,后台下载,会将日志写入到当前工作目录的wget-log文件中url
,下载链接
curl命令
功能:发送http网络请求,可用于下载文件、获取信息等
语法:curl [-O] url
-O
,用于下载文件,当url是下载链接时,可以使用此选项保存文件url
,要发起请求的网络地址
端口
端口号的范围是0-65535,一般会按用途分成三个区间:
1. 知名端口 / 系统端口(Well-Known Ports)
- 范围:
0-1023
- 特点:通常被系统或常见服务占用
- 示例:
22
→SSH80
→HTTP443
→HTTPS53
→DNS25
→SMTP
2. 注册端口(Registered Ports)
- 范围:
1024-49151
- 特点:用于用户进程或第三方应用,常见软件会占用这个范围
- 示例:
3306
→MySQL8080
→常见Web服务端口
3. 动态端口(Dynamic Ports)
- 范围:
49152-65535
- 特点:系统在需要时自动分配给客户端使用的临时端口,通常是客户端向外连接时使用
- 不同系统对临时端口范围的默认值可能不同,可以通过下面命令查看:
cat /proc/sys/net/ipv4/ip_local_port_range
ss命令(socket statistics)
功能:查看网络连接和端口占用,比较netstat
更快、更高效
语法:ss [选项]
选项:
-t
:显示TCP连接-u
:显示UDP连接-l
:只显示监听端口-a
:显示所有连接(包括监听和已建立的)-n
:以数字形式显示,不做域名解析(推荐)-p
:显示占用端口的进程信息(需要root权限)
示例:ss -tulnp | grep 8080
:查看某个端口(如8080)
ps命令
功能:查看进程信息
语法:ps -ef
,查看全部进程信息,可以搭配grep做过滤:ps -ef | grep xxx
kill命令
功能:结束进程
语法:kill [-9] pid
-9
:强制结束进程
top命令
功能:查看主机运行状态
语法:top
df命令
功能:查看磁盘占用
语法:df -h
环境变量
临时生效:
export VAR_NAME=value
永久生效:
打开
~/.bashrc
vim ~/.bashrc
在文件最后加入:
export VAR_NAME=value
保存退出后,使其立即生效:
source ~/.bashrc
系统全局环境变量(对所有用户生效)
编辑文件:
vim /etc/environment
添加:
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
修改后需要注销或重启才会生效
验证环境变量是否生效
echo $VAR_NAME
压缩解压
解压
tar -xvf file.tar # 解压 tar 包
tar -zxvf file.tar.gz # 解压 tar.gz 包
unzip archive.zip # 解压 zip 包
unzip archive.zip -d /path/to/dir # 解压到指定目录
压缩
tar -cvf file.tar dir/ # 打包成 tar
tar -zcvf file.tar.gz dir/ # 打包并 gzip 压缩
zip archive.zip file1 file2 # 压缩成 zip
zip -r archive.zip dir/ # 压缩整个目录
x
:解压v
:显示过程f
:指定文件z
:gzip格式