linux学习笔记

linux学习笔记

VI/VIM编辑器

一般模式

以 vi 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。

常用语法
  • yy (功能描述:复制光标当前一行)

​ y数字y/数字yy (功能描述:复制一段(从第几行到第几行))

  • p (功能描述:箭头移动到目的行粘贴)

  • u (功能描述:撤销上一步)

  • dd (功能描述:删除光标当前行)

    d数字d (功能描述:删除光标(含)后多少行)

  • x (功能描述:删除一个字母,相当于del)

​ X (功能描述:删除一个字母,相当于Backspace)

  • yw (功能描述:复制一个词)
  • dw (功能描述:删除一个词)
  • shift+^ (功能描述:移动到行头)
  • shift+$ (功能描述:移动到行尾)
  • 1+shift+g (功能描述:移动到页头,数字)
  • shift+g (功能描述:移动到页尾)
  • 数字N+shift+g (功能描述:移动到目标行)

编辑模式

在一般模式中可以进行删除、复制、贴上等等的动作,但是却无法编辑文件内容的! 要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。

注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现『INSERT 或 REPLACE 』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。

常用语法
  1. 进入编辑模式
  • i 当前光标前
  • a 当前光标后
  • o 当前光标行的下一行
  1. 退出编辑模式

​ 按『Esc』键

指令模式

在一般模式当中,输入『 : / ?』3个中的任何一个按钮,就可以将光标移动到最底下那一行。在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的!

常用语法
  1. 基本语法

​ 选项:

  • w 保存
  • q 退出
  • ! 感叹号强制执行
  • / 查找,/被查找词,n是查找下一个,shift+n是往上查找
  • ? 查找,?被查找词,n是查找上一个,shift+n是往下查找
  • set nu 显示行号
  • set nonu 取消行号

文件目录类

1.pwd显示当前工作目录的绝对路径

  • 基本语法 : pwd(功能描述:显示当前工作目录的绝对路径)

2.ls列出目录的内容

  • 基本语法:ls [选项] [目录或是文件]

  • 选项:

    -a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)

    -l :长数据串列出,包含文件的属性与权限等等数据;(常用)

每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大小用byte来表示 建立或最近修 改的时间 名字

[remote@lhbadmin ~]$ ls -al
总用量 6408
drwx------. 16 remote remote    4096 2月   5 11:24 .
drwxr-xr-x.  5 root   root        44 1月   2 22:45 ..
-rw-r--r--.  1 root   root   6506410 1月  30 23:35 6381.log
-rw-------.  1 remote remote     253 2月   3 14:35 .bash_history
-rw-r--r--.  1 remote remote      18 4月   1 2020 .bash_logout
-rw-r--r--.  1 remote remote     193 4月   1 2020 .bash_profile
-rw-r--r--.  1 remote remote     231 4月   1 2020 .bashrc
drwx------. 20 remote remote    4096 1月  16 17:28 .cache
drwxr-xr-x. 17 remote remote    4096 1月  17 19:56 .config
drwx------.  3 remote remote      25 12月 14 14:38 .dbus
-rw-r--r--.  1 root   root       175 1月  18 20:10 dump6381.rdb
-rw-------.  1 remote remote      16 12月 14 14:38 .esd_auth
-rw-------.  1 remote remote    2794 2月   3 14:38 .ICEauthority
drwx------.  3 remote remote      19 12月 14 14:38 .local
drwxr-xr-x.  6 remote remote      81 1月   3 16:34 .mozilla
drwxrwxr-x   3 remote remote      15 2月   5 11:24 test
-rw-------   1 remote remote    1289 2月   5 11:02 .viminfo
-rw-------   1 remote remote     108 2月   5 11:00 .Xauthority
drwxr-xr-x.  2 root   root         6 12月 14 14:38 公共

3.mkdir创建一个新的目录

  • 基本语法:mkdir [-p] 要创建的目录

​ 选项:-p:创建多层目录

  • 案例:

    mkdir test
    mkdir -p user/test
    

4.rmdir删除一个空的目录

  • 基本语法:rmdir 要删除的空目录
  • 案例
rmdir test

5.rm移除文件或目录

基本语法:

- rmdir deleteEmptyFolder 功能描述:删除空目录
- rm -rf deleteFile  功能描述:递归删除目录中所有内容
rm -f redis.conf 删除文件

案例

1)删除空目录:[root@hadoop106 opt]# rmdir test

2)递归删除目录中所有内容: [root@hadoop106 opt]# rm -rf test1

6.touch创建空文件

  • 基本语法:touch 文件名称

  • 案例:

    touch test.java
    

7.mv 移动文件与目录或重命名

  • 基本语法:

​ 1. mv oldNameFile newNameFile (功能描述:重命名)

​ 2. mv /temp/movefile /targetFolder (功能描述:移动文件)

  • 案例:

    1. 重命名:

      mv test.java test1.java
      
  1. 移动文件

    mv test1.java  test1
    

8.cp 复制文件或目录

  • 基本语法:
  1. cp source dest(功能描述:复制source文件到dest)
  2. cp -r sourceFolder targetFolder(功能描述:递归复制整个文件夹)
  • 案例
  1. 复制文件

    cp test.java test
    
  2. 递归复制整个文件夹

     cp -r test test1
    
    

9.cd 切换目录

  • 基本语法:

​ 1. cd 绝对路径

​ 2. cd 相对路径

​ 3. cd ~或者cd(功能描述:回到自己的家目录)

​ 4. cd -(功能描述:回到上一次所在目录)

​ 5. cd … (功能描述:回到当前目录的上一级目录)

6. cd -P(功能描述:跳转到实际物理路径,而非快捷方式路径)

10.cat 查看文件内容

​ 查看文件内容,从第一行开始显示。

  • 基本语法

​ cat [选项] 要查看的文件

​ 选项:

​ -A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已(包括空行的$);

​ -b :列出行号,空白行不标行号,但是会显示空行!

​ -E :将结尾的断行字节 $ 显示出来(包括空行的$);

​ -n :列出行号,连同空白行也会有行号,与 -b 的选项不同;

​ -T :将 [tab] 按键以 ^I 显示出来;

​ -v :列出一些看不出来的特殊字符

  • 案例

    [atguigu@hadoop101 ~]$ cat -A test.txt 
    hellda $
    dasadf ^I$
    da^I^I^I$
    das$
    
    

11.tac查看文件内容

查看文件内容,从最后一行开始显示,可以看出 tac 是 cat 的倒著写。

  • 基本语法:

​ tac [选项参数] 要查看的文件

  • 参数

    -b, --before 在行前而非行尾添加分隔标志
    -r, --regex 将分隔标志视作正则表达式来解析
    -s, --separator=字符串 使用指定字符串代替换行作为分隔标志

  • 案例

[root@hadoop106 test1]# cat test1.java 
hello
atguigu
atguigu1

12.more 查看文件内容

查看文件内容,一页一页的显示文件内容。

  • 基本语法:

    more 要查看的文件

  • 功能使用说明

    空白键 (space):代表向下翻一页;

    Enter:代表向下翻『一行』;

    q:代表立刻离开 more ,不再显示该文件内容。

    Ctrl+F 向下滚动一屏

    Ctrl+B 返回上一屏

    = 输出当前行的行号

    :f 输出文件名和当前行的行号

  • 案例

    [root@hadoop106 test1]# more test1.java
    
    

13. less 查看文件内容

less 的作用与 more 十分相似,都可以用来浏览文字档案的内容,不同的是 less 允许使用[pageup] [pagedown]往回滚动。

  • 基本语法:

    ​ less 要查看的文件

  • 功能使用说明

    空白键 :向下翻动一页;

    [pagedown]:向下翻动一页;

    [pageup] :向上翻动一页;

    /字串 :向下搜寻『字串』的功能;n:向下查找;N:向上查找;

    ?字串 :向上搜寻『字串』的功能;n:向上查找;N:向下查找;

    q :离开 less 这个程序;

  • 案例

    [root@hadoop106 test1]# less test1.java
    
    

14.head查看文件内容

查看文件内容,只看头几行。

  • 基本语法

    head -n 10 文件 (功能描述:查看文件头10行内容,10可以是任意行数)

  • 案例

    [root@hadoop106 test1]# head -n 2 test1.java
    
    

15. tail 查看文件内容

查看文件内容,只看尾巴几行。

  • 基本语法

    tail -n 10 文件 (功能描述:查看文件头10行内容,10可以是任意行数)

    tail –f 文件 (功能描述:实时追踪该文档的所有更新)

  • 案例

    1. 查看文件头1行内容
    [root@hadoop106 test1]# tail -n 1 test1.java 
    
    
    1. 实时追踪该档的所有更新
    [root@hadoop106 test1]# tail -f test1.java
    
    

16.man获得帮助信息

man 获得帮助信息

  • 基本语法:

    man [命令或配置文件] (功能描述:获得帮助信息)

  • 案例

[root@hadoop106 home]# man ls

LS(1)                                                                   General Commands Manual                                                                  LS(1)

NAME
       ls, dir, vdir - 列目录内容

提要
       ls [选项] [文件名...]

       POSIX 标准选项: [-CFRacdilqrtu1]

GNU 选项 (短格式):
       [-1abcdfgiklmnopqrstuxABCDFGLNQRSUX]   [-w   cols]   [-T   cols]   [-I  pattern]  [--full-time]  [--format={long,verbose,commas,across,vertical,single-column}]
       [--sort={none,time,size,extension}] [--time={atime,access,use,ctime,status}] [--color[={none,auto,always}]] [--help] [--version] [--]

描述( DESCRIPTION )
       程序ls先列出非目录的文件项,然后是每一个目录中的“可显示”文件。如果  没有选项之外的参数【译注:即文件名部分为空】出现,缺省为  "."   (当前目录)。   选项“   -d
       ”使得目录与非目录项同样对待。除非“ -a ” 选项出现,文 件名以“.”开始的文件不属“可显示”文件。

       以当前目录为准,每一组文件(包括非目录文件项,以及每一内含文件的目录)分        别按文件名比较顺序排序。如果“       -l       ”选项存在,每组文件前显示一摘要行:
       给出该组文件长度之和(以 512 字节为单位)。

       输出是到标准输出( stdout )。除非以“ -C ”选项要求按多列输出,输出 将是一行一个。然而,输出到终端时,单列输出或多列输出是不确定的。可以分别 用选项“ -1 ” 或“ -C
       ”来强制按单列或多列输出。

       -C     多列输出,纵向排序。

       -F     每个目录名加“ / ”后缀,每个 FIFO 名加“ | ”后缀, 每个可运行名加“ * ”后缀。

       -R     递归列出遇到的子目录。

       -a     列出所有文件,包括以 "." 开头的隐含文件。

       -c     使用“状态改变时间”代替“文件修改时间”为依据来排序 (使用“ -t ”选项时)或列出(使用“ -l ”选项时)。

