• Linux 基础入门(新版)(实验一至实验四)


    1.实验一  Lniux简介
     
    操作系统:系统调用+内核
    Linux 平台:大都为开源自由软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体验欠缺;有全球所有的 Linux 开发者和自由软件社区提供支持
     
     
    2.实验二:
    1、实验楼环境介绍 
    2、常用 Shell 命令及快捷键 
    3、Linux 使用小技巧
     
    UNIX/Linux 本身是没有图形界面的,我们通常在 Unix/Linux 发行版上看到的图形界面实际都只是运行在 Linux 系统之上的一套软件。
     Linux 上你可以自己选择安装不同的桌面环境,甚至可以定制自己的专属桌面
     
    Linux的终端:
    1.使用Linux时并不是直接与系统打交道,而是通过称为shell的中间程序完成的。
    2.Linux 系统还提供了一个叫做终端模拟器的程序(Terminal)——实现在一个窗口中完成接受用户输入和显示输出
    *终端(Terminal)和控制台(Console)是有区别的
     
    终端本质上是对应着 Linux 上的 /dev/tty 设备,Linux 的多用户登陆就是通过不同的 /dev/tty 设备完成的
    Linux 默认提供了 6 个纯命令行界面的 “terminal”(准确的说这里应该是 6 个 virtual consoles)来让用户登录,在物理机系统上你可以通过使用[Ctrl]+[Alt]+[F1]~[F6]进行切换。
     
    shell:“提供给使用者使用界面”的软件(命令解析器)
     
     
    初体验:
     
     
     
    实用的小技巧:
     
    1.Tab:
     
    使用Tab键来进行命令补全。
    可以只输入它的开头的一部分然后按下Tab键就可以得到提示或者帮助完成!
     
     
    当然不止补全命令补全目录补全命令参数都没问题。
     
     
     
     
    2.[Ctrl+c]
     
    实用状况:终端中出现无法预料的情况时,想要立即停止并恢复可控的状态。
    使用Ctrl+c键来强行终止当前程序(你可以放心它并不会使终端退出)
     
     
     
     
    其他的一些快捷键!
    按键作用
    Ctrl+d 键盘输入结束或退出终端
    Ctrl+s 暂定当前程序,暂停后按下任意键恢复运行
    Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
    Ctrl+a 将光标移至输入行头,相当于Home
    Ctrl+e 将光标移至输入行末,相当于End
    Ctrl+k 删除从光标所在位置到行末
    Alt+Backspace 向前删除一个单词
    Shift+PgUp 将终端显示向上滚动
    Shift+PgDn 将终端显示向下滚动
     
    3.学会利用历史输入命令:使用方向
     
    4.学会使用通配符:通配符是一种特殊语句,主要有星号(*)和问号(?),用来对对字符串进行模糊匹配(比如文件名,参数名)
    当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。
    终端里面输入的通配符是由 Shell 处理的。
    shell处理通配符的过程:
    当 Shell 在“参数值”中遇到了通配符时,Shell 会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展);否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理。(实现的路径扩展功能
     
     
     
    5.创建多个文件love_1_linux.txt,love_2_linux.txt,... love_10_linux.txt
    利用:touch love_{1..10}_linux.txt
     
     

    Shell 常用通配符:

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

    6.在命令行中获取帮助
    在 Linux 环境中,如果你遇到困难,可以使man 命令(Manual page
    Manual pages 是在 UNIX 或类 UNIX 操作系统在线软件文档的一种普遍的形式。 内容包括计算机程序(包括库和系统调用),正式的标准和惯例,甚至是抽象的概念。用户可以通过执行 man 命令调用手册页
     
    (1)获得某个命令的说明和使用方式的详细介绍:man <command_name>
    (2)查看 man 命令本身的使用方式:manman
     
    man手册的八个区段:
    区段说明
    1 一般命令
    2 系统调用
    3 库函数,涵盖了C标准函数库
    4 特殊文件(通常是/dev中的设备)和驱动程序
    5 文件格式和约定
    6 游戏和屏保
    7 杂项
    8 系统管理命令和守护进程
    查看相应区段的内容,就在 man 后面加上相应区段的数字即可:man 3 printf

    所有的手册页遵循一个常见的布局,其为通过简单的 ASCII 文本展示而优化,而这种情况下可能没有任何形式的高亮或字体控制。一般包括以下部分内容:

    NAME(名称)
    该命令或函数的名称,接着是一行简介。
     
    SYNOPSIS(概要)
    对于命令,正式的描述它如何运行,以及需要什么样的命令行参数。对于函数,介绍函数所需的参数,以及哪个头文件包含该函数的定义。
     
    DESCRIPTION(说明)
    命令或函数功能的文本描述。
     
    EXAMPLES(示例)
    常用的一些示例。
     
    SEE ALSO(参见)
    相关命令或函数的列表。
     
    在man中使用搜索/<你要搜索的关键字>
    查找到后你可以使用
    n键切换到下一个关键字所在处,
    shift+n为上一个关键字所在处。
    Space(空格键)翻页,
    Enter(回车键)向下滚动一行,
    j,k(vim编辑器的移动键)进行向前向后滚动一行。
    h键为显示使用帮助(因为man使用less作为阅读器,实为less工具的帮助),
    q键退出。
     
    *更详细的帮助:使用info
    快速查看一些它的某个具体参数的作用,那么你可以使用--help参数
     
     
     
    *作业
    $ sudo apt-get update;sudo apt-get install sysvbanner
    banner shiyanlou
     
    调整字体:
    printerbanner -w 50 A('-w'参数指定打印宽度,因为我们的环境在屏幕中显示比较小,必须要加上宽度限制。)
     
    关于实验二最后的作业:
     
    Linux下有三个有趣的小工具:
     
    1)banner:使用#生成banner
     
    2)figlet:使用一些普通字符生成banner
     
    3)toilet:使用一些复杂的彩色特殊字符生成banner
     
    使用apt-get安装的时候需要输入以下命令:
     
        $ sudo apt-get update  
        $ sudo apt-get install sysvbanner toilet figlet  
     
    使用方法:
     
    1)banner
     
    view plaincopy to clipboardprint?
     
        $ banner EastCoke  
     
     
    2)figlet
     
    view plaincopy to clipboardprint?
     
        $ figlet EastCoke  
     
     
    使用参数-f可以指定字体,如 figlet -f slant EastCoke
     
    使用参数-ctf可以使banner居中并且与终端等宽
     
    输出到文件可以使用figlet -p < /path/to/file
     
    3)toilet
     
    view plaincopy to clipboardprint?
     
        $ toilet -f bigmono9 -F gay EastCoke  
                                                               
         
        $ toilet -f mono12 -F metal EastCoke  
                                                                                         
     
     
    如果希望在每次打开终端的时候都会显示出banner,可以使用下面的命令:
     
        echo 'toilet -f bigmono9 -F gay EastCoke' >> ~/.bashrc
     
     
     
     
    3.实验三  用户及文件权限管理
    1.在Linux中创建,删除用户,及用户组操作。
    2.Linux中的文件权限设置
     
     
     
    一、Linux的用户管理
     
    不同用户不可以相互查看修改彼此的文件——Linux的用户管理和权限机制。
     
     
     
    输入的第一列表示打开当前伪终端的用户的用户名
    第二列的pts/0 中 pts 表示伪终端, pts/0 后面那个数字就表示打开的伪终端序号,
    第三列则表示当前伪终端的启动时间。
     
     

    who 命令其它常用参数

    参数说明
    -a 打印能打印的全部
    -d 打印死掉的进程
    -m am i,mom likes
    -q 打印当前登录用户数及用户名
    -u 打印当前登录用户登录信息
    -r 打印运行等级

    2.创建用户

    root命令的两大前提:
    1.是你要知道当前登录用户的密码
    2.是当前用户必须在 sudo 用户组。
     
    root 账户拥有整个系统至高无上的权利,比如 新建/添加 用户。高于 Administrator 权限,root 是 Linux 和 UNIX 系统中的超级管理员用户帐户
     
    创建叫lilei的新用户:sudo adduser lilei
     
     
    该命令不但可以添加用户到系统,同时也会默认为新用户创建 home 目录: ls  /home
     
    此时用户已经创建好,使用 su -l lilei 来切换登录用户
    退出时可以使用exit  or  Ctrl+d
     
     
     
     
     
    3.用户组
     
    在 Linux 里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源。
     
    如何知道自己属于哪一个用户组?
    (1)使用groups命令
    例:groups shiyanlou
    其中冒号之前表示用户,后面表示该用户所属的用户组,每次新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组。
     
     
    (2)查看/etc/group文件
     cat /etc/group | sort
     
    可以使用命令过滤掉一些你不想看到的结果:
    cat /etc/group | grep -E "shiyanlou|sudo"
     
     
     
     
     
    etc/group 文件格式说明
    /etc/group 的内容包括用户组(Group)用户组口令GID 及该用户组所包含的用户(User)每个用户组一条记录。格式如下: group_name:password:GID:user_list
    新用户获取root权限:
    $ su -l lilei
    $ sudo ls
     
     
     
     
    使用 usermod 命令可以为用户添加用户组,同样使用该命令你必需有 root 权限,你可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo 用户组的用户使用 sudo 命令获取权限来执行该命令
    $ su shiyanlou
    $ groups lilei
    $ sudo usermod -G sudo lilei
    $ groups lilei
     
     
    4.删除用户
     sudo deluser lilei --remove-home
     
     

    二、Linux 文件权限

    1.查看文件权限
    ls 命令我们用它来列出并显示当前目录下的文件)
     
    ls -l
     
     
     
    1.文件类型
    Linux 里面一切皆文件
    链接文件是分为两种的,软链接文件,另一种当然是“硬链接”(硬链接不常用,具体内容不作为本课程讨论重点,而软链接等同于 Windows 上的快捷方式,你记住这一点就够了)
     
    2.文件权限
    读权限,表示你可以使用 cat <file name> 之类的命令来读取某个文件的内容;
    写权限,表示你可以编辑和修改某个文件; 
    执行权限,通常指可以运行的二进制程序文件或者脚本文件。
    一个目录要同时具有读权限执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件,这是因为目录文件实际保存着该目录里面的文件的列表等信息
     
     
    3.链接数:链接到该文件所在的 inode 结点的文件名数目
     
    4.文件大小:以 inode 结点大小为单位来表示的文件大小,你可以给 ls 加上 -lh 参数来更直观的查看文件的大小。
     
    (1)显示除了 '.'(当前目录),'..' 上一级目录之外的所有包含隐藏文件(Linux 下以 '.' 开头的文件为隐藏文件)
     
         ls -A
     
         同时使用Al :ls -Al
     
     
    (2)查看某一个目录的完整属性,而不是显示目录里面的文件属性
    $ ls -dl <目录名>
    (3)显示所有文件大小,并以普通人类能看懂的方式呈现:
    $ ls -AsSh
    *其中小 s 为显示文件大小,大 S 为按文件大小排序
     
     

    2.变更文件所有者

    (1)lilei登录 创建 iPhone6
    $ touch iphone6
     
    (2)更改文件所有者:
    $ cd /home/lilei
    $ ls iphone6
    $ sudo chown shiyanlou iphone6
    $ cp iphone6 /home/shiyanlou
     
     

    3.修改文件权限

    (1)方式一:二进制数字表示
    每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的)就对应这一个 "rwx"
    $ chmod 700 iphone6
     
     
    (2)方式二:加减赋值操作
     
    $ chmod go-rw iphone
     
    'g''o'还有'u',分别表示group,others,user,'+','-' 就分别表示增加和去掉相应的权限。
     
     
     
    作业:
     
     
     
     
     
    4.实验四Linux 目录结构及文件基本操作
    1、Linux 的文件组织目录结构。
    2、相对路径和绝对路径。
    3、对文件的移动、复制、重命名、编辑等操作。
     
     

    一、Linux 目录结构

    linux与Windows有本质上的不同。
    一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关系:
    Windows 一直是以存储介质为主的,主要以盘符(C 盘,D 盘...)及分区的来实现文件管理,然后之下才是目录。
     Linux 是以树形目录结构的形式来构建整个系统的,可以理解为一个用户可操作系统的骨架。
    *虽然本质上无论是目录结构还是操作系统内核都是存储在磁盘上的,但从逻辑上来说 Linux 的磁盘是“挂在”(挂载在)目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。
     
    1.FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准) 标准
    FHS 定义了系统中每个区域的用途、所需要的最小构成的文件目录同时还给出了例外处理与矛盾处理。
     
    FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据
    第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。
     
     
     
    FHS 依据文件系统使用的频繁与否以及是否允许用户随意改动(注意,不是不能,学习过程中,不要怕这些),将目录定义为四种交互作用的形态
     
     
    2.目录路径
     
    以 . 开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,你可以使用 ls -a 命令查看隐藏文件
    - 表示上一次所在目录, 通常表示当前用户的"home"目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。
    进入上一级目录:$ cd .. 
    进入你的“home”目录: $ cd ~  
                                               # 或者 cd /home/<你的用户名>
    使用 pwd 获取当前路径: $ pwd
     
     
    相对路径:也就是相对于你当前的目录的路径,相对路径是以当前目录 . 为起点,以你所要到的目录为终点
     
    绝对路径进入bin:
    相对路径进入bin:
     
    *提示:在进行目录切换的过程中请多使用 Tab 键自动补全,可避免输入错误,连续按两次Tab可以显示全部候选结果
     

    二、Linux 文件的基本操作

    1.新建
     
    新建文件
    使用 touch 命令创建空白文件
     
    新建目录
    1.使用 mkdir(make directories)命令可以创建一个空目录,也可同时指定创建目录的权限属性
    2.使用 -p 参数,同时创建父目录(如果不存在该父目录)
    *创建一个多级目录(这在有时候安装软件,配置安装路径时非常有用)
     
    2.复制
    使用cp(copy)命令复制一个文件或目录到指定目录
     
    复制文件
     cp test father/son/grandson
     
    复制目录
    要成功复制目录需要加上-r或者-R参数,表示递归复制
     
    3.删除
     
    删除文件
    使用rm(remove files or directories)命令,删除一个文件或目录:
    到想要删除一些为只读权限的文件,直接使用rm删除会显示提示,你如果想忽略这提示,直接删除文件,可以使用-f参数强制删除
    例:$ rm -f test
     
     

    删除目录:跟复制目录一样,要删除一个目录,也需要加上-r-R参数

     
    4.移动文件与文件重命名
    移动文件
    1.使用mv(move or rename files)命令,移动文件(剪切)。
     
    2.重命名:将文件"file1"重命名为"myfile" mv 旧的文件名 新的文件名
     
    批量重命名
    我们可以使用一个看起来更专业的命令rename来实现
    # 使用通配符批量创建 5 个文件
    $ touch file{1..5}.txt
    # 批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件
    $ rename 's/.txt/.c/' *.txt
    # 批量将这 5 个文件,文件名改为大写
    $ rename 'y/a-z/A-Z/' *.c
     

    5.查看文件

    使用cat,tacnl命令查看文件
    cat,tac用来打印文件内容到标准输出(终端),其中cat为正序显示,tac倒序显示
     
    标准输入输出:当我们执行一个 shell 命令行时通常会自动打开三个标准文件,
    即标准输入文件(stdin),默认对应终端的键盘;
    标准输出文件(stdout)和标准错误输出文件(stderr)
     
     
    比如我们要查看之前从"/etc"目录下拷贝来的passwd文件(可以加上-n参数显示行号)
    $ cat -n passwd
     
     
    *nl命令,添加行号并打印,这是个比cat -n更专业的行号打印命令。
    -b : 指定添加行号的方式,主要有两种:
        -b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
        -b t:只列出非空行的编号并列出(默认为这种方式)
    -n : 设置行号的样式,主要有三种:
        -n ln:在行号字段最左端显示
        -n rn:在行号字段最右边显示,且不加 0
        -n rz:在行号字段最右边显示,且加 0
    -w : 行号字段占用的位数(默认为 6 位)
     
    使用moreless命令分页查看文件
    "man"手册内部就是使用的 less 来显示内容
    可以使用Enter键向下滚动一行,使用Space键向下滚动一屏,按下h显示帮助,q退出。
     
     
    使用headtail命令查看文件
    如当我们想要查看最近新增加的用户,那么我们可以查看/etc/passwd文件
     
    tail命令参数-f,这个参数可以实现不停地读取某个文件的内容并显示。
     

    6.查看文件类型

    通常使用file命令可以查看文件的类型
    $ file /bin/ls
     
     

    作业:

    小眼睛:$ nohup xeyes &
     
  • 相关阅读:
    神武
    position 属性
    C# 工作区和窗口的属性名
    魔兽世界命令行
    Dota2一直 正在登录服务器的解决办法
    dota2交换物品
    Servlet的5种方式实现表单提交(注册小功能)
    JQuery的ajaxFileUpload的使用
    JS日期转换
    Tomcat7后台通过get接收数据处理乱码
  • 原文地址:https://www.cnblogs.com/midori/p/4822165.html
Copyright © 2020-2023  润新知