目录
1. 什么是Linux内核
- Linux系统的核心是内核,内核控制着计算机系统上的软硬件,在必要时分配硬件,并根据需要执行软件.
- 系统内存管理
- 应用程序管理
- 硬件设备管理
- 文件系统管理
2. Linux的体系结构.
Linux体系结构可以分为两块:
- 用户空间:用户空间又包括用户的应用程序,C库
- 内核空间:内核空间包括系统调用接口,内核,平台架构相关的代码
为什么Linux体系结构要分为用户空间和内核空间?
-
现代CPU实现了不同的工作模式,不同模式下CPU可以执行的指令和访问的寄存器也不同
- Linux从CPU的角度出发,为了保护内核安全,把系统分为两部分
- 用户空间和内核空间是程序执行的两种不同的状态,我们可以通过两种方式完成用户空间到内核空间的转移
- 系统调用
- 硬件中断
- 用户空间和内核空间是程序执行的两种不同的状态,我们可以通过两种方式完成用户空间到内核空间的转移
3. Linux的系统日志文件
比较重要的是/var/log/messages文件
该日志文件是许多进程日志文件的汇总,从该文件可以看出任何入侵企图或成功的入侵.
4. 基本命令
cd(change directory):切换目录
cd ../ ;跳到上级目录
cd /opt ;跳到opt文件夹
cd ~ ;切换当前用户的家目录.root用户家目录就是root
pwd(print working directory):显示当前工作目录的绝对路径
pwd
显示当前的绝对路径
ls(list):查看当前目录下的所有文件夹
ls -a ;显示所有文件夹,包括隐藏文件
ls -R ;连同子目录也显示
ll :查看当前目录下所有的详细信息和文件夹
ll -a 显示所有文件,隐藏文件也显示
ll -R 连同子目录内容一起列出
ll -h 友好展示详细信息,可以看大小
ll -al 既能看到隐藏文件,又能显示详细列表
touch:创建文件
touch luo.txt 创建luo.txt文件
touch /opt/luo/test.txt 在指定目录创建test.txt文件
mkdir: 创建目录
mkdir 文件夹名称 ;在此目录创建文件夹
mkdir /opt/java/jdk ;在执行目录创建文件夹
cat 查看文件命令
cat lp.log ;查看文件
less 分页查看文件
less -m 显示类似于 more 命令的百分比。less -N 显示每行的行号。 ( 大写的 N)两参数一起使用如: less -mN 文件名,如此可分页并显示行号。空格键:前下一页或 page down 。回车:向下一行。b :后退一页 或 page up 。q :退出。d :前进半页。u :后退半页
cp 复制
cp /opt/java/java.log /opt/logs/ ; 把 java.log 复制到 /opt/logs/ 下cp /opt/java/java.log /opt/logs/aaa.log ; 把 java.log 复制到 /opt/logs/ 下并且改名为 aaa.logcp -r /opt/java /opt/logs ; 把文件夹及内容复制到 logs 文件中
mv(move) 移动文件
mv /opt/java/java.log /opt/mysql/ ; 移动文件到 mysql 目录下mv java.log mysql.log ; 把 java.log 改名为 mysql.log
rm(remove) 删除
rm 文件名 ; 安全删除命令 ( yes 删除 no 取消)rm -rf 强制删除文件夹及内容rm -rf * 删除当前目录下的所有内容。rm -rf /* 删除 Linux 系统根目录下所有的内容。系统将完蛋。
find 查找指定文件或目录
find -name 文件名 ; 按照指定名称查找在当前目录下查找文件find / -name 文件名按照指定名称全局查找文件find -name '* 文件名 ' ; 任意前缀加上文件名在当前目录下查找文件find / -name '* 文件名 *' ; 全局进行模糊查询带文件名的文件
输入 ”vim 文件名 ” 打开文件,刚刚时是 ” 一般模式 ” 。一般模式:可以浏览文件内容,可以进行文本快捷操作。如单行复制,多行复制,单行删除,多行删除,(退出)等。插入模式:可以编辑文件内容。底行模式:可以进行强制退出操作 , 不保存 :q!可以进行保存并退出操作 :wq按下 ”i” 或 ”a” 或 ”o” 键,从 ” 一般模式 ” ,进入 ” 插入模式(编辑模式) ” 。在编辑模式下按 ”Esc” 即可到一般模式在一般模式下按 ”:” ,冒号进入底行模式。在一般模式下的快捷键dd ; 删除一整行X ; 向前删除 等同于 windowns 系统中的删除键x ; 向后删除和大写 x 相反方向Ctrl + f ; 向后看一页Ctrl + b ; 向前看一页u ; 撤销上一步操作/word ; 向下查找 word 关键字 输入 :n 查找下一个 ,N 查找上一个(不管是哪个查找都是全局查找 只不过 n的方向相反)?log ; 向上查找 log 关键字 输入 :n 查找上一个 ,N 查找下一个:1,90s/redis/Redis/g ; 把 1-90 行的 redis 替换为 Redis 。语法 n1,n2s/ 原关键字 / 新关键字 /g , n1代表其实行 ,n2 代表结尾行 ,g 是必须要的:0 ; 光标移动到第一行:$ ; 光标移动到最后一行:300 ; 光标移动到 300 行 , 输入多少数字移动到多少行:w ; 保存:w! ; 强制保存:q ; 退出:q! ; 强制退出5dd ; 删除后面 5 行 , 打一个参数为自己填写5x ; 删除此光标后面 5 个字符d1G ; 删除此光标之前的所有d0 ; 从光标当前位置删除到此行的第一个位置yy ; 复制p ; 在光标的下面进行粘贴P ; 在光标的上门进行粘贴
管道命令
单独使用:grep String test.java ;在 test.java 文件中查找 String 的位置,返回整行一般此命令不会单独使用下面列几个常用的命令(地下通过管道命令组合起来使用)ps aux|grep java ;查找带 java 关键字的进程ll |grep java ;查找带 java 关键字的文件夹及文件
tar 解压 压缩
解压命令:tar -zxvf redis-3.2.8.tar.gz ;解压到当前文件夹tar -zxvf redis-3.2.8.tar.gz -C /opt/java/ ;解压到指定目录压缩命令:(注意 语法有点反了,我反正每次都搞反)tar -zcvf redis-3.2.8.tar.gz redis-3.2.8/ ; 语法 tar -zcvf 压缩后的名称 要压缩的文件tar -zcvf 压缩后的文件(可指定目录) 要压缩的文件(可指定目录)
ps(process status)
常用组合:ps -ef 标准的格式查看系统进程
ps -aux BSD 格式查看系统进程ps -aux|grep redis BSD 格式查看进程名称带有 redis 的系统进程(常用技巧)
clear 清屏命令
kill 命令用来中止一个进程。(要配合 ps 命令使用,配合 pid 关闭进程)( ps 类似于打开任务管理器, kill 类似于关闭进程)kill -5 进程的 PID ; 推荐 , 和平关闭进程kill -9 PID ; 不推荐 , 强制杀死进程
ifconfig 查看网络地址和参数
ping: 检测与目标的连通性
ping www.baidu.com
free 显示系统内存
netstat 显示网络状态
5. 如何查看最近1000行日志
tail -1000 xx.out
6. 如何查端口号是否被占用
netstat -anp | grep 端口号
7. 查看当前所有已经使用的端口情况
netstat -nultp
8. 什么是硬链接和软链接?
- 硬链接: 通俗理解就是复制一个 + 同步更新
- 软链接: 类似windows中快捷方式
- inode: 文件系统中存储文件元信息(文件的创建者,文件的大小,日期等)的区域,成为节点索引
- 区别:
- 本质: 硬链接本质是同一个文件,软链接本质不是同一个文件
- 跨设备: 硬链接不支持跨设备,软链接支持跨设备
- incode: 硬链接inode相同, 软链接incode不同
- 文件夹: 硬链接不支持,软链接支持
- 删除源文件: 硬链接只是链接数-1,软链接无法访问
- 实际场景基本使用软链接