17.help 获得shell内置命令的帮助信息

  • 基本语法:

    help 命令 (功能描述:获得shell内置命令的帮助信息)

  • 案例:

    [remote@lhbadmin ~]$ help cd
    cd: cd [-L|[-P [-e]]] [dir]
        Change the shell working directory.
        
        Change the current directory to DIR.  The default DIR is the value of the
        HOME shell variable.
        
        The variable CDPATH defines the search path for the directory containing
        DIR.  Alternative directory names in CDPATH are separated by a colon (:).
        A null directory name is the same as the current directory.  If DIR begins
        with a slash (/), then CDPATH is not used.
        .................
    
    

18.> 指令 和 >> 指令

指 令 和 >> 指 令

> 输出重定向 : 会将原来的文件的内容覆盖

>> 追加: 不会覆盖原来文件的内容,而是追加到文件的尾部

  • 基本语法

    1.ls -l > 文件名(功能描述:列表的内容写到文件中,覆盖写)

    [remote@lhbadmin ~]$ ls -l >a.txt
    [remote@lhbadmin ~]$ ls -al /home >a.txt //将/home目录下的整体复制
    
    

    2.ls -al >>文件名(功能描述:列表的内容追加到文件 aa.txt 的末尾)

    [remote@lhbadmin ~]$ ls -la >>a.txt
    
    

    3.cat 文件名1 > 文件2(功能描述:将文件 1 的内容覆盖到文件 2)

    [remote@lhbadmin ~]$ cat a.txt >b.txt
    
    

    4.echo “内容” >>c.txt

    [remote@lhbadmin ~]$ echo "sadsasadsadsa你好sdsadas" >>c.txt
    
    

19.echo 指令

echo 输出内容到控制台。

  • 基本语法

    echo [选项] [输出内容]

  • 应用实例

    用echo输出环境变量

    [root@lhbadmin remote]# echo $PATH
    /usr/local/bin:/usr/bin:/usr/local/mysql/bin:/usr/local/sbin:/usr/sbin:/home/remote/.local/bin:/home/remote/bin
    
    

20.ln 指令

软链接也叫符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径

  • 基本语法

    ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)

  • 应用实例

    案例 1: 在/home 目录下创建一个软连接 linkToRoot,连接到 /root 目录

    In -s /root linToRoot //用pwd查看linkToRoot所在的目录时仍然时软连接所在目录
    
    

    案例 2: 删除软连接 linkToRoot

    rm -rf linkToRoot //删除时linkToRoot后面不要带斜杠
    
    

21.history 指令

查看已经执行过历史命令,也可以执行历史指令

  • 基本语法

    history(功能描述:查看已经执行过历史命令)

    history 10 显示最近执行过的10个指令

    [root@lhbadmin remote]# history
    	1  sudo passwd root
        2  su
        3  ll
        4  pwd
        5  cd /opt
        6  cd.
        7  cd
        8  cd /user.local/bin
        9  cd /user/local/bin
       10  cd /usr/local/bin
       11  ll
    [root@lhbadmin remote]# !4 //执行编号为4的指令
    pwd
    /home/remote
    
    

22.date 指令-显示当前日期

  • 基本语法

    1. date (功能描述:显示当前时间)
    2. date +%Y (功能描述:显示当前年份)
    3. date +%m (功能描述:显示当前月份)
    4. date +%d (功能描述:显示当前是哪一天)
    5. date +%Y%m%d date +%Y/%m/%d … (功能描述:显示当前年月日各种格式 )
    6. date “+%Y-%m-%d %H:%M:%S” (功能描述:显示年月日时分秒)

    2)案例

    [root@lhbadmin remote]# date
    2021年 02月 22日 星期一 21:52:18 CST
    [root@lhbadmin remote]# date +%Y%m%d
    20210222
    [root@lhbadmin remote]# date "+%Y-%m-%d %H:%M:%S"
    2021-02-22 21:52:58
    
    

23.date显示非当前时间

  • 基本语法:
    1. date -d ‘1 days ago’ (功能描述:显示前一天日期)
    2. date -d yesterday +%Y%m%d (同上)
    3. date -d next-day +%Y%m%d (功能描述:显示明天日期)
    4. date -d ‘next monday’ (功能描述:显示下周一时间)

2)案例:

[root@lhbadmin remote]# date -d '1 days ago'
2021年 02月 21日 星期日 21:55:46 CST
[root@lhbadmin remote]# date -d next-day +%Y%m%d
20210223
[root@lhbadmin remote]# 
[root@lhbadmin remote]# date -d 'next monday'
2021年 03月 01日 星期一 00:00:00 CST

