一、Linux入门

1、Linux学习方向

  • Linux嵌入式开发工程师.
  • Linux运维工程师
  • Linux下做各种程序开发

2、linux入门

  1. linux是一款操作系统,免费,开源,安全,高效,稳定,处理高并发非常强悍,很多企业级的项目都部署到linux或者unix服务器运行
  2. linux创始人是 林纳斯 linus
  3. linux吉祥物 是一只企鹅,名字叫 TUX [燕尾服]
  4. linux主要的发行版:Centos,redhat 红帽,Ubuntu,红旗Linux,Suse
    1. linux是一个内核,很多厂商在内核上面添加了很多应用软件

3、Linux安装

学习linux需要一个环境,创建一个虚拟机,然后在虚拟机上安装一个Centos系统来学习

  1. 先安装vm 虚拟机
  2. 再安装Linux Centos
  3. 详细下载内容查看百度


    centos终端使用和联网
    终端: 鼠标右键——>终端
    跟换配色:编辑——>首选项
    联网:右上角网络按钮 点击联网

安装vmtools

  1. 可以直接粘贴命令再windows和centos系统之间
  2. 可以设置windows和centos的共享文件夹

为了实现上述效果,下载vmtools+

4、共享文件夹设置

左上角,虚拟机 ——> 设置——->选项 ——>共享文件夹

5、共享文件夹在centos中的位置

计算机——>文件系统 ——> mnt ——>hgfs——-共享文件夹

二、Linux目录结构

指令
Reboot重新启动centos

1、linux目录:

/ 根目录 (根目录只有一个)
—— bin 常用指令
—— home
—— root
—— boot
—— dev 管理设备,把硬件映射成文件来管理
—— etc 存放配置文件
—— home 用户文件
—— lib 静态库
—— …
像一颗倒栽的树一样,根在最上面
在linux世界里,一切皆文件

总结:**

  1. linux的目录中有且只有一个根目录
  2. linux的各个目录存放的内容都是规划好的,不要乱放
  3. linux是以文件的形式管理我们的设备,因为 linux世界里 一切皆为文件
  4. linux的文件目录下存放什么内容,必须有一定的了解

2、具体的目录结构

未命名图片.png
未命名图片.png

三、远程登陆

为什么需要远程登录到linux?

  1. linux服务器都在机房里面,而你的电脑上没有linux,你需要远程登录到机房的linux才能对服务器进行维护
  2. 使用最多的一款远程登录工具的是 xshell6
  3. 远程上传和下载的软件 xftp5

1、安装xshell6(远程操作linux)

安装之前先看看linux有没有启动sshd服务

  • 查看—->终端——>setup——->系统服务——->找到sshd 前面是*号标识 启动了 【会监听22号端口,让别人来远程登录的,远程访问的】

查询linux ip地址 ifconfig
根据右边图片傻瓜式连接 然后输入用户名和密码
未命名图片.png

2、安装完之后

如果在连接中输入reboot 重启指令后,机房里面的linux会重启,因为这是远程操作
所以说 你可以在这个xshell6的命令行界面 操作机房里面的linux服务器

四、vi和vim编辑器

1、什么是vi 和 vim

  • 所有的linux系统里都会内置vi文本编辑器
  • vim具有编程逻辑的能力,可以看作是vi的增强版本,可以主动的以字体颜色辨别语法的正确性

    2、vi和vim的三种常见模式

  1. 正常模式
    • 当使用vim打开一个文档就能直接进入一般模式了,在正常模式下可以使用快捷键
  2. 插入模式/编辑模式
    • 按下 i I o O a A r R 等任何一个字母后才会进入编辑模式,一般来说按i就行
  3. 命令行模式
    • 在这个模式中,可以提供你相关的指令,读取,存盘,替换。。。。。

3、快速入门案例

使用vim开发一个hello.java

  1. 在xshell6里面 输入 vim Hello.java
  2. 输入一个 i 进入插入模式
  3. 编写代码
  4. 按一下 esc【进入命令行模式】
  5. 输入冒号 : 输入命令 wq【w代表写 ,q代表退出(保存并退出)】
    • **:wq** 保存 并退出
    • **:q** 不保存 退出 【打开看一眼,不做任何修改才能用q】
    • **:q!** 强制退出【虽然修改了,但是我不保存你的修改】

