Linux基础
一、目录结构
目录 | 存放内容 |
---|---|
/bin | 存放经常使用命令 |
/dev | 存放Linux的外部设备 |
/home | 用户的主目录,每一个用户都有一个自己的目录 |
/lib | 存放系统最基本的动态连接共享库 |
/mnt | 存放用户临时挂载的文件系统 |
/proc | 存放当前内核运行状态 |
/run | 临时文件系统,存放系统启动以来的信息 |
/srv | 存放一些服务启动之后需要提取的数据 |
/tmp | 存放临时文件 |
/var | 存放经常被修改的文件,如日志文件 |
/boot | 存放linux核心文件,包括连接文件以及镜像文件 |
/etc | 存放所有的系统管理所需要的配置文件和子目录 |
/media | 存放linux识别的的设备 |
/opt | 存放安装软件的目录 |
/root | 管理员目录 |
/sbin | 存放系统管理员使用的系统管理程序 |
/sys | 存放内核对象的文件和目录 |
/usr | 超级用户使用的管理程序和系统守护程序 |
二、关机与重启
shutdown 关机
shutdown -h now 立即关机
shutdown -h 1 一分钟后关机
shutdown -r now 立即重启
halt 关机
reboot 重启
sync 数据同步到磁盘,当重启或关机时,应执行一下sync指令,同步数据到磁盘
三、用户登录和注销
su - 用户名 切换用户
logout 注销
四、用户管理
useradd 用户名 添加用户
useradd -d 目录 用户名 添加用户到指定目录下
useradd -g 用户组 用户名 添加用户到指定用户组
userdel 用户名 删除用户
userdel -r 用户名 删除用户和家目录
passwd 用户名 为用户添加密码
id 用户名 查询用户信息
su - 用户名 切换用户,exit指令返回到原来用户
whoami 查询当前用户
注:
/etc/passwd 用户配置文件(用户信息)
/etc/group 用户组文件(用户组信息)
/etc/shadow 口令配置文件(密码和登录信息)
五、运行级别
0 关机
1 单用户(找回丢失密码)
2 多用户无网络服务
3 多用户有网络服务
4 保留
5 图形界面
6 系统重启
init [012356] 指定运行级别
如何找回root密码?
思路:进入单用户模式,然后修改root密码。因为单用户模式不需要密码即可登录。
步骤:开机->在引导时输入回车键->看到一个界面输入e->看到一个新的界面,选中第二行(编辑内核)再输入e->最后输入1,在输入回车键->再次输入b,就会进入单用户模式,使用passwd指令修改root密码。
注:
/etc/inittab 系统运行级别配置文件
六、帮助指令
man [命令或配置文件] 获取帮助信息
help 命令
七、文件目录
pwd 显示当前目录的绝对路径
ls 显示当前目录的所有文件和目录
ls -a 包含隐藏的文件和目录
ls -l 以列表的形式显示信息
cd 切换目录
cd ~ 切换到家目录
cd .. 切换到上一级目录
mkdir 创建目录
mkdir -p 创建多级目录
rmdir 删除空目录
touch 创建空文件(可以一次性创建多个文件)
cp 当前文件路径 要拷贝的文件路径 拷贝文件
cp -r 拷贝整个目录到指定文件夹
\cp -r 强制覆盖目录
rm 删除文件或目录
rm -r 递归删除整个文件夹
rm -f 强制删除不提示
rm -rf 递归强制删除
mv 移动文件与目录或重命名
cat 查看文件
cat -n 显示行号
cat -n 文件 | more 分页显示文件
more 是一个基于vi编译器的文本过滤器,它以全屏的方式按页显示文本文件内容
more 文件
space 下一页
enter 下一行
q 离开
Ctrl+F 向下滚动一屏
Ctrl+B 返回上一页
= 输出当前行的行号
:f 输出文件名和当前行号
less 用来分屏查看内容,功能比more强大,并不是一次性显示文件,而是根据显示需要加载内容,一般查看大文件
less 文件
> 输出重定向,覆盖原来文件内容
>> 追加到文件的尾部
ls -l >文件 将列表的内容写入文件中
ls -al >>文件 将列表内容追加到文件的末尾
cat 文件1 > 文件2 将文件1的内容覆盖到文件2
echo "内容" >> 文件
echo 输出内容到控制台
echo $PATH 输出环境变量
head 显示文件开头部分
head 文件 默认显示前10行
head -n 5 文件 显示文件的前五行
tail 显示文件尾部内容
tail 文件 默认显示尾部后10行内容
tail -n 5 文件 显示尾部后5行内容
tail -f 文件 实时追踪文件的所有更新
ln 软链接(符号链接),主要存放链接其它文件的路径
ln -s 原文件 软链接名
history 查看已执行过的历史指令,也可以执行历史指令
history 10 显示最近10条指令
!10 执行编号为10的指令
八、时间日期
date 显示当前时间
date "+%Y-%m-%d" 显示年月日
date "+%Y-%m-%d %H:%M:%S" 显示时分秒
date -s "时间字符串" 设置时间
cal 查看日历
cal 2021 查看2021年日历
九、搜索查找
find 将从指定目录向下递归地遍历其各个子目录
find 目录 -name 文件 按照指定的文件名查找模式查找文件
find 目录 -user 用户名 查找属于指定用户名所有文件
find 目录 -size 文件大小 查找属于指定用户名所有文件(+n 大于 -n小于 n等于,单位:M、k)
locate 可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件,所以第一次运行前,必须使用updatedb指令创建locate数据库
locate 文件
grep 过滤查找,管道符“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
grep [选项] 查找内容 原文件
grep -n 显示匹配行及行号
grep -i 忽略字母大小写
grep -ni 忽略大小写并显示行号
cat hello.txt | grep -n yes 查找文件中的yes并显示所在的行号
十、压缩和解压
gzip 文件 压缩文件,将文件压缩为*.gz文件,压缩后,原文件不会保留
gunzip 文件.gz 解压缩文件
zip 压缩文件,在项目打包发布中很有用
zip -r 压缩名.zip 目录 递归压缩,压缩目录
unzip 文件.zip 解压文件
unzip -d 目录 文件.zip 将文件解压到指定目录
tar 打包文件,最后打包文件为.tar.gz文件
tar [选项] xxx.tar.gz 打包文件
tar -zcvf xxx.tar.gz 打包文件(可以多个文件或目录下的所有文件)
tar -zxvf xxx.tar.gz 解压.tar文件
tar -zxvf xxx.tar.gz -C 目录 解压.tar文件到指定目录(该目录不存在则错误)
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
十一、组管理和权限管理
ls -ahl 查找文件所有者
groupadd 组名 创建用户组
groupdel 组名 删除用户组
usermod -g 用户组 用户名 修改用户组
usermod -d 目录名 用户名 修改用户登录的初始化目录
chmod 可以修改文件或目录权限
第一种方式:+、-、=变更权限
u:所有者 g:所有组 o:其他人 a:所有人
chmod u=rwx,g=rx,o=x 文件目录名
chmod o+w 文件目录名 给其他人增加w权限
chmod a-x 文件目录名 给所有人减去x权限
第二种方式:通过数字变更权限
r=4、w=2、x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名 -> chmod 751 文件目录名
chown 用户名 文件名 改变文件的所有者
chown 用户名:用户组 文件名 改变文件的所有者和所有组
chgrp 组名 文件名 修改文件所在组
—R 如果是目录,则使其下的所有子文件或目录递归生效
rwx权限详解
1、作用到文件
- [r]代表可读(read):可以读取、查看
- [w]代表可写(write):可以修改,但是不代表可以删除文件,删除文件前提条件是对该文件所在的目录有写权限
- [x]代表可执行(execute):可以被执行
2、作用到目录
- [r]代表可读(read):可以读取,ls查看目录内容
- [w]代表可写(write):可以修改,目录内创建、删除、重命名目录
- [x]代表可执行(execute):可以进入该目录
注:
rwx可以用数字来表示:
r=4、w=2、x=1, rwx=4+2+1=7
目录占的大小为4096
十二、定时任务调度
crontab [选项] 进行定时任务的设置
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有定时任务
service crond restart 重启任务调度
示例:
crontab -e
*/1 * * * * ls -l /etc > /tmp/to.txt
shell脚本
1、编写date.sh文件
2、写入date >> /home/hsb/date.txt
3、给date.sh执行权限,chmod 744 date.sh
4、crontab -e 编写 */1 * * * * /home/hsb/date.sh,保存执行
十三、磁盘分区和挂载
lsblk 查看系统的分区大小
lsblk -f 查看系统的分区和挂载情况
umount 硬盘路径 卸载硬盘
df -h 查看系统整体磁盘使用情况
df -l
du -h 目录 查看目录磁盘使用情况
-s 指定目录占用的大小汇总
-h 带计量单位
-a 含文件
--max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
统计/home文件夹下文件的个数
ls -l /home | grep "^-" | wc -l
统计/home文件夹下目录的个数
ls -l /home | grep "^d" | wc -l
统计/home文件夹文件的个数,包括子文件夹里的
ls -lR /home | grep "^-" | wc -l
统计文件夹下目录的个数,包括子文件夹里的
ls -lR /home | grep "^d" | wc -l
以树形结构显示
yum install tree
tree
十四、网络配置
修改网络配置文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
重启服务
service network restart
十五、进程管理
ps -a 显示当前终端的所有进程信息
ps -u 以用户的格式显示进程信息
ps -x 显示后台进程运行参数
ps -aux | grep sshd 过滤进程
ps -ef 查看父进程
-e 显示所有进程
-f 全格式
pstree [选项] 更加直观的来看进行信息
-p 显示进程PID
-u 显示进程的所属用户
kill [选项] 进程号 终止进程
kill -9 进程号 强制终止进程
killall 进程名称 通过进程名称杀死进程,支持通配符
service 服务名 [start|stop|restart|reload|status]
在CentOS7以后不再使用service,而是systemctl
telnet ip地址 端口 检查端口是否可用
ls -l /etc/init.d/ 查看服务
chkconfig 可以给每个服务的各个运行级别设置自启动或关闭
chkconfig --list | grep 服务名 查看服务
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off
top top与ps很相似,都是用来显示正在执行的进程,top在执行一段时间可以更新正在运行的进程
top [选项]
-d 秒数 指定top命令每隔几秒更新,默认是在3秒
-i 使top不显示任何闲置或僵尸进程
-p 通过指定监控进程id来监控某个进程的状态
交互操作说明
P 以CUP使用率排序,默认
M 以内存使用率排序
N 以PID排序
q 退出top
u 监控某个用户
k 结束进程
netstat [选项] 查看网络状态
-an 按一定顺序排序输出
-p 显示那个进程在调用
十六、rpm和yum包
rpm -qa | grep xx 查询已安装的rpm包
rpm -e rpm包 卸载rpm包
rpm -e --nodeps rpm包 强制卸载rpm包
rpm -ivh rpm包全路径名称 安装rpm包
-i 安装
-v 提示
-h 进度条
yum list | grep 软件 查询已安装yum包
yum install 软件 安装软件