24.date设置系统时间

  • 基本语法:

​ date -s 字符串时间

  • 案例

    ~~~shell
    
    

    [root@hadoop106 /]# date -s “2017-06-19 20:52:18”
    ~~~

25.cal查看日历

  • 基本语法:

    cal [选项] (功能描述:不加选项,显示本月日历)

  • 选项:

    -3 ,显示系统前一个月,当前月,下一个月的日历 eg:cal -3

    具体某一年,显示这一年的日历。eg:cal 2016

2)案例:

[root@hadoop106 /]# cal
[root@hadoop106 /]# cal -3
[root@hadoop106 /]# cal 2016

26.find 查找文件或者目录

  • 基本语法:

​ find [搜索范围] [匹配条件]

  • 案例

(1)按文件名:根据名称查找/目录下的filename.txt文件。

[root@hadoop106 ~]# find /opt/ -name *.txt

(2)按拥有者:查找/opt目录下,用户名称为-user的文件

[root@hadoop106 ~]# find /opt/ -user atguigu

(3)按文件大小:在/home目录下查找大于200m的文件(+n 大于 -n小于 n等于)

[root@hadoop106 ~]find /home –size +204800

27.grep 在文件内搜索字符串匹配的行并输出

grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。

  • 基本语法

    grep+参数+查找内容+源文件

  • 参数:

    -c:只输出匹配行的计数。

    -i:不区分大小写(只适用于单字符)。

    -h:查询多文件时不显示文件名。

    -l:查询多文件时只输出包含匹配字符的文件名。

    -n:显示匹配行及行号。

    -s:不显示不存在或无匹配文本的错误信息。

    -v:显示不包含匹配文本的所有行。

  • 案例

    请在 a.txt 文件中,查找"remote"所在行,并且显示行号

[root@lhbadmin remote]# cat a.txt | grep -n remote
3:-rw-rw-r--  1 remote remote       0 2月  22 21:03 a.txt
13:drwx------. 15 remote remote    4096 2月  22 21:03 .
16:-rw-rw-r--   1 remote remote     596 2月  22 21:03 a.txt
[root@lhbadmin remote]# cat a.txt | grep -ni remote
3:-rw-rw-r--  1 remote remote       0 2月  22 21:03 a.txt
13:drwx------. 15 remote remote    4096 2月  22 21:03 .
16:-rw-rw-r--   1 remote remote     596 2月  22 21:03 a.txt
17:-rw-------.  1 remote remote    1001 2月  19 11:27 .bash_history
18:-rw-r--r--.  1 remote remote      18 4月   1 2020 .bash_logout
19:-rw-r--r--.  1 remote remote     193 4月   1 2020 .bash_profile

29.which 文件搜索命令

  • 基本语法:

    which 命令 (功能描述:搜索命令所在目录及别名信息)

  • 案例

    [root@lhbadmin remote]# which ls
    alias ls='ls --color=auto'
    	/usr/bin/ls
    
    

30.locate 指令

locaate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。

  • 基本语法

    locate 搜索文件

  • 特别说明

    由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。

  • 应用实例

    请使用locate 指令快速定位 a.txt 文件所在目录

    [root@lhbadmin remote]# updatedb
    [root@lhbadmin remote]# locate a.txt
    /home/remote/a.txt
    /usr/lib/firmware/brcm/brcmfmac43340-sdio.pov-tab-p1006w-data.txt
    /usr/share/doc/vim-common-7.4.629/README_extra.txt
    /usr/share/gnupg/help.ca.txt
    /usr/share/gnupg/help.da.txt
    /usr/share/gnupg/help.ja.txt
    /usr/share/libhangul/hanja/hanja.txt
    /usr/share/vim/vim74/doc/ft_ada.txt.gz
    /usr/share/vim/vim74/doc/if_lua.txt.gz
    /usr/share/vim/vim74/doc/os_amiga.txt.gz
    /usr/share/vim/vim74/doc/uganda.txt.gz
    
    

31.gzip/gunzip压缩

  • 基本语法:

    gzip+文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)

    gunzip+文件.gz (功能描述:解压缩文件命令)

  • 特点:

    1.只能压缩文件不能压缩目录

    2.不保留原来的文件

  • 案例

  1. gzip压缩
[root@hadoop106 opt]# ls
test.java
[root@hadoop106 opt]# gzip test.java
[root@hadoop106 opt]# ls
test.java.gz

  1. gunzip解压缩文件
[root@hadoop106 opt]# gunzip test.java.gz 
[root@hadoop106 opt]# ls
test.java

32. zip/unzip压缩

zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的

  • 基本语法:

    zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)

    unzip [选项] XXX.zip (功能描述:解压缩文件)

  • 参数:

    -r:递归压缩,即压缩目录

  • unzip 的常用选项

    -d<目录> :指定解压后文件的存放目录

  • 案例:

  1. 案例 1: 将 /home 下的 所有文件进行压缩成mypackage.zip
#[root@lhbadmin home]# zip -r mypacge.zip /home/
 adding: home/xxl/.mozilla/plugins/ (stored 0%)
 adding: home/xxl/.bash_logout (stored 0%)
 adding: home/xxl/.bash_profile (deflated 21%)
