Linux小笔记
touch 创建空白文件后者更新已有文件的时间
.开头为隐藏文件
file 查看文件类型
cd ~ 返回用户家目录
cd - 返回上一步操作时的目录
---复制文件目录
格式:
cp 被复制文件 复制文件
参数:
r 当复制目录是需要使用;v 显示复制时的详细信息
---移动、重命名文件或者目录
格式
mv 被移动文件 移动文件
---创建
touch 文件名
---删除
rm 文件名
参数
i 交互式删除,告诉你每要删一个文件就需要你确认
r 递归式删除,删除目录带文件时常用
f 强迫式删除(非常谨慎使用)
---创建目录
mkdir
---删除目录
rmdir
rmdir不能删除非空文件夹(怎么办?使用rm -r 目录/ 意思为删除目录与里面的文件,就可以顺便把目录删了)
----------常用命令----------
---时期时间
date 查看、设置时间
clock 查看硬件时间
timeup 系统启动时间
---输出、查看
echo 显示输入内容
cat 查看文件全部内容
more (只能)向下翻页查看文件内容
less 可以上下翻页查看文件内容
head 文件前面几行内容(默认10行) -n
tail 文件后面几行内容(默认10行) -n -f
---文件系统
bin 一般命令目录
boot 引导启动系统目录
dev 硬件设备目录
etc 操作系统相关的配置文件
home 用户家目录
lib 程序库文件目录
lib64 同上
media 光盘等的挂载目录(不一定有)
mnt 同上(肯定有)
opt 大型应用软件目录(并不是强制,只是公共约束)
proc 系统实时信息目录,只存在内存当中
root 超级用户目录
sbin 超级用户命令目录
sys 底层硬件信息目录
tmp 临时目录,会自动删除
usr 一般应用软件目录
var 系统信息经常变化的目录(如系统日志信息log)
---文本编辑工具
vi
vim 打开或者新建文件
命令模式:其他模式按ESC键就能返回命令模式
i 插入;dd 删除;r 替换;u 返回上一步操作;yy 复制;
n+yy 复制n行;p 粘贴
EX模式:命令模式按: ,该模式用于保存修改或者退出
:w 保存;:q 退出;:q! 强制退出;:x 保存并退出,相当于:w
:set number 显示行号;:! 命令 执行系统命令并显示结果
:sh 切换到命令行,使用ctrl+d切换回vim
---磁盘分区
linux磁盘分区会以文件方式来命名有hda、sda(最常见的)
磁盘类型:IDE(机械硬盘接口)和SCSI(固态硬盘接口)
引导:BIOS和EFI
分区模式:MBR(window)和GPT(mac)
MBR为四个主分区,将其中一个主分区设置成扩展分区,再在这个扩展分区上分出多个逻辑分区
----FDISK分区工具
fdisk 磁盘名
基于MBR
需超级用户权限
m查看所有命令
partprobe来提醒系统更新磁盘分区信息(centOS6有效)
---linux文件系统
操作系统是通过文件系统来管理文件以及数据,磁盘或分区需要创建文件系统之后才能够为操作系统使用,创建文件系统的过程称之为格式化
没有文件系统的设备成为裸(raw)设备
常见文件系统:fat32、NTFS;ext2、ext3、ext4;等等
window系统主流:NTFS
linux系统主流:ext3、ext4
创建文件系统:mke2fs 还有简单的指令mkfs,但不能进行精细的操作
参数:
-s
磁盘分区 e2label
检查修复文件系统 fsck
参数 y 不提示直接进行修复
默认fsck会自动判断文件系统类型,如果文件系统损坏较为严重,-t参数指定文件系统类型
对于识别为文件的损坏数据,fsck会将该文件放入lost+found目录
系统启动时会对磁盘进行fsck操作
---文件系统挂载
文件系统创建后需要挂载才能使用
命令:mount 挂载分区 挂载点
参数: t 指定文件类型
o 指定挂载选项
ro,rw 只读、读写
sync,async 不使用缓存、使用缓存
noatime,atime 每次访问文件时更新/不更新访问时间
remount 重新挂载文件系统
-----卸载挂载
命令:unmount 挂载点
-------查看使用文件进程
命令:fuser -m 挂载点
-------查看正在被使用的文件
命令:lsof 挂载点
---获取帮助
1.参数--help
2.命令man 详细
3.命令info 更详细
4.查看文档DOC 更更详细
---用户、组
每个用户拥有一个UserID
每个用户属于一个主组,属于一个或多个附属组
每个组拥有一个GroupID
每个进程以一个用户身份运行,并受该用户可访问的资源限制
每个“可登陆”的用户拥有一个指定的shell
用户有三种:root、系统、普通
/etc/passwd 用户账号信息
/etc/shadow/ 用户密码信息
/etc/group 用户组信息
-----查看用户
显示当前登录用户名 whoami
显示有哪些用户已经登录系统 who
显示哪些用户执行哪些操作 w
-----创建用户
useradd 用户名
修改密码:passwd 用户名
-u -g -G
-----修改用户
usermod 用户名
-----删除用户
userdel 用户名
加-r连着家目录也删除
-----创建组、修改组、删除组
groupadd、groupmod、groupdel
---权限
三种:读r、写w、执行x
目录必须拥有x权限才能查看内容,若用户对目录有wr没x权限就毫无意义
基于UGO模型:user, group, other
每一个文件拥有一个所属用户和组,不属于该文件所属用户或组的就只能使用O权限
-----修改所属用户、组
chown 修改所属用户
chgrp
-----修改权限
chmod 模式 文件
-----默认权限
umask
目录默认权限:777-umask
文件默认权限:666-umask
一般,普通用户umask为002,root用户为022
-----特殊权限
suid, sgid, sticky
输入umask命令时有4位,如普通用户umask是0002其中后面002为UGO权限,第一位则是特殊权限
设置特殊权限
chmod u+s|g+s|o+t 文件|目录
---linux网络原理
ip编址为一个双层编址方案,ipv4为32位,分为网络部分和主机部分
子网掩码是来确定网络部分的位数,子网掩码为32位
与子网掩码中为1相对应的ip部分即为网络部分
MAC 是用来同一网络上主机之间的通信
不同网络之间的通信:网关/路由器
-----网络配置
查看网卡信息 ifconfig -a
启用、禁用接口 ifup|ifdown
配置 setup
配置文件:
网卡 /etc/sysconfig/network-scripts/ifcfg-eth0
DNS /etc/resolv.conf
主机名 /etc/sysconfig/network
静态主机 /etc/hosts
重启网络service network restart
-----网络测试命令
测试网络连通性 ping
测试DNS解析 host|dig
显示路由表 ip route
追踪到达目标地址的网络路径 traceroute
网络质量测试(结合traceroute和ping) mtr
-----修改主机名
实时修改(保存在内存中) hostname
永久修改(修改其配置文件) /etc/sysconfig/network
-----故障排查(从底层到高层、从自身到外部)
1.网络配置信息:ip, 子网掩码, 网关, DNS
2.到达网关连通:ping 网关ip
3.DNS解析:host
---管道和重定向
STDIN标准输入 0
STDOUT标准输出 1
STDERR标准错误 2
重定向
STDOUT覆盖到某个文件上 >
STDOUT追加到某个文件 >>
STDERR覆盖到某个文件上 2>
STDERR和STDOUT都覆盖到某个文件上 2>&1
STDIN重定向 <
管道
将一个命令的STDOUT作为另一个命令的STDIN |
---文件处理
基于关键字搜索文本 grep
基于列处理文本内容 cut
文本统计 wc
排序 sort
去重 uniq
文本比较(可用来打补) diff
操作文本 tr
搜索替换(正则) sed
---linux启动详解
修改默认级别/etx/inittab
查看当前系统级别 level
单用户修改root密码
通过在引导界面中进入level 1 的单用户级别,向内核传递参数“1”或“single”,即可无密码登录root,然后通过passwd修改密码。因此就出有了一个安全隐患问题,可以通过在/boot/grub/grub.conf的第一行插入password --md5 加密密码(注意,如果这个密码忘记了,只能将挂载的磁盘装载到另一个linux系统中再修改其中的grub.conf文件了)
密码可用grub-md5-crypt进行md5加密
---rpm软件包管理 redhead package manager
RPM通过将源代码基于特定平台系统编译为可执行文件,并保持依赖关系,来简化开源软件的安装管理
rpm -i|-e|-U 安装|卸载|更新
rpm -qa|qi|qf
-----RPM验证
验证一般使用非对称加密算法,需要一个秘钥
---YUM yellowdog updater,modified
解决rpm包之间的依赖关系
引入了仓库(repo)的概念配置文件保存在/etc/yum.repos.d/
创建YUM仓库
1、设置某个目录为rpm文件仓库目录,并将rpm文件放进目录中
2、使用createrepo命令(之前需使用rpm命令手动安装createrepo软件)创建仓库:createrepo -v 仓库目录
3、若有分组信息,需-g参数,createrepo -g 分组目录文件 仓库目录
4、最后修改仓库配置文件/etc/yum.repos.d/目录下创建.repo文件,配置项如下:
[LinuxKev]
name=This is a Linux rpm repository
baseurl=file|ftp|http...
enabled=1
gpgcheck=1
[]为仓库名;name是人为标示的名字,可随意写;baseurl为仓库的路径;enabled为1时表示启用,0只是放置未启用;gpgcheck为1时是启动验证rpm是否被修改;
1G4LV-FZ25P-0ZCN8-ZA3QH-8C00C