linux笔记

需要补充:
1、正则表达式
查看之前从 /etc 目录下拷贝来的 passwd 文件:

cd /home/shiyanlou
cp /etc/passwd passwd
cat passwd

实验 2
基本概念及操作

实验 3用户及文件权限管理

### 常用命令
ls /home
    ls -a 显示除了 .(当前目录)和 ..(上一级目录)之外的所有文件,包括隐藏文件(Linux 下以 . 开头的文件为隐藏文件)。
    ls -al 
    -alh
    ll
    ls -dl <目录名> 查看某一个目录的完整属性,而不是显示目录里面的文件属性:
    ls -asSh 显示所有文件大小,并以普通人类能看懂的方式呈现.小 s 为显示文件大小,大 S 为按文件大小排序

cd 
哪个方便用哪个
    # 绝对路径
    cd /usr/local/bin
    # 相对路径
    cd ../../usr/local/bin
进入一个目录,可以使用绝对路径也可以使用相对路径

文件操作
    cp、mkdic 当前路径操作
    cp 复制文件(当前路径)、复制目录(-r 或者 -R 参数,表示递归复制)
    rm 删除(目录-r参数)f 参数强制删除 -rf 
    mv (move or rename files)移动文件与单文件重命名(剪切)。
        命令格式是 mv 源目录文件 目的目录。
    rn 批量重命名 用 perl 正则表达式来作为参数(注意'半角,命令未闭合时的退出)
        可能在输入时出现命令未闭合的状态,命令行会出现 quote> 开头的提示符。这是因为上述命令中的 ' 未输入完成,这时按下 ctrl+c 即可退出该模式。
    查看文件 :
        cat,tac 和 nl  
            cat 为正序显示,tac 为倒序显示。
                -n 参数显示行号
            nl 命令,添加行号并打印,这是个比 cat -n 更专业的行号打印命令
                -b : 指定添加行号的方式,主要有两种:
                    -b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
                    -b t:只列出非空行的编号并列出(默认为这种方式)
                -n : 设置行号的样式,主要有三种:
                    -n ln:在行号字段最左端显示
                    -n rn:在行号字段最右边显示,且不加 0
                    -n rz:在行号字段最右边显示,且加 0
                -w : 行号字段占用的位数(默认为 6 位)
        more 和 less 命令分页查看文件
            打开后默认只显示一屏内容,终端底部显示当前阅读的进度。可以使用 Enter 键向下滚动一行,使用 Space 键向下滚动一屏,按下 h 显示帮助,q 退出。
        head 和 tail 只查看文件的头几行(默认为 10 行,不足 10 行则显示全部)和尾几行
            查看最近新增加的用户
            -n 1 参数n,后面紧跟行数
            tail  -f,这个参数可以实现不停地读取某个文件的内容并显示。这可以让我们动态查看日志,达到实时监视的目的



pwd 获取当前路径
获取帮助 man(Manual pages)
    手册通常被分为 8 个区段,安排如下:

    区段	说明
    1	一般命令
    2	系统调用
    3	库函数,涵盖了 C 标准函数库
    4	特殊文件(通常是/dev 中的设备)和驱动程序
    5	文件格式和约定
    6	游戏和屏保
    7	杂项
    8	系统管理命令和守护进程
    要查看相应区段的内容,就在 man 后面加上相应区段的数字即可,如:

    >man 1 ls
    会显示第一区段中的ls命令 man 页面。

退出当前用户跟退出终端一样,可以使用 exit 命令或者使用快捷键 Ctrl+D。

touch
    主要作用是来更改已有文件的时间戳的(比如,最近访问时间,最近修改时间),但其在不加任何参数的情况下,只指定一个文件名,则可以创建一个指定文件名的空白文件(不会覆盖已有同名文件),当然你也可以同时指定该文件的时间戳
mkdir 
 -p 多级

###常用通配符
Shell 常用通配符:

字符	含义
*	匹配 0 或多个字符
?	匹配任意一个字符
[list]	匹配 list 中的任意单一字符
[^list]	匹配 除 list 中的任意单一字符以外的字符
[c1-c2]	匹配 c1-c2 中的任意单一字符 如:[0-9][a-z]
{string1,string2,...}	匹配 string1 或 string2 (或更多)其一字符串
{c1..c2}	匹配 c1-c2 中全部字符 如{1..10}


### 常用快捷键
历史输入 up、自动补全tab、停止 Ctrl+C

按键	作用
Ctrl+d	键盘输入结束或退出终端
Ctrl+s	暂停当前程序,暂停后按下任意键恢复运行
Ctrl+z	将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+a	将光标移至输入行头,相当于Home键
Ctrl+e	将光标移至输入行末,相当于End键
Ctrl+k	删除从光标所在位置到行末
Alt+Backspace	向前删除一个单词
Shift+PgUp	将终端显示向上滚动
Shift+PgDn	将终端显示向下滚动

### 通配符(创建多个文件、模糊搜索)
Shell 常用通配符:

字符	含义
*	匹配 0 或多个字符
?	匹配任意一个字符
[list]	匹配 list 中的任意单一字符
[^list]	匹配 除 list 中的任意单一字符以外的字符
[c1-c2]	匹配 c1-c2 中的任意单一字符 如:[0-9][a-z]
{string1,string2,...}	匹配 string1 或 string2 (或更多)其一字符串
{c1..c2}	匹配 c1-c2 中全部字符 如{1..10}

用户及文件权限管理
一、实验介绍
二、Linux 用户管理
    2.1 用户
        查看用户 who am i /who mom likes(区别 伪终端序列号)
            who 命令其它常用参数

            参数	说明
            -a	打印能打印的全部
            -d	打印死掉的进程
            -m	同am i,mom likes
            -q	打印当前登录用户数及用户名
            -u	打印当前登录用户登录信息
            -r	打印运行等级
        创建用户  
            查看用户目录 ls /home
            新建用户 sudo adduser lilei
            改密码 sudo passwd lilei
            退出当前用户 跟退出终端一样,可以使用 exit or Ctrl+D。
            切换 su -l lilei
    2.3 用户组
        查看所属用户组 
            - 方法一:使用 groups 命令  groups shiyanlou
                冒号之前表示用户,后面表示该用户所属的用户组。
                默认情况下在 sudo 用户组里的可以使用 sudo 命令获得 root 权限
            - 方法二:查看 /etc/group 文件  cat /etc/group | 
                cat 命令读取指定文件的内容并打印到终端输出
                | sort 表示将读取的文本进行一个字典排序再输出
                grep 命令过滤
                    包括用户组(Group)、用户组口令、GID(组 ID) 及该用户组所包含的用户(User),每个用户组一条记录。格式如下:
                    group_name:password:GID:user_list
                    如果用户的 GID 等于用户组的 GID,那么最后一个字段 user_list 就是空的
        将其它用户加入 sudo 用户组,获取 root 权限
            su -l lilei
            sudo ls
        使用 usermod 命令可以为用户添加用户组(权限需要root或sudo用户组)
            sudo usermod -G sudo lilei
            (groups lilei(发现多了sudo标签))
    2.4 删除用户和用户组
        删除用户 sudo deluser lilei --remove-home
            使用 --remove-home 参数在删除用户时候会一并将该用户的工作目录一并删除。如果不使用那么系统会自动在 /home 目录为该用户保留工作目录。
        删除用户组  groupdel 命令
            倘若该群组中仍包括某些用户,则必须先删除这些用户后,才能删除群组。
        
三、Linux 文件权限
    3.1 查看文件权限(ls命令各种参数)
        使用较长格式列出文件,查看文件权限:
            ls -l
        文件类型和权限、连接数、所有者、所属用户组、文件大小、最后修改时间、文件名
        - 文件类型
        - 文件权限
            一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息。
        - 链接数
        - 文件大小
    3.2 变更文件所有者
        更改当前目录cd /home/lilei
        展示属性ls iphone11
        修改文件所有者(用户组不变)sudo chown shiyanlou iphone11
            3.3 修改文件权限(3个权限,拥有者,所属用户组,其他用户)  
            知识
                文件的读写执行对应字母 rwx,以二进制表示就是 111,用十进制表示就是 7
                权限是 rw-rw-rw-,换成对应的十进制表示就是 666,这就表示这个文件的拥有者,所属用户组和其他用户具有读写权限,不具有执行权限  
            输入内容/准备材料
                echo "echo \"hello 
                shiyanlou\"" > iphone11
            修改
            方式一:二进制数字表示       chmod 600 iphone11
                    (ls -alh iphone11)

            方式二:加减赋值操作 chmod go-rw iphone11 
                g、o 还有 u 分别表示 group(用户组)、others(其他用户) 和 user(用户),+ 和 - 分别表示增加和去掉相应的权限。
三、Linux 文件权限
adduser 和 useradd 的区别是什么
答:useradd 只创建用户,不会创建用户密码和工作目录,创建完了需要使用 passwd <username> 去设置新用户的密码。
adduser 在创建用户的同时,会创建工作目录和密码(提示你设置),做这一系列的操作。
其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。
而 adduser 更像是一种程序,需要你输入、确定等一系列操作。

实验 4Linux 目录结构及文件基本操作
Linux 的文件组织目录结构。
相对路径和绝对路径。
1.1 实验知识点
每个目录的大体内容
文件的属性
touch,file,rm,mv 等基本命令

1. FHS 标准
FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。
FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该放置设置文件,/bin 与 /sbin 则应该放置可执行文件等等。
第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统日志文件,/usr/share 放置共享数据等等。

文件常用的基本操作,
    包括:新建、复制、删除、移动文件与文件重命名、查看文件、查看文件类型、以及编辑文件。
6. 在 Linux 中文件的类型不是根据文件后缀来判断的。当你在文件里输入内容后才会显示文件类型

实验 5 环境变量与文件查找
一、实验介绍
二、环境变量
变量
declare 创建变量 declare tmp
( Shell 中的赋值操作,= 两边不可以输入空格,否则会报错。)
echo $tmp 读取变量的值($ 符号用于表示引用一个变量的值
1. 环境变量(变量名只能是英文字母、数字或者下划线,且不能以数字作为开头。)
变量类型有三种:
- 当前 Shell 进程私有用户自定义变量,如上面我们创建的 tmp 变量,只在当前 Shell 中有效。
- Shell 本身内建的变量。
- 从自定义变量导出的环境变量。
三种环境变量相关的命令:set,env,export。这三个命令很相似,都是用于打印环境变量信息,区别在于涉及的变量范围不同。详见下表:
命 令 说 明
set 显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。
env 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。
export 显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。

    # 错误的赋值
        tmp = shiyanlou 
    2. 命令的查找路径与顺序
    3. 添加自定义路径到“ PATH ”环境变量
    4. 修改和删除已有变量
    5. 如何让环境变量立即生效
三、搜索文件

whereis,which,find 和 locate
whereis 简单快速
搜索很快,因为它并没有从硬盘中依次查找,而是直接从数据库中查询。
只能搜索二进制文件(-b),man 帮助文件(-m)和源代码文件(-s)
locate 快而全
查询 /var/lib/mlocate/mlocate.db 数据库来检索信息。不过这个数据库也不是实时更新的,系统会使用定时任务每天自动执行 updatedb 命令来更新数据库。所以有时候你刚添加的文件,它可能会找不到,需要手动执行一次 updatedb 命令(在我们的环境中必须先执行一次该命令)。注意这个命令也不是内置的命令,在部分环境中需要手动安装,然后执行更新
查找指定目录下的不同文件类型,如查找 /etc 下所有以 sh 开头的文件:

locate /etc/sh
注意,它不只是在 /etc 目录下查找,还会自动递归子目录进行查找。

查找 /usr/share/ 下所有 jpg 文件:

locate /usr/share/*.jpg
注意要添加 * 号前面的反斜杠转义,否则会无法找到

想只统计数目可以加上 -c 参数,-i 参数可以忽略大小写进行查找,whereis 的 -b、-m、-s 同样可以使用。

which 小而精
find 精而细( find 命令的路径是作为第一个参数的, 基本命令格式为 find [path][option] [action] )
通过文件类型、文件名进行查找而且可以根据文件的属性(如文件的时间戳,文件的权限等)进行搜索
sudo 是因为 shiyanlou 只是普通用户,对 /etc 目录下的很多文件都没有访问的权限,如果是 root 用户则不用使用。
与时间相关的命令参数:
参数 说明
-atime 最后访问时间
-ctime 最后修改文件内容的时间
-mtime 最后修改文件属性的时间

以 -mtime 参数举例:
-mtime n:n 为数字,表示为在 n 天之前的“一天之内”修改过的文件
-mtime +n:列出在 n 天之前(不包含 n 天本身)被修改过的文件
-mtime -n:列出在 n 天之内(包含 n 天本身)被修改过的文件
-newer file:file 为一个已存在的文件,列出比 file 还要新的文件名

列出 home 目录中,当天(24 小时之内)有改动的文件:
find ~ -mtime 0

列出用户家目录下比 /etc 目录新的文件:
find ~ -newer /etc

四、更多

挑战 1
挑战:寻找文件
实验 6
文件打包与解压缩
实验 7
文件系统操作与磁盘管理
实验 8
Linux下的帮助命令
实验 9
Linux任务计划crontab
挑战 2
挑战:备份日志
实验 10
命令执行顺序控制与管道
实验 11
简单的文本处理
实验 12 数据流重定向
挑战 3
挑战:历史命令
实验 13 正则表达式基础
挑战 4
挑战:数据提取
实验 14 Linux下软件安装
介绍 Ubuntu 下软件安装的几种方式,及 apt,dpkg 工具的使用。
1.2 实验知识点
通常 Linux 上的软件安装主要有四种方式:
在线安装
从磁盘安装 deb 软件包
从二进制软件包安装
从源代码编译安装
dpkg常用参数介绍:

参数	说明
-i	安装指定 deb 包
-R	后面加上目录名,用于安装该目录下的所有 deb 安装包
-r	remove,移除某个已安装的软件包
-I	显示 deb 包文件的信息
-s	显示已安装软件的信息
-S	搜索已安装的软件包
-L	显示已安装软件包的目录信息

sudo apt-get update
sudo apt-get -d install -y emacs -d参数只下载不安装
sudo apt-get -f install -y,修复依赖关系的安装

实验 15
Linux 进程概念
实验 16
Linux 进程管理
实验 17
Linux 日志系统

+apt
被用于安装、卸载和供给和 .deb 软件包相关的信息

  • apt-get工具的使用
    更新、安装、卸载+显示、搜索

+"dpkg"是"Debian Package"
被用于安装、卸载和供给和 .deb 软件包相关的信息
从本地磁盘安装 deb 软件包

 posted on 2020-10-11 18:15  20209313  阅读(65)  评论(0编辑  收藏  举报