[root@lhbadmin home]# ll
总用量 223548
drwx------. 15 lhb      lhb           4096 12月 14 14:11 lhb
-rw-r--r--   1 root     root     228902899 2月  23 10:46 mypacge.zip
drwx------.  3 mysql    mysql           78 1月   2 22:45 mysql
  1. 解压 mypackage.zip
[root@lhbadmin home]# unzip mypackage.zip //将mypackage.zip 解压到当前目录
Archive:  mypackage.zip
extracting: mypackage.zip             
[root@lhbadmin home]# ls
home  lhb  mypacge.zip  mysql  remote  xiaoming  xxl
[root@lhbadmin home]# unzip -d /opt/temp/ mypackage.zip //将mypackage.zip 解压到/opt/temp/目录

33.tar打包

tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。

  • 基本语法:

    tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)

  • 选项说明:

    -c 产生.tar打包文件

    -v 显示详细信息

    -f 指定压缩后的文件名

    -z 打包同时压缩

    -x 解包.tar文件

  • 案例

(1)压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz

[root@lhbadmin home]# tar -zcvf a.tar.gz a1.txt a2.txt
a1.txt
a2.txt

​ 压缩目录

[root@hadoop106 opt]# tar -zcvf myhome.tar.gz /home/    //将/home 的文件夹 压缩成 myhome.tar.gz

  • 解压:tar -zxvf XXX.tar.gz

​ 解压到当前目录

[root@hadoop106 opt]# tar -zxvf test.tar.gz

​ 解压到/opt目录

[root@hadoop106 opt]# tar -zxvf test.tar.gz –C /opt

用户管理

  1. Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
  2. Linux 的用户需要至少要属于一个组。
  3. /home 目录下有对应用户的家目录

useradd添加用户

  • 基本语法

    ​ useradd [选项] 用户名

  • 选项

    ​ d :指定目录 新的用户名,给新创建的用户指定家目录

    ​ -g:用户初始登陆组的组名或号码。组名必须已经存在。组号码必须指代已经存在的组。

  • 实际案例

    ​ 添加一个用户 xm

    [remote@lhbadmin ~]$ useradd xiaoming
    useradd: Permission denied.
    useradd:无法锁定 /etc/passwd,请稍后再试。 //权限不够
    [remote@lhbadmin ~]$ sudo useradd xiaoming
    
    
  • 特别说明

    1. 当创建用户成功后,会自动的创建和用户同名的家目录

    2. 也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录

    [remote@lhbadmin home]$ useradd -d /home/dog xq
    useradd: Permission denied.
    useradd:无法锁定 /etc/passwd,请稍后再试。
    [remote@lhbadmin home]$ sudo useradd -d /home/dog xq //权限不够加sudo
    [sudo] remote 的密码:
    
    
    

passwd添加用户密码或修改

  • 基本语法

    ​ passwd 用户名

  • 实际案例

    1. 给 xiaoming 指定密码
    [root@lhbadmin dog]# passwd xiaoming
    更改用户 xiaoming 的密码 。
    新的 密码:
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。
    
    

userdel删除用户

  • 基本语法

    ​ userdel 用户 名

  • 应用案例

    ​ 删除用户,但是保留家目录

    userdel xq
    
    

    ​ 删除用户,不保留家目录

    userdel -r xq
    
    
  • 在删除用户时,我们一般不会将家目录删除。因为上个人走的时候可能留了很多资料在里面

查询用户信息

  • 基本语法

    ​ id 用户名

  • 应用案例

    [root@lhbadmin home]# id root
    uid=0(root) gid=0(root)=0(root)
    
    

切换用户

  • 介绍

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

  • 基本语法

    su – 切换用户名

  • 应用实例

    切换到remote

    [root@lhbadmin home]# su - remote
    上一次登录:一 2月 22 14:07:08 CST 2021从 192.168.203.1pts/1 上
    [remote@lhbadmin ~]$ su - root
    密码:
    上一次登录:一 2月 22 14:26:49 CST 2021pts/1 上
    
    
  • 细节说明

    ​ 1)从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。

    ​ 2)当需要返回到原来用户时,使用 exit 指令

用户组

  • 介绍

    类似于角色,系统可以对有共性的多个用户进行统一的管理

  • 增加组

    groupadd 组 名

    [root@lhbadmin ~]# groupadd xx
    [root@lhbadmin ~]# useradd -g xx xxl
    [root@lhbadmin home]# id xxl
    uid=1004(xxl) gid=1004(xx)=1004(xx)
    
    
  • 删除组

    groupdel 组 名

who查看登录用户信息

  • 基本语法

    whoami (功能描述:显示自身用户名称)

    who am i (功能描述:显示登录用户的用户名)

    who (功能描述:看当前有哪些用户登录到了本台机器上)

  • 案例

[root@lhbadmin etc]# whoami
root
[root@lhbadmin etc]# who am i
remote   pts/1        2021-02-22 14:07 (192.168.203.1)
[root@lhbadmin etc]# who
remote   :0           2021-02-22 14:05 (:0)
remote   pts/0        2021-02-22 14:06 (:0)
remote   pts/1        2021-02-22 14:07 (192.168.203.1)

设置atguigu普通用户具有root权限

修改配置文件

