Linux 学习笔记
文件系统
/bin: binary, 表示这个目录存储的是经常使用的命令
/sbin: system, 系统管理员使用的系统管理程序
/root:这是系统管理员(root user)的目录
/etc:这里主要存放了系统配置方面的文件
/dev:这里主要存放与设备(包括外设)有关的文件(unix和linux系统均把设备当成文件)。
/home:这里主要存放你的个人数据。
/tmp:这是临时目录。
/mnt:这个目录一般是用于存放 “挂载储存设备的挂载目录” 的,比如有cdrom 等目录。
/usr:在这个目录下,你可以找到那些不适合放在/bin或/etc目录下的额外的工具
/opt:这里主要存放那些可选的程序。
/proc:操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。
/var:这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。
/boot:Linux的内核及引导系统程序所需要的文件目录,比如 vmlinuz initrd.img 文件都位于这个目录中。
/media:有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等等。
Vim模式转换
Vim快捷键
yy:复制一行(8yy 复制8行)
p:粘贴一行(8p 粘贴8行)
dd:删除一行(从行开始,删除3行, 3dd)
撤销:u
从当前光标开始,复制到行尾: y$ (删除y换成d)
从当前光标,往行头:y^ (删除y换成d)
复制当前单词:yw (删除y换成d)
shift + R 替换 类似windows下的insert模式
H:移动到文件头
h:左移光标
l:右移光标
j:上移一行光标
k:下移一行光标
e:移动到行尾
gg: 移动到文件头
set nu: 显示行号
3G:移动到第三行
G:移动到最后一行[+ e:移动到最后一个字符本文件]
o:光标下新开一行进入编辑模式
/要查找的词(修改配置文件常用)🍍
:%s/old/new/g: 全局替换
网络配置
主机模式:主机能和虚拟机通信,但是虚拟机不能访问外网
NAT模式:虚拟机能访问外网,并且主机能和虚拟机通信。
静态网络配置
/etc/sysconfig/network-scripts/ifcfg-ens33
其中将bootproto 修改为static, 并且添加IPADDR=需要修改成的静态地址,GATEWAY=需要修改的网关地址,DNS1=需要修改的域名解析地址
修改主机名
用处:可用主机名代替主机IP
1、修改主机名
1 | hostnamectl set-hostname 主机名(或者 vim /etc/hostname 修改) |
2、添加主机名和ip映射
1 | vim /etc/hosts |
打开某个端口
1 | 1、firewall-cmd --get-active-zones |
修改linux ssh端口号,可能没有设置导致访问不了
1 | 1、vim /etc/ssh/sshd_config |
通过windows自带的powershell ssh 登录
1 | ssh 主机地址 |
系统管理
系统运行级别
1 | 查看默认级别 cat /etc/inittab |
运行级别0:系统停机状态,默认运行级别不能为0,否者无法正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录
运行级别2:多用户状态(没有NFS),不支持网络
运行级别3:完全多用户(有NFS),登录后控制台命令模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭重启,默认运行级别不能设为6,否者不能正常启动
常用命令
帮助命令
1 | man vi |
装中文包
1 | sudo yum install man-pages-zh-CN 安装 有问题👊👊👊 |
文件管理
显示文件信息:ls[-l,-a]、ll
删除文件:rm[-rf 递归+不提示]
复制文件:cp 文件/目录 复制到的位置 [-r 递归复制]
移动文件:mv 文件/目录 移动位置
修改文件名字(单文件):mv 文件 目录/文件名
查看小文件:cat 查看的文件
查看大文件:more 查看的文件
查看大文件:less(与more类似,但是并不是一次性打开整个文件,而是按需加载内容,专注于大文件)👍👍👍👍👍[shift + G 定位到文件末 g 定位到文件头 /关键字 搜索]
输出文件到控制台(类似cat):echo 查看文件[-e 支持反斜杠]
1 | echo -e 'hello \n' |
输入输出重定向👍👍
1 | ls -l > 文件 (列表内容写入文件a.txt中(覆盖写)) |
显示文件头的内容
1 | head 文件 (查看文件头10行内容) |
文件尾内容👍👍
1 | tail 文件 (查看文件尾部10行内容) |
软链接(link)类似windows的快捷方式
1 | ln -s[原文件或目录][软链接名] (给原文件创建一个软链接)(不加-s 就是硬链接) |
历史指令记录
1 | history |
硬链接和软链接👍👍👍
硬链接:一个文件的多个名字,修改一个文件内容会影响到其他文件的内容,并且硬链接的innode是一致的,所以无法创建一个目录的硬链接
软链接:一种特殊文件,指向目标文件,并且带有自己的innode
时间
1 | date |
用户管理
需要 root 权限
添加用户
1 | useradd -d /home/dave david |
设置密码
1 | passwd david |
查看是否有这个用户
1 | id username |
切换用户
1 | su username |
设置普通用户临时root权限,需要root去修改/etc/sudoers,将boluo ALL(ALL) ALL添加在里面
1 | sudo ls |
删除用户
1 | rm -rf username/ 会留下username这个目录 |
新增用户组(默认情况下,新建用户会自带和用户id一样的用户组id)
1 | groupadd sgroup |
查看组
1 | cat /etc/group |
新增用户到组
1 | usermod -g 组名 用户名 |
修改组名称
1 | groupmod -n 新名称 旧名称 |
删除组
1 | groupdel 组名 |
文件属性权限解释
其中第一个文件是一个软链接有读写和执行权限,并且组权限有读写和执行…
变更文件权限
1 | u:所有者 g:所有组 o:其他人 a:所有人 |
更改文件所有者和所有组
1 | chown boluo ssvip 更该ssvip的所有者 |
搜索查找
1 | find -name hello.txt |
locate指令用于事先建立在系统中所有文件名称及路径的locate数据库实现快速定位,locate并不会遍历整个文件系统,所以查询数据较快。(需实现执行更新)
1 | yum install mlocate 可能系统中没有这个指令,需要先安装🎈🎈🎈 |
grep过滤查找及|管道符
1 | grep 选项 查找内容 源文件 (-n 显示匹配行及行号) |
压缩解压打包
1 | 只能压缩文件 |
磁盘管理
1 | 安装tree插件 |
du 可查看硬盘使用(disk usage)
1 | du |
df 查看磁盘空间使用情况 (disk free)
df 选项
1 | df - h |
lsblk 查看设备挂在情况
1 | lsblk -f |
mount/umount 挂载/卸载
对Linux用户来讲,不论有几个分区,分给哪一个目录使用,他总归就是一个根目录,一个独立且唯一的文件结构
1 | mount [-t vfstype][-o options] device dir (挂在设备) |
磁盘分区
1 | fdisk -l (查看磁盘分区详情) root用户下,才能使用 |
进程管理
systemctl (centos7 版本)
systemctl start | stop | restart | status 服务名
/usr/lib/systemd/system 查看所有服务路径
查看当前进程状态 ps
1 | ps aux | grep xxx (查看系统所有进程) |
终止进程 kill
1 | kill [选项] 进程号 (通过进程号杀死进程) |
查看当前进程状态 top (实时)
1 | top |
显示网络状态和端口占用信息 netstat
1 | netstat -anp | grep 进程号 (查看进程网络信息) |
系统定时任务
1 | 重新启动crond服务 systemctl restart crond |
软件包管理工具
1 | RPM(ReadHat Package Manager) |