Linux学习笔记1:虚拟机的安装

1、安装vm workspace pro12(傻瓜式安装即可)

2、创建虚拟机

  1. 配置选典型
  2. 安装客户机操作系统,选择稍后安装
  3. 选择系统:这里是安装的Linux的centOS
  4. 默认20g就好,选择拆分为多个文件好管理
  5. 完成(如果不能打开配置文件,就以管理员身份运行vmware)

3、还没有设置完成,还需要继续

  1. 点击编辑虚拟机
  2. 内存2g
  3. 处理器:2处理器2核
  4. 网络适配器:选择NAT模式
  • 面试题:连接模式的区别(图片)

4、安装centOS

说明:安装过程中,可以通过control+alt在虚拟机和本机之间来切换鼠标

  1. 点击左上角的虚拟机,点击设置,点击CD,选择镜像就ok
  2. 选择好镜像,点击开启此虚拟机
  3. 进入欢迎界面,默认选择第一个回车(Tab选择,enter确认)
  4. Disc Found要跳过,花费时间太久
  5. 开发中,要生成复杂密码:网上搜索密码生成工具(我的root账号用的密码是xian123451)
  6. 硬盘分区:自定义分区
    1. 先分/boot200M,然后再分swap,2g,剩余的都分配根分区/
    2. 之后格式化,将修改写入磁盘
  7. 制定系统软件、选择自定义(只需要选择基本系统里面的“兼容程序库”、和“基本”,应用程序里面的”互联网浏览器“,桌面里面除了第一个都选,语言选中文)剩余的根据自己需求自己安装
  8. 完成配置,安装CentOS(20min)
  9. 登录后,不必创建用户名和密码,后续会学习用户管理,现在先用root用户登录
  10. 现在是关闭kdump(减少内存占用),在开发中要开启

5、终端和联网

  1. 打开终端:右键桌面,在终端中打开
  2. 联网:右上角计算机图标,system eth0

6、安装vmtools

  1. 点击vm的虚拟机,安装vm
  2. 安装后重启centos
    1. 终端:reboot
  3. 这时就可以实现两个系统的复制粘贴操作了
  4. 添加共享文件夹
    1. vm的虚拟机,设置,选项,共享文件夹
    2. 在centos里面的mnt/hgfs/

Linux学习笔记2:Linux目录总结

1、有且只有一个根目录

2、目录存放什么是规划好的,按规定来(一些重要的目录文件)

3、Linux中,一切皆文件

4、Linux目录树

Linux学习笔记-LMLPHP

Linux学习笔记3:vi和vim

1、介绍

  1. 所有Linux系统,都会内建vi文本编辑器
  2. Vim编辑器,vi的增强版本。

2、三种模式和相互转换

  1. 正常模式(用Vim打开文档时,直接进入正常模式),可以进行的操作如下:

    1. 快捷键
    2. 方向键移动光标
    3. 复制粘贴
    4. 删除字符、删除整行
  2. 编辑模式。可以进行的操作如下

    1. 可以输入内容
  3. 命令行模式。可以进行的操作如下

    1. 顾名思义,可以输入各种命令
  4. 相互转换

Linux学习笔记-LMLPHP

3、常用快捷键

  1. 首先在终端中输入vim 文件名,如果文件存在就打开,不存在就创建。

  2. 拷贝粘贴:yy---拷贝当前行;nyy---拷贝当前向下n行;p---粘贴

  3. 删除:dd---删除当前行;ndd---删除当前向下n行

  4. 查找:/关键字+回车---查找,继续回车查找下一个关键字

  5. 行号::set nu---添加行号;:set nonu---取消行号

  6. 撤销:编辑模式下的输入了文字,esc到正常模式后,u---撤销

  7. 编辑/etc/profile文件

    1. [G]---到文档末行;[gg]---到首行
    2. 将光标移动到第n行---先设置行号,输入n后,shift+g

Linux学习笔记4:关机、重启、用户登录注销

1、关机

  1. shutdown -h now---->立即关机
  2. halt--->立即关机
  3. shutdown -h 1--->一分钟后关机

2、重启

  1. reboot--->立即重启
  2. shutdown -r now--->立即重启

3、注意:

关机和重启前一半都需要执行sync--->将内存数据写入磁盘,放置数据丢失

4、用户的登录与注销

  1. 正常情况下,尽量少用root用户登录,避免操作失误。
  2. 普通用户登录时,用su -用户名命令来切换成管理员身份
  3. logout--->注销用户

Linux学习笔记5:用户管理

1、Linux用户管理示意图

Linux学习笔记-LMLPHP

  • 说明:
    • Linux是一个多用户、多任务的操作系统
    • 先想管理员申请账号,才可以进入系统
    • 用户至少属于一个组