修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:

## Allow root to run any commands anywhere
root    ALL=(ALL)     ALL
atguigu   ALL=(ALL)     ALL

修改完毕,现在可以用atguigu帐号登录,然后用命令 su - ,即可获得root权限进行操作。

/etc/passwd 文件(查看创建了哪些组)

用户(user)的配置文件,记录用户的各种信息

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

每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

/etc/shadow 文件

  • 口令的配置文件

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

每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

/etc/group 文件(查看创建了哪些组)

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

组(group)的配置文件,记录 Linux 包含的组的信息每行含义:组名:口令:组标识号:组内用户列表

指定系统运行级别

运行级别说明:

0 :关机

1 :单用户【找回丢失密码】

2:多用户状态没有网络服务

3:多用户状态有网络服务

4.系统未使用保留给用户

5.图形界面

6.系统重启

常用的运行级别事3和5,要修改默认的运行级别可改文件/etc/inittab的:5:initdefault:这一行的数字

  • 基本语法

    init [012356]

  • 应用实例

    通过init来切换不同的运行级别,比如5切换到3,然后关机

    init 3

    init 5

    init 0

    面试题

    如何找回 root 密码,如果我们不小心,忘记 root 密码,怎么找回。

    思路: 进入到 单用户模式,然后修改 root 密码。因为进入单用户模式,root 不需要密码就可以登录。

    总结

    开机->在引导时输入 回车键-> 看到一个界面输入 e -> 看到一个新的界面,选中第二行(编辑内核)在输入 e-> 在这行最后输入 1 ,再输入 回车键->再次输入 b ,这时就会进入到单用户模式。

    这时,我们就进入到单用户模式,使用 passwd 指令来修改 root 密码。

    9.2.3 课堂练习:

    1. 假设我们的 root 密码忘记了,请问如何找回密码

    2. 请设置我们的 运行级别,linux 运行后,直接进入到 命令行界面,即进入到 3 运行级别

    vim /etc/inittab将 id:5:initdefault:这一行中的数字, 5 这个数字改成对应的运行级别即可

组管理和权限管理

Linux 组基本介绍

在 linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件有所有者、所在组、其它组的概念。

  1. 所有者

  2. 所在组

  3. 其它组

  4. 改变用户所在组

​ 1. 文件/目录 所有者

​ 一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者

查看文件的所有者
  • 指令:ls -ahl
[root@lhbadmin remote]# ls -ahl
总用量 72K
drwx------. 15 remote remote 4.0K 2月  23 11:43 .
drwxr-xr-x.  6 root   root     60 2月  23 10:49 ..
-rw-------.  1 remote remote 1.3K 2月  22 22:33 .bash_history
-rw-r--r--.  1 remote remote   18 4月   1 2020 .bash_logout
-rw-r--r--.  1 remote remote  193 4月   1 2020 .bash_profile
-rw-r--r--.  1 remote remote  231 4月   1 2020 .bashrc
  • 应用实例:创建一个组 police,再创建一个用户 tom,将 tom 放在 police 组 ,然后使用 tom 来创建一个文件 ok.txt,看看情况如何
[root@lhbadmin home]# groupadd police
[root@lhbadmin home]# useradd -g police tom
[root@lhbadmin home]# passwd tom
更改用户 tom 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[tom@lhbadmin ~]$ touch ok.txt
[tom@lhbadmin ~]$ ls -ahl
总用量 24K
drwx------  5 tom  police 182 2月  23 13:49 .
drwxr-xr-x. 6 root root    55 2月  23 11:48 ..
-rw-------  1 tom  police  26 2月  23 11:56 .bash_history
-rw-r--r--  1 tom  police   0 2月  23 13:49 ok.txt

修改文件所有者
  • 指令:

    chown 被授权用户名 文件名

  • 应用案例

    ​ 要求:使用 tom创建一个文件 ok.txt ,然后将其所有者修改成 root

    [root@lhbadmin home]#chown root ok.txt
    [root@lhbadmin home]#chown newowner:newgroup	file	//改变用户的所有者和所有组
    [root@lhbadmin home]#chown -R tom kkk	//将/home/kkk 目录下所有的文件和目录的所有者都修改成tom
    //-R	如果是目录 则使其下所有子文件或目录递归生效
    
    

文件/目录 所在组

​ 当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。

查看文件/目录所在组
  • 基本指令

    ​ ls ahl

修改文件所在的组
  • 基本指令

    chgrp 组名 文件名

  • 应用实例

    [tom@lhbadmin ~]$ chgrp bandit /home/abc.txt //将 /home/abc .txt 文件的所在组修改成 bandit (土匪) 
    [tom@lhbadmin ~]$ chgrp -R bandit /home/kkk //将 /home/kkk 目录下所有的文件和目录的所在组都修改成 bandit(土匪) 
    
    

其它组

​ 除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组.

改变用户所在组

​ 在添加用户时,可以指定将该用户添加到哪个组中,同样的用 root 的管理权限可以改变某个用户所在的组。

改变用户所在组
  • 基本指令:

    1. usermod –g 组名 用户名
    [tom@lhbadmin ~]$ usermod -g root tom
    
    

权限的基本介绍

