Linux学习笔记1:虚拟机的安装
1、安装vm workspace pro12(傻瓜式安装即可)
2、创建虚拟机
- 配置选典型
- 安装客户机操作系统,选择稍后安装
- 选择系统:这里是安装的Linux的centOS
- 默认20g就好,选择拆分为多个文件好管理
- 完成(如果不能打开配置文件,就以管理员身份运行vmware)
3、还没有设置完成,还需要继续
- 点击编辑虚拟机
- 内存2g
- 处理器:2处理器2核
- 网络适配器:选择NAT模式
- 面试题:连接模式的区别(图片)
4、安装centOS
说明:安装过程中,可以通过control+alt在虚拟机和本机之间来切换鼠标
- 点击左上角的虚拟机,点击设置,点击CD,选择镜像就ok
- 选择好镜像,点击开启此虚拟机
- 进入欢迎界面,默认选择第一个回车(Tab选择,enter确认)
- Disc Found要跳过,花费时间太久
- 开发中,要生成复杂密码:网上搜索密码生成工具(我的root账号用的密码是xian123451)
- 硬盘分区:自定义分区
- 先分/boot200M,然后再分swap,2g,剩余的都分配根分区/
- 之后格式化,将修改写入磁盘
- 制定系统软件、选择自定义(只需要选择基本系统里面的“兼容程序库”、和“基本”,应用程序里面的”互联网浏览器“,桌面里面除了第一个都选,语言选中文)剩余的根据自己需求自己安装
- 完成配置,安装CentOS(20min)
- 登录后,不必创建用户名和密码,后续会学习用户管理,现在先用root用户登录
- 现在是关闭kdump(减少内存占用),在开发中要开启
5、终端和联网
- 打开终端:右键桌面,在终端中打开
- 联网:右上角计算机图标,system eth0
6、安装vmtools
- 点击vm的虚拟机,安装vm
- 安装后重启centos
- 终端:reboot
- 这时就可以实现两个系统的复制粘贴操作了
- 添加共享文件夹
- vm的虚拟机,设置,选项,共享文件夹
- 在centos里面的mnt/hgfs/
Linux学习笔记2:Linux目录总结
1、有且只有一个根目录
2、目录存放什么是规划好的,按规定来(一些重要的目录文件)
| 目录名称 | 解释说明 | 存放内容 |
|---|---|---|
| /bin | 即Binary,(/usr/bin、/usr/local/bin) | 常用的命令 |
| /boot | 存放启用Linux使用的核心文件,包括链接文件和镜像文件 | |
| /home | 存放普通用户的主目录 | |
| /root | 管理员用户的主目录 | |
| /media | linux把识别的设备挂载到这个目录 | |
| /mnt | 挂载别的文件系统,如d:/myshare | |
| /var | 存放不断扩充的东西,经常修改的放在这里,如各种日志文件 |
3、Linux中,一切皆文件
4、Linux目录树
Linux学习笔记3:vi和vim
1、介绍
- 所有Linux系统,都会内建vi文本编辑器
- Vim编辑器,vi的增强版本。
2、三种模式和相互转换
-
正常模式(用Vim打开文档时,直接进入正常模式),可以进行的操作如下:
- 快捷键
- 方向键移动光标
- 复制粘贴
- 删除字符、删除整行
-
编辑模式。可以进行的操作如下
- 可以输入内容
-
命令行模式。可以进行的操作如下
- 顾名思义,可以输入各种命令
-
相互转换
3、常用快捷键
-
首先在终端中输入
vim 文件名,如果文件存在就打开,不存在就创建。 -
拷贝粘贴:
yy---拷贝当前行;nyy---拷贝当前向下n行;p---粘贴 -
删除:
dd---删除当前行;ndd---删除当前向下n行 -
查找:
/关键字+回车---查找,继续回车查找下一个关键字 -
行号:
:set nu---添加行号;:set nonu---取消行号 -
撤销:编辑模式下的输入了文字,
esc到正常模式后,u---撤销 -
编辑/etc/profile文件
- [G]---到文档末行;[gg]---到首行
- 将光标移动到第n行---
先设置行号,输入n后,shift+g
Linux学习笔记4:关机、重启、用户登录注销
1、关机
-
shutdown -h now---->立即关机 -
halt--->立即关机 -
shutdown -h 1--->一分钟后关机
2、重启
-
reboot--->立即重启 -
shutdown -r now--->立即重启
3、注意:
关机和重启前一半都需要执行sync--->将内存数据写入磁盘,放置数据丢失
4、用户的登录与注销
- 正常情况下,尽量少用root用户登录,避免操作失误。
- 普通用户登录时,用
su -用户名命令来切换成管理员身份 -
logout--->注销用户
Linux学习笔记5:用户管理
1、Linux用户管理示意图
- 说明:
- Linux是一个多用户、多任务的操作系统
- 先想管理员申请账号,才可以进入系统
- 用户至少属于一个组
2、添加用户
-
useradd [选项] 用户名- 创建后就会自动创建和用户同名的家目录。例如我在命令行输入:
useradd lzx,在/home目录中就会出现名为lzx的文件夹。 - 也可以通过
useradd -d 指定目录 新用户名的方式,给新建用户指定家目录 - 当用户登录后,所在的目录就是
/home/和用户名同名的目录或指定目录
- 创建后就会自动创建和用户同名的家目录。例如我在命令行输入:
-
给用户设置密码:
- 我
passwd 用户名+回车 - 工作中,密码尽量复杂,可以选择工具来生成
- 我
2、删除用户
-
userdel 用户名----删除用户 -
userdel -r 用户名----删除用户,并删除家目录 - 一般保留家目录
3、查询用户
-
id 用户名- 用户存在就返回:
uid=500(lzx) gid=500(lzx) 组=500(lzx)- uid:用户id
- gid:组id
- 组:组名
- 用户不存在返回:
无此用户
- 用户存在就返回:
4、切换用户
- 当前用户权限不够时,可以通过
su - 用户名来切换用户 - 例如
- 从root用户切换到lzx--->
su - lzx(因为是高权限用户到低权限用户,所以不需要输入密码) - 这是我想cd到/root是没有权限的
- 要想退回到root用户,只需
exit
- 从root用户切换到lzx--->
- 看到前是哪个用户:
who am i或whoami
5、用户组
-
groupadd 组名----增加一个组 -
groupdel 组名----删除一个组 -
useradd -g 用户组 用户名----增加用户时,直接指定一个组 -
usermod -g 用户组 用户名----修改用户组
6、用户和组的相关文件
①、/etc/passwd文件
- 用户的配置文件,记录用户的信息
- 打开以后找到的内容:
lzx:x:500:500::/home/lzx:/bin/bas - 含义:用户名:口令:用户id:组id:注释性描述:主目录:登录shell
②、/etc/group文件
- 组配置文件,记录组的信息
- 打开以后找到的内容:
lzx:x:500: - 含义:组名:口令:组id:组内用户列表
③、/etc/shadow文件
Linux学习笔记6:实用指令
一、指定运行级别
| 运行级别 | 说明 |
|---|---|
| 0 | 关机 |
| 1 | 单用户(可以用来找回密码) |
| 2 | 多用户状态,没有网络服务 |
| 3 | 多用户状态、有网络,命令行形式 |
| 4 | 系统未使用,保留给用户 |
| 5 | 图形界面 |
| 6 | 重启系统 |
- 要修改运行级别可以修改
/etc/inittab文件中的id:5:initdefault中的数字 - 操作题
- 设置运行级别,使得Linux运行后进入命令行界面
vim /etc/inittab- 把
id:5:initdefault中的5改成3
- 找回root密码
- Linux开启后就关机,就重启,改怎么办?
- 设置运行级别,使得Linux运行后进入命令行界面
二、帮助指令
1、man
- 用法:
man 命令或配置文件 - 例如:查看ls命令的说明----
man ls
2、help
- 用法:
help 命令 - 例如,查看cd命令的说明---
help cd
3、面向百度更直接
三、文件目录类
1、pwd
- 含义:print working directory(打印当前工作目录的绝对路径)
- 用法:直接输入
pwd
2、ls
- 含义:list files
- 用法:
-
ls [选项]:显示当前目录的文件和文件夹 -
ls [选项] 路径1:显示路径1的文件和文件夹
-
- 常用的选项有:
- -l,显示所有,包括隐藏的
- -a,以列表的形式显示
3、cd
- 含义:change directory
- 用法:
cd 绝对路径或相对路径 - 其他常用
-
cd或cd~:回到家目录 -
cd..回到上一级目录
-
4、mkdir
- 含义:make directory(创建目录)
- 用法:
mkdir[选项] 要创建的目录 - 常用选项:-p 创建多及目录
- 实例:
- 创建一级目录:
mkdir /home/hello1 - 创建多级目录:
mkdir -p /home/hello2/aaa1
- 创建一级目录:
5、rmdir
- 含义:remove directory
- 用法:
rmdir 要删除的空目录 - 注意:如果是删除非空目录:
rm -rf 要删除的目录
6、touch
- 含义:创建 空文件
- 语法:
-
touch 文件名称,创建一个 -
touch 文件名称1 文件名称2创建多个
-
7、copy
- 含义:copy
- 用法:
cp [选项] source dest(cp 文件source到文件夹dest下,经常使用相对路径) - 常用选项:
-r:递归复制整个文件夹- 强制覆盖不提示的方法:
\cp
- 强制覆盖不提示的方法:
- 这里发现了一个细节:对于文件夹,直接用名字是可以的,但是老师习惯在文件夹后面加/,这样可以很好的和文件区分开。
8、rm
- 含义:remove,删除文件或目录
- 语法:
rm [选项] 要删除的文件或目录 - 常用选项
-
-r,递归删除整个文件夹 -
-f,强制删除不提示 - 可以组合式用,
rm -rf 文件夹
-
9、mv
- 含义:move,移动文件或目录,引申功能为:重命名
- 语法:
-
mv 要移动的文件 目标路径,移动 -
mv 旧文件名 新文件名,重命名,实质也是移动
-
10、cat(只能浏览)
- 含义
- 用法:
cat [选项] 要查看的文件 - 常用选项
-
-n:显示行号
-
- 实例
- 打开
/etc/profile文件,并显示行号
- 打开
- 细节:为方便浏览,一般会带上管道命令:
| more
11、more
-
全屏的方式显示文本文件的内容。(加载整个文件)
-
用法:
more 要查看的文件 -
快捷键
快捷键 说明 space 向下翻页 enter 向下一行 q 退出 control+f 向下滚动一屏 control+b 返回上一屏 = 输出当前行的行号 :f 输出文件名和当前行的行号
12、less
-
分屏的方式显示文本文件的内容(加载文件的一部分,随时加载)
-
语法:
less 要查看的文件 -
快捷键
快捷键 说明 space 向下翻页 pageUp 向上翻页 pageDown 向下翻页 /字符串 向下搜索,n是向下查找,N是向上查找 ?字符串 向上搜索,n是向上查找,N是向下查找 q 退出 -
适合显示大文件,效率高
13、echo
- 含义:echo(回声,反射)
- 语法:
echo 输出内容 - 应用
- 输出环境变量:
echo $PATH - 输出文本:
echo hello
- 输出环境变量:
14、head
- 显示文件的开头部分
- 语法
-
head 文件:默认显示前10行 -
head -n5 文件:显示头5行
-
15、tail
- 含义:显示文件的结尾部分
- 语法:
-
tail 文件名,默认显示后10行 -
tail -n5 文件名,显示后5行 -
tail -f 文件名,实时追踪该文件的所有更新
-
16、>和>>
- >:输出重定向,把内容直接覆盖写入文件
- >>:追加,把内容追加到文件的尾部
- 语法
-
ls -l > 文件1:列表的内容覆盖写入到文件1(要加上隐藏的内容,就用-al) -
ls -l >> 文件1:列表的内容追加写入到文件1尾部 -
cat 文件1 >或>> 文件2:将文件1的内容覆盖或追加到文件2 -
echo "内容" >或>> 文件1:将自己写的内容覆盖或追加到文件1
-
17、ln
- 含义:links(软连接)
- 语法:
- 创建:
ln -s 源文件或目录 软连接名 - 删除:
rm -rf 连接名(连接名后别带/,否则资源忙---相当于windows中的应用程序已经打开,无法删除)
- 创建:
18、history
- 含义:执行过的指令
- 语法:
-
history,显示所有历史指令 -
history 5,最近的5条记录 -
!10,执行历史编号为10 的指令
-
四、时间日期类
1、显示当前日期时间
- 语法
date-
date "+%Y-%m-%d %H:%M:%S",当然也可以拆开使用单独的一些
2、设置日期时间
- 语法:
date -s "2020-02-02 11:11:11"
3、日历
- 语法:
-
cal显示本月 -
cal 2020显示2020年的日历
-
五、搜索查找类
1、find
- 含义:从指定目录向下递归的遍历其各个子目录,并显示满足条件的文件或目录
- 语法:
find 搜索范围 [选项] - 常用选项
-
-name,按照文件名方式查找(*.txt代表查找所以的txt文件)(暂时不知道有什么鬼用,感觉多此一举) -
-user,按照用户名查找 -
-size,按照文件大小查找(+代表大于,-小于,不加是等于)
-
2、locate
- 含义:快速定位文件路径。
- 语法:
locate 要搜索的文件名 - 说明:
- 因为
locate指令是基于数据库进行查询,第一次使用前必须用updatedb指令创建locate数据库 - 实际使用了一下,发现locate查找的是包含输入的字符的所有文件
- 因为
3、grep和管道符号“|”
- 含义:过滤查找,“|”将前一个命令的处理结果传递给下一个命令
- 语法:
grep [选项] 查找内容 源文件 - 常用选项
-
-n,显示所在的行号 -
-i,忽略大小写
-
- 示例:
cat hello.txt | grep -ni java
六、解压缩类
1、gzip和gunzip
- 语法
-
gzip 文件(①只能压缩为.gz文件;②源文件会消失) gunzip .gz文件
-
2、zip和unzip
- 用途:常用于项目打包发布
- 语法:
-
zip -r 新的压缩文件名.zip 要压缩的内容,(-r是递归压缩目录) -
unzip -d 压缩文件名.zip(-d是存放目录)
-
3、tar★★★
- 含义:是打包指令,打包压缩后的文件名是
.tar.gz文件 - 语法:
tar [选项] 自己起名.tar.gz 打包的内容- 打包压缩:
tar -zcvf 自己起名.tar.gz 打包的内容 - 解压到当前目录:
tar -zxvf a.tar.gz - 解压到指定目录:
tar -zxvf a.tar.gz -C /opt/(目录必须存在)
- 打包压缩: