Linux学习笔记

Linux学习

文章目录

  • Linux学习
    • 1、Linux简介
      • 1.1 Linux和Windows区别
      • **1.2 Linux安装**
      • **1.3 GNU/bash**
        • **1.3.1 Shell介绍**
        • 1.3.2 Shell语法
        • 1.3.3 bash基本特性
        • 1.3.4 Linux获得帮助
    • 2、Linux文件管理
      • 2.1 Linux目录结构
      • 2.2 Linux文件路径
      • 2.3 Linux文件管理
        • 2.3.1 **文件创建、复制、移动、删除**
        • 2.3.2 **文件查看**
        • 2.3.3 vi编辑器
          • >命令模式
          • >插入模式
          • >扩展命令模式
      • 2.4 Linux文件时间
      • 2.5 Linux文件类型
    • 3、Linnx用户管理
      • 3.1 用户组基本概念

1、Linux简介

1.1 Linux和Windows区别

Linux和我们常见的Windows一样,都是操作系统,但不同的是:

Windows:收费的,不开源的,主要用于日常办公、邮箱、娱乐等。

Linux:免费的,开源的,主要用于服务器领域,性能稳定,安全。

1.2 Linux安装

使用VMware安装(以Centos为例)

软件选择(默认最小安装)

按照提示一步一步安装,在选择software时,默认是MInimal最小化安装,如要图形界面,需选择Gnome Desktop安装。

分区(可选)

默认为系统自动分区,如要手动分区,选择手动分区按钮。

一般手动分区有,/(根分区,容量较大), /boot,swap(内存不足时会使用交换机分区), /home等等,分区时默认文件系统为xfs。Linx至少有一个/根分区。

Kdump(黑匣子 可选)

LInux出现问题时存储对应内核问题信息。一般选择关闭,避免占用内存空间。

网卡及主机名配置(可选)

打开网卡连接,配置对应地址。配置对应主机名。

密码设置

设置对应root及用户密码。

1.3 GNU/bash

1.3.1 Shell介绍

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。

我们可以使用shell实现对Linux系统的大部分管理,例如:

  1. 文件管理

  2. 用户管理

  3. 权限管理

  4. 磁盘管理

  5. 软件管理

  6. 网络管理

使用Shell的两种方式:

输入命令 效率低 适合少量的工作

Shell Script 效率高 适合完成复杂、重复性高的工作

1.3.2 Shell语法

命令 选项 参数

ls -la /home

命令:整条Shell命令的主体

选项:会影响命令的行为,通常微调

参数:命令作用的对象

1.3.3 bash基本特性

  1. 自动补全

    # ls /etc/sysconfig/network-scripts/

    # cat /etc/sysconfig/network-scripts/ifcfg-eth0

  2. 快捷键

    ^表示 Ctrl

    ^C 终止前台运行的程序 。例如终止ping

    ^D 推出 等价exit

    ^L 清屏

    ^A 光标移动到命令行的最前端

    ^E 光标移动到命令行的后端

    ^U 删除光标前所有字符

    ^K 删除光标后所有字符

    ^R 搜索历史命令,利用关键词

    Alt+. 引用上一个命令的最后一个参数,等价于!$

    ESC . 引用上一个命令的最后一个参数,等价于!$
    # ls /etc/sysconfig/network-scripts/

    # cat !$ 或者 cat Alt+. 或者cat ESC .

    等价于# cat /etc/sysconfig/network-scripts/

  3. 历史命令

    #history

    a.光标上下键显示历史命令

    b.^R (搜索历史命令)

    c. ! 66 ( ! 表示执行历史中的第几条命令,)

    ​ ! 字符串 ( 搜索历史命令中最近一个以xxx开头的命令)

    ​ !$ (引用上一个命令的最后一个参数)

  4. 命令别名

    #alias //查看系统当前别名

    ll=‘ls -l --color=tty’

    # alias wangka=‘cat /etc/sysconfig/network-scripts/ifcfg-ens-33’ //建立别名(临时的,仅在当前Shell生效)

    # unalias wangka //取消别名

    #\alias //跳过别名

    #cp -rf /etc /tmp

    #\cp -rf /etc /tmp

    建立永久别名:

    修改/etc/skel/.bashrc文件,如果想只给某一个用户设置这个别名,就只修改那个用户的家目录下的.bashrc文件。(该文件为shell配置文件,打开shell 时生效)
    在.bashrc文件中添加一行:

    alias <别名>=’<命令>’

    修改完成后刷新

    source /etc/skel/.bashrc

1.3.4 Linux获得帮助

  1. 命令 --help

    #ls --help

  2. man手册