[tom@lhbadmin ~]$ ls -l
总用量 0
-rw-r--r-- 1 tom police 0 2月  23 13:49 ok.txt

此处的-rw-r–r-- 0-9 位说明

1)第 0 位确定文件类型(d目录, - 普通文件, l 软连接, c字符设备键盘鼠标 , b块文件,硬盘)

2)第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限。—User

3)第 4-6 位确定所属组(同用户组的)拥有该文件的权限,—Group

4)第 7-9 位确定其他用户拥有该文件的权限 —Other

此处的 1 代表:如果是文件表示硬链接数,如果是目录则表示该目录的子目录数

此处的 0 代表:文件大小

rwx 权限详解

rwx 作用到文件
  • [ r ]代表可读(read): 可以读取,查看
  • [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
  • [ x ]代表可执行(execute):可以被执行
rwx 作用到目录
  • [ r ]代表可读(read): 可以读取,ls 查看目录内容
  • [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
  • [ x ]代表可执行(execute):可以进入该目录

文件权限修改-chmod

  • 基本说明:

    通过 chmod 指令,可以修改文件或者目录的权限

第一种方式:+ 、-、= 变更权限

u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)

  1. chmod u=rwx,g=rx,o=x 文件目录名

  2. chmod o+w 文件目录名

  3. chmod a-x 文件目录名

  • 案例演示

    1. 给 abc 文件的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。
    [tom@lhbadmin ~]$ chmod u=rwx,g=rx,o=rx abc
    
    
    1. 给 abc 文件的所有者除去执行的权限,增加组写的权限
    [tom@lhbadmin ~]$ chmod u-x,g+w abc
    
    
    1. 给 abc 文件的所有用户添加读的权限
    [tom@lhbadmin ~]$ chmod a+r abc
    
    
第二种方式:通过数字变更权限

规则:r=4 w=2 x=1 ,rwx=4+2+1=7

chmod u=rwx,g=rx,o=x 文件目录名

相当于

chmod 751 文件目录名

要求:将 /home/abc.txt 文件的权限修改成 rwx-xr-x, 使用给数字的方式实现:

chmod 751 /home/abc.txt

crond 任务调度

原理示意图

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

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

概述

任务调度:是指系统在某个时间执行的特定的命令或程序。

任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等

基本语法

  • crontab [选项]

  • 常用选项

    ​ -e 编辑crontab定时任务

    ​ -l 查询crontab任务

    ​ -r 删除当前用户所有的crontab任务

快速入门

  • 任务的要求

    设置任务调度文件:/etc/crontab

    设置个人任务调度。执行 crontab –e 命令。接着输入任务到调度文件

    如:*/1 * * * * ls –l /etc/ > /tmp/to.txt

    意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt 命令

  • 步骤如下

    1. cron -e

    2. */ 1 * * * * ls -l /etc >> /tmp/to.txt

    3. 当保存退出后就程序。

    4. 在每一分钟都会自动的调用 ls -l /etc >> /tmp/to.txt

  • 参数细节说明

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

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

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

任务调度的几个应用实例

  • 案例 1:每隔 1 分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中

    1. 先编写一个文件 /home/mytask1.sh date >> /tmp/mydate
      
    2. 给 mytask1.sh  一个可以执行权限
      

    chmod 744 /home/mytask1.sh

    1. crontab -e
      
    2. */1 * * * *    /home/mytask1.sh
      
    3. 成功
      
  • 案例 2:每隔 1 分钟, 将当前日期和日历都追加到 /home/mycal 文件中

    1. 先编写一个文件 /home/mytask2.sh

    date >> /tmp/mycal cal >> /tmp/mycal

    1. 给 mytask1.sh 一个可以执行权限

    chmod 744 /home/mytask2.sh

    1. crontab -e

    2. */1 * * * * /home/mytask2.sh

    3. 成功

  • 每天凌晨 2:00 将 mysql数据库testdb ,备份到文件中mydb.bak

    1. 先编写一个文件 /home/mytask3.sh

    /usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak

    1. 给 mytask3.sh 一个可以执行权限

    chmod 744 /home/mytask3.sh

    1. crontab -e

    2.  0 2 * * *    /home/mytask3.sh
      
    3. 成功

crond 相关指令:

​ 1) conrtab –r:终止任务调度。

​ 2) crontab –l:列出当前有那些任务调度

​ 3) service crond restart [重启任务调度]

Linux 磁盘分区、挂载

分区的方式

​ 1. mbr 分区:

​ 1.最多支持四个主分区

​ 2.系统只能安装在主分区

​ 3.扩展分区要占一个主分区

​ 4.MBR最大只支持2TB,但拥有最好的兼容

  1. gtp 分区

    1.支持无限多个主分区(但操作系统可能限制,比如 windows 下最多 128 个分区)

    2.最大支持 18EB 的大容量(1EB=1024 PB,1PB=1024 TB )

    3.windows7 64 位以后支持 gtp

windows 下的磁盘分区

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

Linux 分区

原理介绍

​ 1)Linux 来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux 中每个分区都是用来组成整个文件系统的一部分。

​ 2)Linux 采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录, 且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。(每一个分区对应一个文件目录,个人理解!)

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

硬盘说明

​ 1)Linux 硬盘分 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘

