- 一台主机上能够安装多个虚拟机
- Linux操作系统诞生于1991 年10月5号,此为第一次正式向外公布时间
- Linux是一个多用户系统,也是一个多任务操作系统。
- Linux内核版本号命名:2.6.22---2为主版本号,6为次版本号,22为修正号
- Ubuntu每6个月发行一个新版本,采用unity桌面环境
- Red Hat默认采用GNOME桌面环境
- Mandriva Linux默认采用KDE桌面环境
- Linux系统一般由内核、文件系统、应用系统和shell组成
- 目前大部分Linux文件系统都默认采用ext4文件系统
- /etc:系统配置文件
- /dev:外部设备
- /boot:启动程序(引导文件)
- /lib:共享函数库
- /mnt:默认挂载点
- /proc:虚拟文件系统
- /bin:外部命令目录
- /var:系统修改过的数据
- Linux采用树形结构,最上层是根目录,其他目录从根目录出发而生成
- Linux中的文件类型:
"-"——普通文件;
"d"——目录文件;
"l"——链接文件;
"c"——字符设备文件;
"b"——块设备文件;
"s"——套接字文件;
"p"——管道文件
- 文件权限:共十位长度,分为四段:
1.第一段 1个长度:文件类型
2.第二段 3个长度:文件所有者的权限(-u)
3.第三段 3个长度:文件当前群组的权限(-g)
4.第四段 3个长度:其他用户及群组的权限(-o)
r(22)w(21)x(20)
chgrp,chown命令默认情况下只有root权限才能操作,而chmod命令只有文件的所有者和root权限才能进行操作
chgrp 组名 文件/目录名
chown 用户名:组名 文件/目录名 其中:组名可以省略
chmod:符号模式:chmod [augo]+[+-=]+[rwx] 文件/目录名
绝对模式:chmod 权限等级 文件/目录名 (权限等级中750和650使用较多)
- SSH服务使用的默认端口号是22
- tail:显示文件的最后n行,默认为10; tail -f:不断读取最新内容,达到实时监控目的
- ls: -a 显示所有文件; -l 使用长格式显示; -t 按创建时间(由晚到早); -r 反序输出(默认首字母升序) -altr: 所有文件按创建时间从早到晚排序
- pwd:显示当前工作目录的完整路径
- wc:统计命令 wc filename ===> 行数(-l) 词数(-w) 字节数(-c) filename
- 链接:
- 硬链接:不能链接到目录和不同文件系统的文件,硬链接为指针,与原文件inode(索引结点号)相同,文件删除后硬链接仍有效 命令:ln
- 软链接:能链接到目录并跨文件系统,系统会重新分配inode给软链接,文件删除后软链接也会失效 命令:ln -s
用户和用户组
- 用户:任何使用系统资源的用户必须先向系统管理员申请一个账号,然后以账号的身份进入系统
- 在Linux系统中,任何文件都属于某一特定用户,而任何用户都隶属于至少一个用户组
- 用户分类:
- 普通用户:uid1000~65535 权限不高,只能在用户主目录创建文件
- 系统用户:uid1~999 代表系统的组成部分,一般没有运行环境
- 超级用户:uid0 root用户拥有最高权限
- 创建新用户: useradd makonyan -g(指定群组) makolin -m(创建主目录) -p(设置密码)123456
- 用户相关文件: /etc/passwd /etc/shadow
- 用户组相关文件: /etc/group /etc/gshadow
- useradd:创建一个新用户
-d | 指定用户主目录 |
-g | 指定组 |
-m |
自动创建主目录 |
-p | 指定密码 |
- passwd
-l | 禁用用户 |
-u | 解禁用户 |
-d | 删除密码 |
- usermod
-d | 更改主目录 |
-l | 更改账号名称 |
-g | 更改所属组 |
- userdel -r把主目录一起删除
- groupadd
-g | 指定组id |
-o | 允许存在相同组id |
- groupmod
-g | 指定组id |
-o | 与-g一起使用,允许新gid和已存在的相同 |
-n | 更改组名 |
- groupdel
- gpasswd
-a | 添加用户 |
-d | 从组中删除用户 |
-r | 删除密码 |
硬盘:
- 主分区:1-3 扩展分区:4 逻辑分区:5~
- 只能格式化主分区和逻辑分区,不能格式化扩展分区
- 硬盘分区:
1.在虚拟机上设置添加SCSI类型的硬盘
2.在Ubuntu系统内能够通过fdisk -l命令查看硬盘
3.执行sudo fdisk /dev/sdb(新硬盘的名字)命令,通过输入m显示帮助命令(n(new) q退出 w保存退出)
4.分区格式化,创建文件系统
执行sudo mkfs -t ext4 /dev/sdb(+分区序号) *不能对拓展分区格式化
5.在使用前,挂载分区
挂载方式一:手动挂载(/share为挂载点)
root@garton-virtual-machine:/#mount ext4 /dev/sdb1 /share
挂载方式二:自动挂载
root@garton-virtual-machine:/# vi /etc/fstab
/dev/sdb1 /share ext4 defaults 0 0
第一列 文件系统名称
第二列 Mount point:设备的挂载点,就是你要挂载到哪个目录下。
第三列 filesystem:磁盘文件系统的格式,包括ext2、ext3、reiserfs、nfs、vfat等
第四列 parameters:文件系统的参数
第五列:能否被dump备份命令作用
第六列 是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)。
- 交换分区:swap
概念:Linux下的虚拟内存分区,作用是在物理内存使用完之后,将磁盘空间(swap分区)虚拟成内存使用
-
- 设置方法:
- 创建交换条件:dd if(输入文件)=/dev/zero/ of(输出文件)=/swapfile bs(读写块大小)1024 count(仅复制blocks的块数)=6656
- 指定交换条件:mkswap [参数] [设备名称/文件] [交换区大小] free查看内存使用情况
- 激活swap文件:swapon [of名]
- 删除swap文件:swapoff [of名]
- 自动加载:在/etc/fstab文件下配置
进程管理:
- ps:查看进程
- -au较详细信息
- -ax所有使用者的进程
- top:监控进程
- P:根据CPU占用排序
- M:根据内存大小排序
- u:指定用户
- k:杀死进程
- kill:结束进程 -l显示信号名称列表
任务计划
- 设置方法:crontab;允许用户提交、编辑、删除相应作业。
- 格式:crontab [选项] [用户名]
- -l 显示
- -r 删除
- -i 删除前提示
- -e 编辑
vi编辑器
- vi命令分为命令行模式,输入模式,末行模式;其中输入模式能够进行文档的修改。
命令行模式:当进入vi时,处在命令行模式
x | 删除光标所在位置的字符 |
dd | 删除光标所在行 |
yy | 复制光标所在行 |
p | 将复制的(或最近一次删除的)内容粘贴 |
u | 撤销上次操作 |
- 输入模式:
i | 在当前光标所在处插入 |
a | 从光标所在的下一个字符插入 |
r | 替换光标所在的字符一次 |
o | 在光标所在下一行插入新的一行 |
- 工作模式切换:
- 当进入vi时,处在命令行模式
- 命令行模式->输入模式:iIaArRoO
- 输入模式->命令行模式:Esc
- 命令行模式->末行模式::
- 末行模式->命令行模式:命令执行后或将末行输入的命令全部删除后
shell脚本
- 每个Linux系统的用户可以拥有自己的用户界面或Shell
- shell脚本执行方式
- 直接命令执行:在提示符下执行(需要对应权限)
- sh/bash 脚本名 : 参数:-n不执行只检查语法 -v输出内容再执行
- source 脚本名:可以没有执行权限
- Shell脚本常用系统变量:
- $# 命令行参数的个数
- $0 当前程序的名称
- $n 当前程序的第n个参数
- $? 执行的上个指令或函数的返回值
- $* 以"参数1 参数2 …"的形式保存所有参数
- $$ 当前程序的PID(进程ID)
- $! 上一个命令的PID
- 常见环境变量:
- PATH 命令搜索路径
- HOME 用户home目录的路径
- Shell自定义变量要求:
(1) 首个字符必须为字母(a-z,A-Z)
(2) 中间不能有空格,可以使用下划线(_)
(3) 不能使用标点符号
(4) 不能使用bash里的关键字(可用help命令查看保留关键字)
(5) 给变量赋值的时候,不能在“=”两边留空格
- test中的整数运算符
- -eq equal
- -ne not equal
- -gt greater than
- -lt less than
- -ge greater than or equal
- -le less than or equal
- test中的字符串运算符
- str1 = str2 判断两个字符串是否相同,相同则为ture
- str1 != str2 判断两个字符串是否不相同,不同则为true
- -z str 判断字符串str长度是否为0,如果是空字符串则返回true
- -n str 判断字符串str长度是否为0,如果是空字符串则返回false
- 使用 [ ] 进行条件判断要注意加空格
- 特殊符号
- " " :由双引号括起来的字符,除$、反斜线\和反引号``几个字符仍是特殊字符并保留其特殊功能外,其余字符仍视为普通字符。
- ' ' :由单引号括起来的字符都作为普通字符出现
-
- ` ` :把反引号括起来的字串解释为命令行后首先执行,并以它的标准输出结果取代整个反引号部分
- 注意:双引号和不使用引号效果基本一致(特殊字符具有特殊字符的含义),单引号作为普通字符
- 文件运算符
- -e file 文件名存在则返回ture
- -d file 文件名存在且为目录则返回true
- -f file 文件名存在且为文件则返回true