3.1 Vi 和 vim模式相互转换

未命名图片.png

4、vi和vim下的快捷键

【都是在正常模式使用, 在按下esc后】

4.1 文本中操作【正常模式】

  • yy—————-复制一行
  • 5yy—————把光标下面的5行都复制了
  • p ——————— 粘贴一份
  • dd——————- 删除一行
  • 5dd——————-删除5行
  • gg最首行 G最末行
  • u —————撤销
  • Shift + g————-下移20行

4.2 命令行中操作

  • 命令行:/关键字 ————查找 再按 n 下一个
  • 命令行::set nu 这是行号, : set nonu 取消行号

五、开机/重启/用户登录/注销

1、关机&重启命令

**shutdown**关机

  • shutdown -h now 表示立即关机
  • shutdown -h 1 表示一分钟过后关机
  • shutdown -r now 表示立即重启


    **halt**停机==关机
    halt 直接使用 效果等价于关机

    **reboot**
    重启机器

    **sync**
    把内存的东西同步到磁盘上,防止数据丢失
    【执行后看不到效果,建议关机或者重启前使用一下】

    2、用户的登录和注销

  1. 在登录时,尽量少使用root账号,最高的权限,避免操作失误
  2. 登录后再使用 su 用户名 指令来切换成系统管理员身份
  3. 在提示符下输入 logout 即可注销用户 【退出用户】

注意
logout在图形运行级别是不管用的,在xshell可以

六、用户管理

1、基本介绍

  • linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须向系统管理员申请一个账号,然后以这个账号的身份进入系统
  • linux的用户只要属于一个组 【linux是用组来管理用户的权限的】

未命名图片.png
添加用户
基本语法:useradd 选项 用户名

2、案例

  1. 添加一个用户小明
  2. 在root用户下的终端中 输入 useradd xiaoming

【如果没有指定放在哪个组,那么就会创建一个和xiaoming同名的组,并且将xiaoming放到xiaoming组里面】

  1. 使用 cd /home 就可以切换到home文件夹下,ll 就可以查看到新建的用户
  2. passwd 用户名 指定密码

细节:

  • 当用户创建成功后,会自动创建和用户名同名的家目录
  • 也可以通过 useradd -d /指定目录 /新目录 新的用户名, 给创建的用户指定家目录

未命名图片.png

3、用户类指令

3.1 指定/修改密码【root用户才行】

passwd 用户名

  • 在工作中密码一定要复杂点
  • 在设置密码时,界面是看不到密码的输入的。

    3.2 删除用户 【root用户才行】

  • **userdel 用户名** 仅删除用户 但保留home目录

  • **userdel -r 用户名** 删除用户名 和home目录,【一般不会把 home目录删掉 】

    3.2 查询用户信息

  • **id 用户名** 查询用户信息

  • 当用户不存在时,返回 无此用户 信息
  • 未命名图片.png

    3.3 切换用户

  • 在操作的时候,如果当前用户的权限不够,可以通过su 指令 来切换到高权限用户 比如root

  • **su root** 切换到root用户
  • 高权限用户 切换到 低权限用户时 不需要输入密码 。高—>低 需要密码
  • 回到上一次的用户权限 **exit**

    3.4 查看当前是哪个用户

  • whoami

4、用户组指令

类似于角色,系统可以对有共性的多个角色进行统一的管理
新增组
**groupadd 组名**
未命名图片.png
删除组
**groupdel 组名**

增加一个用户时,直接加上组
`
useradd -g 用户`组 用户名

修改用户的组
usermod -g 用户组 用户名
usermod -d 目录名 用户名 【改变用户登录的初始目录】
未命名图片.png
未命名图片.png
用户和组的三个相关文件

  • 用户信息会放到**/etc/passwd **文件中【配置文件】
    • 每行的含义: 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
  • 组信息放到 **/etc/group** 文件中【配置文件】
    • 每行的含义:登录名:加密口令:最后一次的修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
  • 口令信息放到 **/etc/shadow** 【配置文件 存放用户密码的】
    • 每行含义:组名:口令:组标识号:组内用户列表