2、Linux文件管理

2.1 Linux目录结构

Windows:以多根的方式组织文件 C:\ D:\ E:\

Linux: 以单根的方式组织文件 /
Linux学习笔记_第1张图片

2.2 Linux文件路径

绝对路径: 从/开始的路径 /home/alice/file1

相对路径: 相对于当前目录开始 a.txt ./a.txt [假如:此时在目录/home/alice]

绝对路径示例:

# useradd alice

# touch /home/alice/file1

# touch ~/file2

# touch ~alice/file3

相对路径示例:

# pwd /root

# mkdir abc

# touch …/file3

# touch file4

# touch abc/file5

cd 专用:

cd - 返回上次目录

cd 直接回家

2.3 Linux文件管理

2.3.1 文件创建、复制、移动、删除

====创建

文件touch

# touch file.txt //无则创建,有则修改时间

# touch file1.txt file2.txt

# touch /home/file3.txt file4.txt

# touch file{1…20}

# touch file{a,b,c} //{}集合,等价 touch filea fileb filec

目录mkdir

# mkdir dir1 //名称相同则报错

# mkdir /home/{dir2,dir3}

# mkdir -v /home/dir4 //显示详细信息

# mkdir -pv /test/adf/ad //-p,创建包括其父路径

====复制cp

# cp -v anaconda-ks.cfg /home/dir1 //目录

# cp -v anaconda-ks.cfg /home/dir1/yang.txt //文件

# cp -rv /etc /home/dir1

# cp -rv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/passwd /etc/hostname /home/dir2 //将多个文件拷贝到同一个目录

# cp -rf /etc /tmp

====移动mv

# mv file1 /home/dir3 //将 file2 移动到/home/dir3

# mv file2 /home/dir3/file20 //将 file2 移动到/home/dir3,并改名为 file20

# mv file4 file5 //将 file4 重命名为 file5,当前位置的移动就是重命名

====删除rm

# rm -rf dir1 //尽量进入到相对目录下在进行删除

-r 递归

-f force 强制

-v 详细过程

脚本删除: /home/dir1

rm -rf /home/dir1 //脚本删除使用绝对路径

2.3.2 文件查看

====文本文件 (cat tac less more head tail tailf grep …)

cat

-n 显示行号

-A 包括控制字符(换行符/制表符) linux $ Windows ^M$

less more head tail tailf

# tail -20 /var/log/messages

# tail -f /var/log/secure //-f 动态查看文件的尾部

注:vim, gedit 编辑文件时,索引号会改变

grep 针对文件内容进行过滤

# grep ‘root’ /etc/passwd

# grep ‘bash$’ /etc/passwd //过滤以bash结尾的内容

2.3.3 vi编辑器

工作模式:

命令模式、

插入模式、

扩展命令模式。

>命令模式

a. 光标定位

hjkl //上下左右

0 $ //行首 、行尾

gg G //文件行首、行尾

3G 进入第三行

/string (n N 可以循环的) 快速定位到某一行

/^d //查找行首为d开头

/txt$ //查找行尾为txt结束

b. 文本编辑(少量)

y 复制 yy 3yy ygg yG (以行为单位)

d 删除 dd 3dd dgg dG (以行为单位)

p 粘贴

x 删除光标所在的字符

D 从光标处删除到行尾

u undo 撤销

^r redo 重做

r 可以用来修改一个字符

c. 进入其它模式

a 进入插入模式

i 进入插入模式

o 进入插入模式

A 进入插入模式
进入末行模式(扩展命令模式)

v 进入可视模式

^v 进入可视块模式

V 进入可视行模式

R 进入替换模式

>插入模式

可视块模式:

块插入(在指定块前加入字符): 选择块^v ,光标选择块,输入I,在块前插入字符, ESC

块替换: 选择块,r 输入替换的字符

块删除: 选择块,d | x

块复制: 选择块,y

>扩展命令模式

a. 保存退出、

:10 进入第 10 行

:w 保存

:q 退出

:wq 保存并退出

:w! 强制保存

:q! 不保存并退出

:wq! 强制保存退出

:x 保存并退出 等价于ZZ

b. 查找替换

:范围 s/old/new/选项 先写 : s/ / / 这里的/可以理解为在/之间的字符,/可以换成其他,例如@,#

:1,5 s/root/yang/ 从 1-5 行的 root 替换为 yang

:5,$ s/root/yang/ $表示最后一行

:1,$ s/root/yang/g == :% s/root/yang/g %表示全文 g 表示全局(一行匹配的所有对象)

:% s#/dev/sda#/var/ccc#g 此处将/dev/sda替换成/var/ccc

