前言
Linux是个操作系统类似于windows,主要应用于各大网站,app,直播平台的底层系统.也是世界上比较知名的服务器操作系统.
主要相关的工作有Linux运维工程师,DBA数据库管理员,安全运维工程师,这些都是偏向系统相关的(包括服务,网络等等)
另一个方向是开发相关的Java,Python开发的代码都是运行在Linux系统上面的.
常见的Linux系统有:
目前主流的有两大阵营,6个系统.
- Redhat系列:包含CentOS,Fedora,Red Hat Enterprise Linux(RHEL)
- Debian系列:包含Debian,Ubuntu,Kali
还有其他阵营暂不考虑了.
- CentOS: 目前国内企业应用最广泛的也是首推的Linux系统,主要用于服务端.
- Ubuntu: 世界上应用范围很广,家用,企业用都有.
- Fedora: 图形化很好,属于测试系统,稳定后,会生成REHL
- REHL: 也是红帽系统,商业版,需要订阅(收费)
- Debian: 属于Ubuntu的鼻祖,应用目前没有Ubuntu多
- Kali :也属于Debian系列,主要用于安全渗透等场景.
一、Linux目录结构
Linux的目录结构是一个树型结构
常用的目录介绍:
目录(文件夹) | 作用 |
/bin | 二进制命令所在的目录 |
/boot | 系统引导程序所需要的文件目录 |
/dev | 设备软件目录,磁盘,光驱, |
/etc | 系统配置,启动程序 |
/home | 普通用户的家,目录默认数据存放目录 |
/lib | 共享库文件和内核模块存放目录 |
/mnt | 临时挂载储存设备的挂载点 |
/opt | 额外的应用软件包 |
/proc | 操作系统运行时,进程信息和内核信息存放在这里 |
/root | Linux超级权限用户root的家目录 |
/sbin | 和管理系统相关的命令,【超级管理员用】 |
/tmp | 临时文件目录,这个目录被当作回收站使用 |
/usr | 用户或系统软件应用程序目录 |
/var | 存放系统日志的目录 |
二、Linux基础命令
2.1显示文件列表
ls #查看当前目录内容 (缺点: 隐藏文件看不到,以 .开头的文件) !
ls -a #查看当前目录内容 ,包括隐藏文件
ls -al #查看目录内容的详细信息(查看文件类型、权限、大小等)
ls -lh #查看目录内容的详细信息,以K,M,G方式显示文件大小
ll – h #等价以上写法
ls /root #查看/root目录下内容
ll #等价于ls -l !
2.2目录查看、目录创建和目录删除命令
2.2.1pwd命令
查看当前所在目录
[root@node1 ~]# pwd
/root
2.2.2mkdir命令
创建有层级的目录,注意: 新建目录的名称 不能与当前目录中 已有的目录或文件 同名
mkdir -p 目录1/目录2/目录3
2.2.3rm命令
该命令用于删除文件或者目录
参数 | 英文 | 含义 |
-f | force (强制) | 强制删除,忽略不存在的文件或目录, 无需提示 |
-r | recursive (递归) | 递归地删除目录下的内容, 删除目录时必须加此参数 |
2.3目录切换命令
命令 | 含义 |
cd | 切换到用户主目录(root用户主目录是/root,其他用户是/home/用户名) |
cd 目录 | 切换到指定目录下 |
cd .. | 切换到上级目录 |
cd - | 可以在最近的两次目录之间切换9 |
cd #回到用户主目录(root的家)
cd test #切换到当前目录下的test目录(相对路径)
cd /root/test #切换到指定目录(绝对路径)
cd .. #回到上一级目录
cd ../.. #回到上上一级目录
cd ../dir #回到上一级的dir目录
2.4文件操作命令
2.4.1touch命令
touch a.txt #在当前目录创建a.txt文件
touch /root/a.txt #在/root目录创建a.txt文件
2.4.2mv命令
通过mv 命令可以用来移动文件或目录, 也可以给文件或目录重命名
touch a.txt
mkdir dir
mv a.txt dir
ls dir
mv a.txt b.txt #重命名文件
mv dir1 dir2 #重命名目录
2.4.3cp命令
cp a.txt dir1 #将a.txt复制到dir1目录
cp a.txt b.txt #将a.txt复制到b.txt
cp -r dir1 dir22
2.4.4find指令
find / -name 'ins*' #查找/目录下以文件名ins开头的文件
find / -type f -size +100M #查找/目录下文件大小大于100M的文件
2.4.5grep命令
grep lang anaconda-ks.cfg #在文件中查找lang
2.4.6压缩和解压命令tar
tar -zxvf redis-3.2.8.tar.gz #将文件解压到当前目录
tar -xvf redis-3.2.8.tar.gz #将文件解压到当前目录
tar -zxvf redis-3.2.8.tar.gz -C /root/dir #将文件解压到指定目录
tar -cvf test.tar /root/test #打包
tar -czvf test.tar.gz /root/test #打包并压缩
2.5系统管理命令
2.5.1ps命令
ps -ef #查看所有进程
2.5.2kill命令
kill -9 12345 #杀死pid为12345的进程
2.5.3管道命令
ps -ef | grep java #查询名称中包含java的进程
2.6权限管理命令
2.6.1文件权限概述
Linux操作系统是多任务多用户操作系统,用户是Linux系统工作中重要的一环, 用户管理包括 用户与组管理
LInux对于不同的系统资源拥有不同的使用权限,Linux对文件创建者(所属用户),所属用户组,其他用户都赋予不同的权限。
所属用户:文件的创建者
所属用户组:和所属用户在同一组的用户
其他用户:既不是所属用户,也不是所属用户组
2.6.2文件权限解读
r: 对文件是指可读取内容对目录是可以ls
w: 对文件是指可修改文件内容,对目录是指可以在其中创建或删除子节点(目录或文件)
x: 对文件是指是否可以运行这个文件,对目录是指是否可以cd进入这个目录
2.6.3chmod命令
属主(user)u | 属组(group)g | 其他用户(other)o | ||||||
r | w | x | r | w | x | r | w | x |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
chmod 666 a.txt
chmod u+x a.txt
chmod u=rwx,g=rw,o=x a.txt
chmod -R 777 dir
2.7网络和服务管理命令
2.7.1ifconfig命令
2.7.2网络状态查看命令netstat
netstat -nltp
2.8磁盘管理命令
命令 | 作用 |
df -h | disk free 显示磁盘剩余空间 |
du -h [目录名] | disk usage 显示目录下的目录大小 |
free -h | 查看内存使用率 |
2.9时间和日期
命令 | 作用 |
date | 查看系统时间(默认) |
date +"%Y-%m-%d %H:%M:%S" | 查看系统时间(指定格式) |
date -s "时间字符串" | 设置系统时间 |
2.10vi编辑器
2.10.1vi编辑器使用
vi a.txt #直接打开文件
vim a.txt #vim是vi的增强版
vim a.txt +10 #直接打开文件,并定位到第10行
Vi编辑器三种模式:
1. 命令行模式
- 打开文件首先进入命令模式, 是使用vi的入口
- 通过 命令 对文件进行常规的编辑操作, 例如 定位 翻页 复制 粘贴 删除
- 在其他图形编辑器下, 通过 快捷键 或者 鼠标 实现的操作, 都在 命令模式 下实现
2. 末行模式 -- 执行 保存 退出等操作
- 要退出 vi 返回到控制台, 需要在莫行模式下输入命令
- 末行模式 是 vi 的出口
3. 编辑模式 -- 正常的编辑文字
2.10.2命令行模式常用命令
命令 | 功能 |
o | 在当前行后面插入一空行 |
O | 在当前行前面插入一空行 |
dd | 删除光标所在行 |
ndd | 从光标位置向下连续删除 n 行 |
yy | 复制光标所在行 |
nyy | 从光标位置向下连续复制n行 |
p | 粘贴 |
u | 撤销上一次命令 |
gg | 回到文件顶部 |
G | 回到文件末尾 |
/str | 查找str |
2.10.3底行模式常用命令
命令 | 功能 |
:w 文件 | 另存为 |
:w | 保存(ctrl + s) |
:q | 退出, 如果没有保存,不允许退出 |
:q! | 强行退出, 不保存退出 |
:wq | 保存并退出 |
:x | 保存并退出 |
shift + z + z | 保存并退出 |
:set nu | 设置行号 |
:set nonu | 取消行号 |
:%s/旧文本/新文本 | 文本替换 |
:nohl | 取消高亮 |
2.10.4异常处理
如果 vi 异常退出, 在磁盘上可能会保存有 交换文件
下次再使用 vi 编辑文件时, 会看到以下屏幕信息, 按下字母 d 删除交换文件即可
三、Linux高级命令
3.1重定向命令
- 重定向 >
Linux 允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。如:ls >test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )。
案例:
将/目录下文件的详情保存到test.txt文件中
ll / > test.txt
2、重定向 >>
>>这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。
案例:
现在有个文件1.txt,内容如下,现在将整个文件的内容追加到上一个案例的test.txt文件中
cat 1.txt >> test.txt