先介绍一下Linux系统常见的文件目录
以下是对各目录功能的解释:
- bin:bin是binaries (二进制文件)缩写,这个目录存放着经常使用的命令。
- dev:dev是device (设备)的缩写, 该文件夹下存放的是Linux的外部设备,在Linux系统中访问设备的方式和访问文件的方式是相同的。
- home:用户的主目录,在Linux系统中,每个用户有一个目录,一般该目录名是用户的账号名。
- sbin:s就是Super User的意思,是Superuser Binaries (超级用户的二进制文件) 的缩写,该目录存放的是系统管理员使用的系统管理程序。
- tmp:该目录存放一些临时文件。
- var:var代表变量的意思,该目录存放着一些扩充的或者经常被修改的文件,比如日志文件。
- boot:存放启动Linux时的一些核心文件,包括链接文件、镜像文件。
- etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。
- lib:lib是Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。
- opt:opt是optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装数据库则就可以放到这个目录下,默认为空。
- root:该目录是系统管理员,也称为超级权限者的用户主目录。
- sys:该文件系统是内核设备树的一个直观反映。
- usr: usr是unix shared resources(共享资源) 的缩写,是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的Program Files目录。
其它目录。。。
Linux系统常见命令
ls:查看文件列表
ls [-参数] [目标文件夹]
# 查看当前目录下的文件列表
ls
# 查看指定目录下的文件
ls /
# 查看详细信息,包括用户、组、文件大小、创建时间、权限信息、文件类型等信息
ls -l
# 查看所有文件,包括隐藏文件
ls -a
# 参数l和a并用
ls -la
cd:切换目录
cd 目标文件夹
# 切换到绝对路径
cd 绝对路径
# 切换到相对路径
cd 相对路径
mkdir:新建文件夹
mkdir [-参数] 文件夹名
# 在当前位置新建文件夹
mkdir 文件夹名
# 在指定目录位置,创建文件夹,并且创建父文件夹
mkdir -p /a/b/文件夹名
touch:创建文件
touch 文件名
# 在当前目录下新建文件
touch 文件名
rm:删除文件或者文件夹
rm [-参数] [文件(夹)名]
# 删除文件,如果没有使用-r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常可以将该文件恢复原状。
rm 文件名
# 删除文件或者文件夹
rm -r 文件(夹)
# 强制删除不询问
rm -rf 文件
cp:拷贝文件
cp [-参数] 原 新
# 拷贝文件,不能拷贝文件夹
cp 原文件 新文件
# 拷贝文件夹
cp -r 源文件夹 新文件夹
mv:移动文件或者修改文件名
# 移动源文件到目标文件夹中
mv 文件 文件夹
# 修改文件A的名字为文件B
mv 文件A 文件B
pwd:查看当前命令所在的目录
# pwd输出eg: /tmp/22
cat: 查看文件内容命令
cat 文件名
tail: 交互查看文件内容
# 实时滚动显示文件的最后10行信息(默认10行)
tail -f 文件名
# 显示文件的最后20行信息
tail -n 20 文件名
tail -n -20 文件名
# 显示从第20行至文件末尾的文件信息
tail -n +20 文件名
less:以分页的方式查看文件信息(适合查看大文档)
# 查看文件信息,进入浏览模式
less 文件名
# 浏览文件内容模式快捷键
↑ #上一行
↓ #下一行
G #最后一页
g #第一页
空格 #下一页
/关键词 #搜索关键词
# 退出浏览模式,回到Linux命令行模式
q
find:文件查找
# 将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
find . -name "*.c"
# 将当前目录及其子目录中的所有文件列出:
find . -type f
# 将当前目录及其子目录下所有最近 20 天内更新过的文件列出:
find . -ctime 20
# 查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
find /var/log -type f -mtime +7 -ok rm {} \;
# 查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
find . -type f -perm 644 -exec ls -l {} \;
# 查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:
find / -type f -size 0 -exec ls -l {} \;
grep:查找文件内容
# 最简单的用法
grep 查找内容 文件
# 用i参数忽略大小写
grep -i 查找内容 文件
# 搜索目录里所有文件,包括子目录,并且在结果中显示行号
grep -nr 查找内容 *
sed:编辑文件内容
#删除第一行
sed '1d' filename
#删除最后一行
sed '$d' filename
#删除第一行到第二行
sed '1,2d' filename
#删除第二行到最后一行
sed '2,$d' filename
#显示第一行
sed -n '1p' filename
#显示最后一行
sed -n '$p' filename
#显示第一行到第二行
sed -n '1,2p' filename
#显示第二行到最后一行
sed -n '2,$p' filename
# 查询包括关键字abc所在所有行
sed -n '/abc/p' filename
#第一行后增加字符串"abc de"
sed '1a abc de' filename
#第一行到第三行后增加字符串"abc de"
sed '1,3a abc de' filename
#第一行后增加多行,使用换行符\n
sed '1a hello world\hhh' filename
#第一行到第二行代替为Hi
sed '1,2c Hi' filename
#在文件中最后一行直接输入"end"
sed -i '$a end' filename
查看系统进程
# 静态查看系统进程
ps -aux
# 实时查看系统进程
top
# 快捷键
↑ 下翻
↓ 上翻
q 退出
kill:关闭进程
# 关闭进程
kill 进程id
# 强制关闭进程(谨慎使用)
kill -9 进程id
输出
1、覆盖写入
# 将命令的执行结果,输出到后面的文件中。
命令 > 文件
# 例子
aa > bb.log
2、追加写入
# 将命令的执行结果,输出到后面的文件中。
命令 >> 文件
# 例子
aa >> bb.log
管道
# 语法:将命令1的输出结果,作为命令2的输入
命令1 | 命令2
eg:
查找xx进程:ps -aux | grep xx
修改赋予权限
语法:chmod u±rwx,g±rwx,o±rwx 文件名
符号 | 含义 |
---|---|
+ | 添加权限 |
- | 删除权限 |
= | 赋值权限 |
r | 读权限 |
w | 写权限 |
x | 执行权限 |
# 给文件的所有者添加执行权限
chmod u+x 文件名
# 给文件的其他人删除所有权限
chmod o-rwx 文件名
# 给文件的所属组设置读写权限
chmod g=wx 文件名
压缩和解压缩
压缩语法:tar -zcvf 压缩后文件名 被压缩文件
解压缩语法 tar -zxvf 压缩文件名 -C 解压后文件所在目录
yum
# 列出所有可以安装的软件包
yum list
# 安装软件
yum install -y 软件名
# 卸载软件
yum remove 软件名
# 查找软件包
yum search all 软件名
systemctl:服务器管理命令
# 查看服务器状态
systemctl status 服务名
# 启动服务
systemctl start 服务名
# 重启服务
systemctl restart 服务名
# 停止服务
systemctl stop 服务名
# 禁止服务随linux启动。
systemctl disable 服务名
# 设置服务随linux启动。
systemctl enable 服务名
防火墙相关设置
# 查看防火墙状态
systemctl status firewalld
# 开启防火墙
systemctl start firewalld
# 关闭防火墙(服务器重启后会自动开启防火墙)
systemctl stop firewalld
# 禁止防火墙开机启动
systemctl disable firewalld
ssh: 远程登录linux
ssh 远程Linux的ip或者映射域名
远程拷贝
# 从本地复制到远程
scp local_file remote_username@remote_ip:remote_folder
scp local_file remote_username@remote_ip:remote_file
scp local_file remote_ip:remote_folder
scp local_file remote_ip:remote_file
scp -r local_folder remote_username@remote_ip:remote_folder
scp -r local_folder remote_ip:remote_folder
# 从远程复制到本地
scp remote_ip:remote_folder local_file
scp remote_ip:remote_file local_file
wget:下载文件
支持以http/https/ftp下载文件
wget [-参数] [url]
# 下载redis
wget http://download.redis.io/releases/redis-6.0.8.tar.gz
# -O以其它文件夹名称保存下载的文件
wget -O redis.tar.gz http://download.redis.io/releases/redis-6.0.8.tar.gz
# -P 将文件下载到指定目录
wget -P /opt/software http://download.redis.io/releases/redis-6.0.8.tar.gz
# -b 后台下载
wget -b http://download.redis.io/releases/redis-6.0.8.tar.gz
apt
apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 软件包管理器。
apt命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令。
apt命令执行需要超级管理员权限(root),所以一般使用sudo apt
# 安装指定的软件命令
sudo apt install package_name
# 安装多个软件包
sudo apt install package_1 package_2 package_3
# 删除软件包命令
sudo apt remove package_name