2、添加用户

  1. useradd [选项] 用户名

    • 创建后就会自动创建和用户同名的家目录。例如我在命令行输入:useradd lzx,在/home目录中就会出现名为lzx的文件夹
    • 也可以通过useradd -d 指定目录 新用户名的方式,给新建用户指定家目录
    • 当用户登录后,所在的目录就是/home/和用户名同名的目录或指定目录
  2. 给用户设置密码:

    1. passwd 用户名+回车
    2. 工作中,密码尽量复杂,可以选择工具来生成

2、删除用户

  1. userdel 用户名----删除用户
  2. userdel -r 用户名----删除用户,并删除家目录
  3. 一般保留家目录

3、查询用户

  1. id 用户名
    • 用户存在就返回:uid=500(lzx) gid=500(lzx) 组=500(lzx)
      • uid:用户id
      • gid:组id
      • 组:组名
    • 用户不存在返回:无此用户

4、切换用户

  1. 当前用户权限不够时,可以通过su - 用户名来切换用户
  2. 例如
    1. 从root用户切换到lzx--->su - lzx(因为是高权限用户到低权限用户,所以不需要输入密码)
    2. 这是我想cd到/root是没有权限的
    3. 要想退回到root用户,只需exit
  3. 看到前是哪个用户:who am iwhoami

5、用户组

  1. groupadd 组名----增加一个组
  2. groupdel 组名----删除一个组
  3. useradd -g 用户组 用户名----增加用户时,直接指定一个组
  4. usermod -g 用户组 用户名----修改用户组

6、用户和组的相关文件

①、/etc/passwd文件

  1. 用户的配置文件,记录用户的信息
  2. 打开以后找到的内容:lzx:x:500:500::/home/lzx:/bin/bas
  3. 含义:用户名:口令:用户id:组id:注释性描述:主目录:登录shell

②、/etc/group文件

  1. 组配置文件,记录组的信息
  2. 打开以后找到的内容:lzx:x:500:
  3. 含义:组名:口令:组id:组内用户列表

③、/etc/shadow文件

Linux学习笔记6:实用指令

一、指定运行级别

  • 要修改运行级别可以修改/etc/inittab文件中的id:5:initdefault中的数字
  • 操作题
    • 设置运行级别,使得Linux运行后进入命令行界面
      • vim /etc/inittab
      • id:5:initdefault中的5改成3
    • 找回root密码
    • Linux开启后就关机,就重启,改怎么办?

二、帮助指令

1、man

  • 用法:man 命令或配置文件
  • 例如:查看ls命令的说明---- man ls

2、help

  • 用法: help 命令
  • 例如,查看cd命令的说明--- help cd

3、面向百度更直接

三、文件目录类

1、pwd

  1. 含义:print working directory(打印当前工作目录的绝对路径)
  2. 用法:直接输入 pwd

2、ls

  1. 含义:list files
  2. 用法:
    1. ls [选项]:显示当前目录的文件和文件夹
    2. ls [选项] 路径1 :显示路径1的文件和文件夹
  3. 常用的选项有:
    1. -l,显示所有,包括隐藏的
    2. -a,以列表的形式显示

3、cd

  1. 含义:change directory
  2. 用法:cd 绝对路径或相对路径
  3. 其他常用
    1. cdcd~:回到家目录
    2. cd..回到上一级目录

4、mkdir

  1. 含义:make directory(创建目录)
  2. 用法:mkdir[选项] 要创建的目录
  3. 常用选项:-p 创建多及目录
  4. 实例:
    1. 创建一级目录:mkdir /home/hello1
    2. 创建多级目录:mkdir -p /home/hello2/aaa1

5、rmdir

  1. 含义:remove directory
  2. 用法:rmdir 要删除的空目录
  3. 注意:如果是删除非空目录:rm -rf 要删除的目录

6、touch

  1. 含义:创建 空文件
  2. 语法:
    1. touch 文件名称,创建一个
    2. touch 文件名称1 文件名称2创建多个

7、copy

  1. 含义:copy
  2. 用法:cp [选项] source dest(cp 文件source到文件夹dest下,经常使用相对路径)
  3. 常用选项:-r:递归复制整个文件夹
    1. 强制覆盖不提示的方法:\cp
  4. 这里发现了一个细节:对于文件夹,直接用名字是可以的,但是老师习惯在文件夹后面加/,这样可以很好的和文件区分开。

8、rm

  1. 含义:remove,删除文件或目录
  2. 语法:rm [选项] 要删除的文件或目录
  3. 常用选项
    1. -r,递归删除整个文件夹
    2. -f,强制删除不提示
    3. 可以组合式用,rm -rf 文件夹