​ 2)对于 IDE 硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指 IDE 硬盘了。“x”为盘号(a 为基本盘,b 为基本从属盘,c 为辅助主盘,d 为辅助从属盘),“~”代表分区,前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区。例,hda3 表示为第一个 IDE 硬盘上的第三个主分区或扩展分区,hdb2 表示为第二个 IDE 硬盘上的第二个主分区或扩展分区。

​ 3)对于 SCSI 硬盘则标识为“sdx~”,SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则和 IDE
硬盘的表示方法一样

使用 lsblk 指令查看当前系统的分区情况
[remote@lhbadmin ~]$ lsblk
NAME                     MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                        8:0    0   20G  0 disk 
├─sda1                     8:1    0    1G  0 part /boot
└─sda2                     8:2    0   19G  0 part 
  ├─centos_lhbadmin-root 253:0    0   17G  0 lvm  /
  └─centos_lhbadmin-swap 253:1    0    2G  0 lvm  [SWAP]
sr0                       11:0    1  4.4G  0 rom  /run/media/remote/CentOS 7 x86_64

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

磁盘情况查询
  • 基本语法

    df -h df -l df -lh

[remote@lhbadmin ~]$ df -h
文件系统                          容量  已用  可用 已用% 挂载点
devtmpfs                          470M     0  470M    0% /dev
tmpfs                             487M     0  487M    0% /dev/shm
tmpfs                             487M  8.6M  478M    2% /run
tmpfs                             487M     0  487M    0% /sys/fs/cgroup
/dev/mapper/centos_lhbadmin-root   17G  8.8G  8.3G   52% /
/dev/sda1                        1014M  172M  843M   17% /boot
tmpfs                              98M   40K   98M    1% /run/user/1001
/dev/sr0                          4.4G  4.4G     0  100% /run/media/remote/CentOS 7 x86_64

查询指定目录的磁盘占用情况

  • 基本语法

    du -h /目录

    查询指定目录的磁盘占用情况,默认为当前目录

    -s 指定目录占用大小汇总

    -h 带计量单位

    -a 含文件

    –max-depth=1 子目录深度

    -c 列出明细的同时,增加汇总值

  • 应用实例

    查询 /opt 目录的磁盘占用情况,深度为1

[root@lhbadmin remote]# du -ach --max-depth=1 /opt
154M	/opt/rh
2.2M	/opt/redis-6.0.6.tar.gz
131M	/opt/redis-6.0.6
287M	/opt
287M	总用量

磁盘情况-工作实用指令

  • 统计/home 文件夹下文件的个数
[root@lhbadmin ~]# ls -l /home | grep "^-" | wc -l
0

  • 统计/home 文件夹下文件的个数
[root@lhbadmin ~]# ls -l /home | grep "^d" | wc -l
4

  • 统计/home 文件夹下文件的个数,包括子文件夹里的
[root@lhbadmin ~]# ls -lR /home | grep "^-" | wc -l
1569

  • 统计/home文件夹下目录的个数,包括子文件夹里的
[root@lhbadmin home]# ls -lR /home | grep "^d" | wc -l
530

  • 以树状显示目录结构
[root@lhbadmin ~]# tree //显示/home下的

网络配置

固定ip

说明

直 接 修 改 配 置 文 件 来 指 定 IP, 并 可 以 连 接 到 外 网 ( 程 序 员 推 荐 ) , 编 辑 :

vi /etc/sysconfig/network-scripts/ifcfg-xxx(删除掉别的ifcfg-xxx只保留一个你网卡同名的文档)

再把NetworkManager停用

systemctl stop NetworkManager
systemctl disable NetworkManager

修改后,一定要 重启服务

1) service network restart

2) reboot 重启系统

进程管理

14.1 进程的基本介绍

  1. 在 LINUX 中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个 ID 号。
  2. 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。
  3. 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
  4. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

显示系统执行的进程

查看进行使用的指令是 ps ,一般来说使用的参数是 ps -aux

ps显示的信息选项:

PID 进程识别号
TTY 终端机号
TIME 此进程消耗CPU时间
CMD 正在执行的进程名或命令
ps-a 显示当前终端所有的进程信息
ps-u 以用户的格式显示当前进程信息
ps-x 显示后台进程运行的参数
ps-e 显示所有进程
ps-f 全格式

redis启动**

cd /usr/local/bin

redis-server /myredis/redis.conf 启动

redis-cli -p 6379

redis-cli -h 192.168.203.128 -p 6379

ps -ef|grep redis 查看redis服务是否启动

ifconfig -a

一、iptables防火墙

1、基本操作

# 查看防火墙状态

service iptables status

# 停止防火墙

service iptables stop

# 启动防火墙

service iptables start

# 重启防火墙

service iptables restart

# 永久关闭防火墙

chkconfig iptables off

# 永久关闭后重启

chkconfig iptables on

MYSQL:linxu安装:https://blog.csdn.net/yzbk_dxy/article/details/82218977

service mysqld start

mysql -uroot -p

ldata=’/usr/local/mysql/data’

execdir=’/usr/local/mysql/bin’

bindir=’/usr/local/mysql/bin’

mv /opt/canal.deployer-1.1.4.tar.gz /usr/local/canal/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值