文章目录
(一)Linux简介
Linux是一款免费、开源的操作系统,安全、稳定,且处理高并发能力很强。
(二)目录结构
目录 | 描述 |
---|---|
/ | 根目录 |
/root | 系统管理员root的宿主目录 |
/bin | 用于存储最常用的命令 |
/boot | 用于存放启动Linux时使用的一些核心文件 |
/dev | 把所有硬件以文件形式存储的目录 |
/etc | 用于储存系统配置的文件 |
/home | 用于存储普通用户的所有数据 |
/lib | 用于存放系统的库文件 |
/lost+found | 一般为空,当系统非法关机后,存放一些文件 |
/media | 挂载一些Linux识别的设备,如U盘、光驱等 |
/mnt | 用于临时挂载文件系统 |
/opt | 用于存放额外安装的软件 |
/proc | 虚拟目录,此目录的数据都存放在内存中 |
/sbin | 用于存放系统管理员使用的系统管理程序 |
/selinux | 安全子系统 |
/srv | 用于存放一些服务启动后需要访问的数据 |
/sys | 用于存储硬件设备的驱动程序信息 |
/tmp | 用于存放一些临时文件 |
/usr | 用于存放系统用户工具和程序 |
/var | 用于存放系统执行过程中经常变化的文件 |
(三)vi和vim编辑器
指令 | 描述 |
---|---|
yy | 复制当前行 |
nyy | n为数字,复制当前向下n行 |
p | 粘贴 |
dd | 删除当前行 |
ndd | n为数字,删除当前行向下n行 |
:set nu | 设置行号 |
:set nonu | 取消行号 |
u | 撤销 |
/关键字 | 查找关键字,输入n查找下一个 |
gg | 光标移动到第一行 |
G | 光标移动到最后一行 |
n,shift+g | 将光标移动到第n行 |
i | 在光标处插入字符 |
I | 光标所在行的行首插入字符 |
a | 光标所在字符的下一个字符插入 |
A | 光标所在行的行尾插入字符 |
o | 光标所在行的下一行插入字符 |
O | 光标所在行的上一行插入字符 |
s | 删除光标所在字符并插入字符 |
S | 删除光标所在行并插入字符 |
:q | 退出 |
:wq | 保存并退出 |
:q! | 强制退出不保存 |
:wq! | 强制保存退出(需要权限) |
(四)关机&重启命令
命令 | 描述 |
---|---|
shutdown -h now | 立即关机 |
shutdown -h 1 | 1分钟后关机 |
shutdown -r now | 重启 |
halt | 关机 |
reboot | 重启 |
sync | 同步内存数据到磁盘 |
(五)用户管理
命令 | 描述 |
---|---|
useradd 用户名 | 添加用户 |
useradd -d 目录 用户名 | 创建用户并指定其家目录 |
passwd 用户名 | 给用户指定/修改密码 |
userdel 用户名 | 删除用户 |
userdel -r 用户名 | 删除用户及其家目录 |
id 用户名 | 查询用户信息 |
su - 用户名 | 切换用户 |
exit | 返回原来用户 |
whoami | 查看当前用户 |
groupadd 组名 | 添加组 |
groupdel 组名 | 删除组名 |
useradd -g 组名 用户名 | 增加用户到指定组 |
usermod -g 组名 用户名 | 修改用户组 |
(六)运行级别
0:关机
1:单用户
2:多用户状态无网络服务
3:多用户状态有网络服务
4:系统未使用,保留
5:图形界面
6:重启
切换运行级别:init[n]
(七)常用命令
(1)man & help
- man(获取帮助信息)
用法: man [命令或配置文件]
- help(帮助命令)
用法: help [命令]
(2)pwd & ls & cd
- pwd(显示当前工作目录的绝对路径)
用法: pwd
- ls(查看当前目录)
用法: ls [选项] [目录或文件]
选项:
-a: 显示当前目录下的所有目录及文件(包括隐藏的)
-l: 以列表方式显示
- cd(切换到指定目录)
用法: cd [参数]
常用:
cd ~或cd: 回到家目录
cd ..: 回到上一级目录
(3)mkdir & rmdir
- mkdir(创建目录)
用法: mkdir [选项] 目录
选项:
-p: 创建多级目录
- rmdir(删除空目录)
用法: rmdir [选项] 目录
选项:
-p: 当子目录被删除后使它成为空目录的话,则一并删除
(4)rm & mv
- rm(删除文件或目录)
用法: rm [选项] 文件或目录
选项:
-r: 递归删除整个文件夹
-f: 强制删除(需结合-r使用,即-rf)
- mv(移动文件和目录或重命名)
用法:
mv 旧文件名 新文件名
mv 文件名 文件夹
(5)touch & cp
- touch(创建空文件)
用法: touch 文件
- cp(拷贝文件到指定目录)
用法: cp[选项] source dest
选项:
-r: 递归复制整个文件夹
另:
\cp: 强制覆盖
(6)cat & more & less
- cat(查看文件内容)
用法: cat [选项] 文件
选项:
-n: 显示行号
- more(以全屏方式按页显示文件内容)
用法: more 文件
操作:
空格键: 向下滚动一屏
Ctrl+F: 向下滚动一屏
Ctrl+B: 返回上一屏
Enter: 向下翻一行
=: 输出当前行号
:f: 输出文件名和当前行号
q: 退出more
- less(分屏查看文件内容)
用法: less 文件
操作:
空格键: 向下滚动一屏
Ctrl+F: 向下滚动一屏
Ctrl+B: 返回上一屏
Enter: 向下翻一行
/字符串: 向下搜索字符串;n: 向下查找; N: 向上查找
?字符串: 向上搜索字符串;n: 向上查找; N: 向下查找
q: 退出less
(7)echo & head & tail
- echo(输出内容到控制台)
用法: echo [选项] [输出内容]
举例:
echo $PATH: 输出环境变量
echo “hello”: 输出hello
- head(显示文件开头内容(默认前10行))
用法:
head 文件: 查看文件前10行
head -n 5 文件: 查看文件前5行
- tail(显示文件结尾内容(默认后10行))
用法:
tail 文件: 查看文件末尾后10行
tail -n 5 文件: 查看文件末尾后5行
tail -f 文件: 实时追踪该文档的更新
(8)> & >>
- >(输出重定向)
用法:
ls -l > 文件: 将列表内容覆盖到文件中
cat 文件1 > 文件2: 将文件1的内容覆盖到文件2中
- >>(追加)
用法:
ls -l >> 文件: 将列表内容追加到文件末尾
echo “内容” >> 文件: 将内容追加到文件末尾
(9)ln & history
- ln(创建软链接)
用法: ln -s [原文件或目录] [软链接名]
另: rm -rf 软链接名: 删除软链接
- history(查看历史命令)
用法: history: 查看已执行过的历史命令
常用:
history n: 查看最近使用的n个指令
!n: 执行历史编号为n的命令
(10)date & cal
- date(显示当前日期和设置日期)
用法:
date: 显示当前时间
date -s 字符串时间: 设置日期
常用:
date +%Y: 显示当前年份
date +%m: 显示当前月份
date +%d: 显示当前是哪一天
date “+%Y-%m-%d %H:%M:%S: 显示年月日时分秒”
- cal(查看日历)
用法: cal [选项] [月份] [年份]
选项:
-1: 显示一个月的日历
-3: 显示系统前一个月,当前月,下一个月的日历
-s: 显示星期天为第一天的日历(默认)
-m: 显示星期一为第一天的日历
常用:
cal: 查询当月日历
cal 2020: 查询2020年日历
(11)find & locate & grep和管道符 |
- find(递归遍历指定目录的各个子目录)
用法: find [目录路径] [选项]
选项:
-name filename: 查找名为filename的文件
-user username: 查找属于指定用户的所有文件
-size [±]n: 按照指定文件大小查找文件
- locate(快速定位文件路径)
用法: locate 文件
注: locate是基于数据库进行查询,第一次使用前,需先使用updatedb创建locate数据库
- grep和管道符号(过滤查找,将前一个命令的处理结果传递给后面的命令处理)
用法: grep [选项] 查找内容 文件
选项:
-n: 显示匹配行及行号
-i: 忽略字母大小写
常用:
cat 文件名 | grep -n 内容
(12)压缩和解压缩
- gzip/gunzip
用法:
gzip 文件
gunzip 文件.gz
- zip/unzip
用法:
zip [选项] xxx.zip 目标文件或目录
unzip [选项] xxx.zip
zip选项:
-r: 递归压缩(压缩目录)
unzip选项:
-d 目录: 指定解压后文件的存放目录
- tar(打包成 .tar.gz文件)
用法: tar [选项] xxx.tar.gz 打包的内容
选项:
-c: 建立压缩文档
-v: 显示过程
-x: 从备份文件中还原文件
-z: 通过gzip指令处理备份文件
-f: 指定备份文件
常用:
tar -zcvf xxx.tar.gz 文件或目录: 压缩
tar -zxvf xxx.tar.gz: 解压到当前目录
tar -zxvf xxx.tar.gz -C targetFile: 解压到指定目录
(八)文件 用户 组
- 文件 用户
ls -ahl————查看文件的所有者
chown 用户名 文件名————修改文件所有者
chown 用户名:组名 文件名————改变用户的所有者和所在组
chown -R 用户名 目录————改变目录下所有子目录和子文件所有者
- 文件 组
ls -ahl————查看文件所在组
chgrp 组名 文件名————修改文件所在组
- 用户 组
usermod -g 组名 用户名————改变用户所在组
usermod -d 目录名 用户名————改变改用户登录的初始目录
(九)权限
(1)rwx权限解析
对于文件:
r: 可以读取
w: 可以修改(未必能删除,需要拥有对该文件所在的目录的写权限)
x: 可以被执行
对于目录:
r: 可以读取
w: 可以修改(重命名目录,在目录内创建,删除)
x: 可以进入该目录
(2)修改权限
方法一:
u:所有者 g:所在组 o:其他人 a:所有人
1)chmod u=rwx,g=rx,o=r 文件目录名
2)chmod g+w 文件目录名
3)chmod o-x 文件目录名
方法二:
r=4 w=2 x=1
chmod 751 文件目录名
(十)crond任务调度
用法: crontab [选项]
选项:
-e: 编辑crontab定时任务
-l: 查询crontab任务
-r: 删除当前用户所有的crontab任务
常用:
crontab -r: 终止任务调度
crontab -l: 列出当前任务调度
service crond restart: 重启任务调度
例子:
1) crontab -e
2) */1 * * * * ls -l /etc >> /home/hello.txt(每隔一分钟执行)
含义 | 范围 | |
---|---|---|
第一个"*" | 一小时的第几分钟 | 0-59 |
第二个"*" | 一天的第几个小时 | 0-23 |
第三个"*" | 一个月的第几天 | 1-31 |
第四个"*" | 一年的第几个月 | 1-12 |
第五个"*" | 一周的星期几 | 0-7(0和7都代表星期日) |
特殊符号 | 含义 |
---|---|
* | 代表任何时间。如:第一个"*"代表每小时每分钟执行一次 |
, | 代表不连续时间。如:“0 6,12,18 * * * 命令”,代表每天6点0分,12点0分,18点0分执行一次 |
- | 代表连续的时间。如:“0 6 * * 1-6 命令”,代表周一到周六6点0分执行1次 |
*/n | 代表每隔多久执行一次。如:"*/5 * * * * 命令",代表每隔5分钟执行一次 |