9、mv

  1. 含义:move,移动文件或目录,引申功能为:重命名
  2. 语法:
    1. mv 要移动的文件 目标路径,移动
    2. mv 旧文件名 新文件名,重命名,实质也是移动

10、cat(只能浏览

  1. 含义
  2. 用法:cat [选项] 要查看的文件
  3. 常用选项
    1. -n:显示行号
  4. 实例
    1. 打开/etc/profile文件,并显示行号
  5. 细节:为方便浏览,一般会带上管道命令:| more

11、more

  1. 全屏的方式显示文本文件的内容。(加载整个文件)

  2. 用法:more 要查看的文件

  3. 快捷键

12、less

  1. 分屏的方式显示文本文件的内容(加载文件的一部分,随时加载)

  2. 语法:less 要查看的文件

  3. 快捷键

  4. 适合显示大文件,效率高

13、echo

  1. 含义:echo(回声,反射)
  2. 语法:echo 输出内容
  3. 应用
    1. 输出环境变量:echo $PATH
    2. 输出文本:echo hello

14、head

  1. 显示文件的开头部分
  2. 语法
    1. head 文件:默认显示前10行
    2. head -n5 文件:显示头5行

15、tail

  1. 含义:显示文件的结尾部分
  2. 语法:
    1. tail 文件名,默认显示后10行
    2. tail -n5 文件名,显示后5行
    3. tail -f 文件名,实时追踪该文件的所有更新

16、>和>>

  • >:输出重定向,把内容直接覆盖写入文件
  • >>:追加,把内容追加到文件的尾部
  1. 语法
    1. ls -l > 文件1:列表的内容覆盖写入到文件1(要加上隐藏的内容,就用-al
    2. ls -l >> 文件1:列表的内容追加写入到文件1尾部
    3. cat 文件1 >或>> 文件2:将文件1的内容覆盖或追加到文件2
    4. echo "内容" >或>> 文件1:将自己写的内容覆盖或追加到文件1

17、ln

  1. 含义:links(软连接)
  2. 语法:
    1. 创建:ln -s 源文件或目录 软连接名
    2. 删除:rm -rf 连接名(连接名后别带/,否则资源忙---相当于windows中的应用程序已经打开,无法删除)

18、history

  1. 含义:执行过的指令
  2. 语法:
    1. history,显示所有历史指令
    2. history 5,最近的5条记录
    3. !10,执行历史编号为10 的指令

四、时间日期类

1、显示当前日期时间

  1. 语法
    1. date
    2. date "+%Y-%m-%d %H:%M:%S",当然也可以拆开使用单独的一些

2、设置日期时间

  1. 语法:date -s "2020-02-02 11:11:11"

3、日历

  1. 语法:
    1. cal显示本月
    2. cal 2020显示2020年的日历

五、搜索查找类

1、find

  1. 含义:从指定目录向下递归的遍历其各个子目录,并显示满足条件的文件或目录
  2. 语法:find 搜索范围 [选项]
  3. 常用选项
    1. -name,按照文件名方式查找(*.txt代表查找所以的txt文件)(暂时不知道有什么鬼用,感觉多此一举)
    2. -user,按照用户名查找
    3. -size,按照文件大小查找(+代表大于,-小于,不加是等于)

2、locate

  1. 含义:快速定位文件路径。
  2. 语法:locate 要搜索的文件名
  3. 说明:
    1. 因为locate指令是基于数据库进行查询,第一次使用前必须用updatedb指令创建locate数据库
    2. 实际使用了一下,发现locate查找的是包含输入的字符的所有文件

3、grep和管道符号“|”

  1. 含义:过滤查找,“|”将前一个命令的处理结果传递给下一个命令
  2. 语法:grep [选项] 查找内容 源文件
  3. 常用选项
    1. -n,显示所在的行号
    2. -i,忽略大小写
  4. 示例:cat hello.txt | grep -ni java

六、解压缩类

1、gzip和gunzip

  1. 语法
    1. gzip 文件(①只能压缩为.gz文件;②源文件会消失)
    2. gunzip .gz文件

2、zip和unzip

  1. 用途:常用于项目打包发布
  2. 语法:
    1. zip -r 新的压缩文件名.zip 要压缩的内容,(-r是递归压缩目录)
    2. unzip -d 压缩文件名.zip(-d是存放目录)

3、tar★★★

  1. 含义:是打包指令,打包压缩后的文件名是.tar.gz文件
  2. 语法:tar [选项] 自己起名.tar.gz 打包的内容
    1. 打包压缩:tar -zcvf 自己起名.tar.gz 打包的内容
    2. 解压到当前目录:tar -zxvf a.tar.gz
    3. 解压到指定目录:tar -zxvf a.tar.gz -C /opt/(目录必须存在)

未完待续。。。

11-04 07:10