:,8 s/root/yang/ 从当前行到第 8 行

:4,9 s/^#// 4-9行的开头#替换为空

:5,10 s/.*/#&/ 5-10行前加入#字符 (.*整行, &引用查找的内容)

c. 读入文件/写文件(另存为)

:w 存储到当前文件

:w /tmp/aaa.txt 另存为/tmp/aaa.txt

:1,3 w /tmp/2.txt

:r /etc/hosts 读入文件到当前行后

:5 r /etc/hosts 读入文件到第 5 行后

d. 设置环境

临时设置:

:set nu 设置行号

:set ic 不区分大小写

:set ai 自动缩进

:set list 显示控制字符

:set nonu 取消设置行号

:set noic

永久的环境: 修改 vim 环境配置文件

/etc/vimrc 影响所有系统用户

~/.vimrc 影响某一个用户

# vim ~/.vimrc

set ic

set nu

2.4 Linux文件时间

Linux 文件有四种时间:

# stat /etc/hostname //查看文件的详细属性

访问时间:atime,查看内容 //RHEL6 会延后修改 atime

修改时间:mtime,修改内容

改变时间:ctime,文件属性,比如权限

删除时间:dtime,文件被删除的时间

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UwuRLr9y-1633062277451)(C:\Users\zengyan\AppData\Roaming\Typora\typora-user-images\image-20211001105048002.png)]

2.5 Linux文件类型

查看文件类型

方法1: ls -l 文件名 //看第一个字符

  • – 普通文件(文本文件,二进制文件,压缩文件,电影,图片。。。)
  • d 目录文件(蓝色)
  • b 设备文件(块设备)存储设备硬盘,U 盘 /dev/sda, /dev/sda1
  • c 设备文件(字符设备)打印机,终端 /dev/tty1, /dev/zero
  • s 套接字文件
  • p 管道文件
  • l 链接文件(淡蓝色)

方法2. file 文件名

[zengyan@localhost ~]$ file /etc/hosts

/etc/hosts: ASCII text

3、Linnx用户管理

3.1 用户组基本概念

Linux学习笔记_第2张图片

Users and groups:

. Every process (running program) on the system runs as a particular user.

系统上的每个进程(运行的程序)都是作为特定用户运行的

. Every file is owned by a particular user.

每个文件是由一个特定的用户拥有

. Access to files and directories are restricted by user.

访问文件和目录受到用户的限制

. The user associated with a running process determines the files and directories accessible to that process.

与正在运行的进程相关联的用户确定该进程可访问的文件和目录

查看当前登录的用户信息:

[root@tianyun ~]# id

uid=0(root) gid=0(root) groups=0(root)

查看文件的 owner:

[root@tianyun ~]# ll /home/

drwx------. 4 alice alice 4096 Jun 2 15:59 alice

drwxr-xr-x 2 root root 4096 Jun 2 15:33 tianyun

和用户组相关的一些文件:

/etc/passwd

root​:x:0:0:root:/root:/bin/bash
用户名 :x:uid:gid:描述 :HOME家目录:shell //x 密码占位符,hoem用户家目录,shell的使用

/etc/shadow

root: 1 1 1MYG2NDG6$a1wtyr5GDM2esAPjug0YP0:15636:0:99999:7:: : //密码信息

/etc/group

root:x:0: //组信息

[root@localhost ~]# man 5 passwd

[root@localhost ~]# man 5 shadow

加密算法$id:

$1: MD5

$5: SHA-256

$6: SHA-512

系统约定: centos6

uid: 0 特权用户

uid: 1~499 系统用户

uid: 500+ 普通用户

[root@tianyun ~]# ll /home/

drwx------. 4 alice alice 4096 Jun 2 15:59 alice

drwxr-xr-x 2 root root 4096 Jun 2 15:33 tianyun

和用户组相关的一些文件:

/etc/passwd

root​:x:0:0:root:/root:/bin/bash
用户名 :x:uid:gid:描述 :HOME家目录:shell //x 密码占位符,hoem用户家目录,shell的使用

/etc/shadow

root: 1 1 1MYG2NDG6$a1wtyr5GDM2esAPjug0YP0:15636:0:99999:7:: : //密码信息

/etc/group

root:x:0: //组信息

[root@localhost ~]# man 5 passwd

[root@localhost ~]# man 5 shadow

加密算法$id:

$1: MD5

$5: SHA-256

$6: SHA-512

系统约定: centos6

uid: 0 特权用户

uid: 1~499 系统用户

uid: 500+ 普通用户

你可能感兴趣的:(Linux学习,linux,centos)