Linux
使用了CentOS 6.8系统
主要使用了Ubuntu 20.10系统
Oracle VM Virtual Box
Linux
CentOS 6.8
CentOS 7
Ubuntu 20.10
安装系统,配置系统
- 下载镜像iso文件
- 安装系统
- 配置系统分区, 一个主分区三个配置分区
文件目录系统
有且只有一个根目录 /
目录都是预先规划好的
远程操作
先将VirtualBox 的网络设置改为桥接,这样就可以使用本地同网域ip访问
可用工具:
- XShell (远程操作)
- XFtp5 (远程上传下载)
- MobaXterm (多功能)
- …
Ubuntu 需要先安装ssh服务
可以通过以下指令确认是否安装
1 | ssh localhost |
显示ssh: connect to host localhost port 22: Connection refused就是没有安装
通过以下指令安装
1 | sudo apt-get install openssh-server |
默认会自动启动
通过ps -e | grep ssh查看,或者service ssh status
之后可以在/etc/ssh/sshd_config下修改配置
参考:
使用ssh操作22号端口即可
文件管理就用sftp一样访问22号端口
vi vim
vi 是文本编辑器, vim是vi的增强版本
vim的三种常见模式:
- 正常模式
- 进入文档起初就是正常模式
- 可以使用快捷键
- 插入模式
- 使用 i , I , o , O , a , A , r , R 进入
- 可以输入内容
- 命令行模式
- 提供相关指令, 完成存盘, 读取, 替换, 离开 vim 编辑器, 显示行号等
快捷键
正常模式:
- yy复制当前行, 5yy复制当前以及当前行下的一共5行
- dd删除当前行, 5dd删除当前以及当前行下的一共5行
- p黏贴
- G 到文档末行, gg 到文档首行
- u 撤销未保存的操作
- 行号 然后按G / gg, 将光标移动到指定行
命令模式:
- / sss , 在当前文件中搜索sss, 正常模式下输入n就是查找下一个匹配的关键字
- set nu 开启行号, set nonu 关闭行号显示
开机重启注销
- shutdown
shutdown -h now表示立即关机shutdown -h 11分钟后关机shutdown -r now立即重启
- halt 直接使用, 和关机效果一样
- reboot 重启
- sync 同步, 把内存数据保存到磁盘上
- 每次关机重启前都应该先执行此指令
用户登录注销
最好不要以管理员账户直接登录
通过普通用户输入su指令可以切换到管理员
logout/exit注销, 就关闭了远程连接- 在图形界面(运行级别)是无效的
用户管理
- 组对应权限, 每个组有各自的home目录
- Linux是个多用户管理系统, 任何一个要使用系统资源的用户都需要先向管理员申请账号, 然后以对应账户登录系统
添加用户: (需要root权限)
useradd [选项] 用户名在
/home目录下面可以查看用户存放的位置ubuntu 下 新建用户需要使用 -m 选项才会创建home下目录
默认自动为新用户创建了一个用户组
-d指定目录useradd -d <directory> <username>指定home目录
passwd <username>指定密码useradd -g <groupname> <username>创建用户的时候指定组, 不指定默认创建与用户名相同的组
删除用户:
userdel <username>这样会保留home目录userdel -r <username>包括home目录也会被删除- 一般不删除home目录
查询用户信息:
id <username>- 如果无此用户, 返回无此用户
- uid – 用户id
- gid – 组id
- groups – 组
切换用户:
su - <username>切换用户exit退回原来的用户whoami查看当前是什么用户
用户组:
groupadd <groupname>创建组groupdel <groupname>删除组usermod -g <groupname> <username>切换用户的组/etc/passed用户配置文件(用户信息)/etc/group组信息配置文件/etc/shadow口令信息配置文件
实用指令
指定运行级别
系统运行级别配置文件: /etc/inittab, CentOS7以后以及弃用
- 0: 关机
- 1: 单用户, 找回丢失密码
- 2: 多用户无网络
- 3: 多用户有网络, 用的做多
- 4: 保留
- 5: 图形级别
- 6: 重启
命令: init <0-6>
面试题:
如何找回丢失的root密码?
进入单用户模式, 然后修改root密码, 因为进入单用户模式不需要root密码
此处使用CentOS 6.8
帮助指令
man <ls>查看ls指令怎么使用help <cd>查看cd的功能
文件目录类指令
pwd当前绝对路径lscdmkdirrm,-r代表所有文件,-f代表强制不提示rmdir只能删除空目录, 有内容需要使用rm -rf <dir>touch <filename>创建空文件, 可以跟着同时创建多个文件cp <options> <file source> <destination dir>拷贝,-r代表递归拷贝,\cp强制覆盖并且不提示mv <old filename> <new filename>重命名mv <old dir> <new dir>cat预览, -n显示行号more以全屏方式按页显示文件内容- 空格下一页
- ctri + B上一页
- Enter下一行
less按需加载文件, 快捷键与more差不多, 但是more直接加载好了所有文件内容>输出重定向, 覆盖写入文件>>追加echohead默认查看文件开头十行, -n自定义具体几行tail默认显示文件后10行, -f 实时追踪文件更新ln -s <link dir> <link name>软连接指令, 类似快捷方式, 但是cd进去使用pwd查看目录仍然是软连接的目录history查看历史指令, 可以加数字, 代表查看之前多少个指令!<number>代表执行历史编号为178的指令
时间日期类指令
date指令, 显示当前时间date "+%Y %M %D %H %M %S"查看年月日时分秒date -s <time>设置时间
cal以日历方式显示时间, 后面加年份可以显示全年日历
搜索查询指令
find
find <dir> <options> <description>按照特定指令查找- 比如
find /home -name a.txt
locate
通过建立locate的数据库实现快速查找
updatedb创建locate数据库locate <string>
grep
grep <options> <string> <source file>- 案例:
cat hello.txt |grep -ni yes在cat预览中找出yes关键词出现的地方-n显示行号,-i不区分大小写
压缩解压指令
gzip/gunzip
gzip <filename>压缩, 压缩完不保留源文件gunzip <filename>.gz解压gz文件
zip/unzip
zip <options> <filename>-d <dir>指定解压到指定目录-r递归压缩, 压缩目录
tar
- 打包指令, 最后打包的文件是tar.gz
-c打包成tar文件-v显示详细信息-f指定压缩后的文件名-z打包同时压缩tar -zcvf a.tar.gz al.txt a2.txt将多个文件打包压缩成a.tar.gz, 也可以操作整个目录tar -zxvf a.tar.gz解压到当前目录tar -zxvf <filename> <dir>解压到指定目录, 前提是该目录事先存在
组管理和权限管理
LInux中每个用户都必须有一个组
每个文件都有所有者, 所在组, 其他组
所有者
一般文件的创建者就是文件的所有者
ls -ahlh是human的意思, 可以显示组信息chown <username> <filename>change owner改变文件的所有者- 组不会跟着改变, 所以所有者不一定对应所在组
-R修改目录下所有文件
chgrp <group name> <filename>change group 修改文件所在组usermod -g <groupname> <username>切换用户的组usermod -d <dir> <username>切换用户登录的初始目录
权限管理
使用ls -ahl查看
1 | -rw-r--r-- 1 root root 0 Dec 21 16:28 ok.txt |
权限字符每一位所代表含义不一样
-文件类型, (d, -, l, c, b)rw-所有者权限User- r, read
- w, write
- e, excute
r--文件所在组的用户的权限Groupr--文件其他组的用户的权限Other1如果是文件, 表示硬链接的个数, 如果是目录表示该目录的子目录个数
之后依次是:
- 所有者
- 所在组
- 文件大小
- 目录是4096
- 时间
- 文件名
修改权限
例子:
1 | chmod u=rwx,g=rx,o=rx abc |
分别设置了所有者, 组用户, 其他组用户的权限
给用户和组用户添加或者删除权限
1 | chmod u-x,g+w abc |
给所有用户添加权限
1 | chmod a+r abc |
使用数字变更权限
规则: r=4, w=2, x=1, 其实就是二进制
例子: rwx=4+2+1=7
chmod u=rwx,g=rx,o=x <file/dirname> 相当于chmod 751 <file/dir name>
任务调度
定时调用脚本或者代码
crontab <options>
每一分钟就执行一次:
1 | */1**** ls -l /etc/ >> /tmp/to.txt |
五个占位符说明:
第一个* : 一个小时中的第几分钟
第二个* : 一个小时中的第几小时
第三个* : 一个月当中的第几天
第四个* : 一年中的第几个月
第五个* : 一周中的星期几
-可以代表时间范围
,代表不连续的时间
*代表任何时间
*/n代表每隔多久执行一次
crontab -r终止任务调度crontab -l列出当前有那些任务调度service crond restart重启任务调度
磁盘分区
分区基础:
- mbr分区
- 最多支持4个主分区
- 系统只能安装在主分区
- 扩展分区要占一个主分区
- MBR最大支持2TB, 拥有最好兼容性
- gtp分区
- 无限主分区, 但操作系统可能限制, windows最多128
- 最大18EB
- windows7 64以后支持gtb
windows下的分区:
- 系统盘就是主分区
- 其他磁盘就是扩展分区, 也就是逻辑分区
Linux分区:
- 归根结底只有一个根目录/, 每个分区都是用来组成文件系统的一部分
- linux采用”载入/挂载, mount/umount”的处理方式, 将分区和目录联系起来
Linux 硬盘分IDE硬盘和SCSI硬盘:
IDE硬盘标识符为”hdx
“, hd表示设备类型, x为盘号(a为基本盘, b为从属盘, c为辅助硬盘, d为辅助从属盘) ““代表分区, 前四个分区用数字1-4表示, 5开始为逻辑分区SCSI硬盘为”sdx~”
lsblk -f查看系统分区和挂载的情况
为linux增加硬盘
- 添加硬盘
- 分区
fdisk <disk root>命令分区
- 格式化
mkfs -t ext4 /dev/sdb1
- 挂载
mount <disk root> <dir for disk>umount取消挂载
- 设置永久挂载, 重启不重置
- 修改挂载文件
vim /etc/fstab/
磁盘情况查询
1 | df -ach --max-depth=1 |
df -h带计量单位- c列出明细同时, 增加汇总值- a含文件--maxdepth=1深度为1
统计home目录下文件个数
1 | ls -l /home | grep "^-" | wc -l |
网络配置
指定固定ip地址
- 编辑
/etc/sysconfig/network-scripts/ifcfg-eth0
CentOS 6.8 才适用
进程管理
每个执行的程序都成为一个进程
每个进程都对应一个父进程, 父进程可以复制多个子进程
每个进程都可能以两种方式存在, 前台和后台, 前台就是用户可以在屏幕上看到可以操作的, 后台就是指实际在操作但是屏幕上看不到的进程
系统服务一般都是后台进程, 常驻到关机结束
基本指令:
ps查看进程-a显示当前终端所有进程信息-u以用户格式显示进程信息-x显示后台进x程运行的参数-e显示所有进程-f全格式
1 | ps -aux | grep sshd |
终止进程
基本语法:
kill <options> <process number>killall <process name>-9强制
树状图展示进程
pstree <options>
-p展示PID-u用户ID
服务管理
服务本质就是进程, 但是是后台运行的, 通常都监听某一个端口, 等待其他进程的请求
service <service name> <start|stop|restart|reload|status>
CentOS7.0 后使用systemctl
可以使用windows telnet 检查那个端口在监听
–end–