• Linux课程实践一:Linux基础实践(基础操作)


    一、软件源维护

    1. 基本操作

    (1)查看源列表

    sudo vim /etc/apt/sources.list
    
    • deb:二进制软件安装包
    • deb-src:源码包

    (2)备份软件源列表

    sudo cp /etc/apt/source.list /etc/apt/backup_source.list
    

    (3)更新源

    sudo apt-get update
    

    (4)升级源

    sudo apt-get upgrade
    

    (5)通过关键字查找安装包

    sudo apt-cache search [软件名]
    

    (6)安装软件

    sudo apt-get install [软件名]
    

    (7)卸载软件

    sudo apt-get remove [软件名]
    

    (8)升级软件

    sudo apt-get -u install [软件名]
    

    (9)从指定网址下载deb包

    wget [网址/xxx.deb]
    

    2. 常见问题:通过终端安装程序sudo apt-get install xxx时出错

    错误提示:

    E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
    E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it
    

    错误原因:

    • 可能是有另外一个程序正在运行,导致资源被锁不可用。
    • 资源被锁的原因可能是上次运行安装或更新时没有正常完成。

    解决:

    sudo rm /var/cache/apt/archives/lock
    sudo rm /var/lib/dpkg/lock
    

    二、Linux权限管理

    1. 文件权限

    (1)查看权限

    ls -l
    

    (2)9bit:权限管理相关

    图片来源:Linux及安全——Linux基础实践

    • 文件类型
      • “-”表示普通文件。
      • “d”表示目录文件。
      • “l”表示链接文件。
      • “c”表示字符设备。
      • “b”表示块设备。
      • “p”表示命名管道,比如FIFO文件(先进先出)。
      • “f”表示堆栈文件,比如LIFO(后进先出)。
      • “s”表示套接字。
    • 属主权限:文件拥有者(u)对该文件的权限。
    • 属组权限:文件用户组(g)对该文件的权限。
    • 其它用户权限:系统其他用户(o)对该文件的权限。

    (3)更改文件权限方法一

    chmod [对象] [操作] [权限] [文件/目录名]
    
    • 对象:
      • u:表示文件所有者
      • g:表示同组用户
      • o:表示其它用户
      • a:表示所有用户
    • 操作:
      • +:添加某个权限
      • -:取消某个权限
      • =:赋予给定的权限,并取消原有的权限
    • 权限:
      • r:可读
      • w:可写
      • x:可执行

    (4)更改文件权限方法二

    chmod [_ _ _] [文件/目录名]
    
    • 将 r w x 看成二进制数,如果有则有1表示,没有则有0表示
    • 例:文件权限为最高权限 rwx rwx rwx,二进制表示为 111 111 111,换算后为 777,所以命令为 chmod 777 [文件/目录名]

    (5)改变文件拥有者和群组

    chown [选项] [所有者]:[组] [文件]
    
    • 选项
      • -c 显示更改的部分的信息
      • -f 忽略错误信息
      • -h 修复符号链接
      • -R 处理指定目录以及其子目录下的所有文件
      • -v 显示详细的处理信息
      • -deference 作用于符号链接的指向,而不是链接文件本身

    2. 用户与用户组

    (1)切换到root

    sudo su
    

    (2)切换到其它用户

    su [用户名]
    

    (3)创建用户

    adduser [用户名]
    useradd [用户名]
    
    • 在root权限下,useradd只是创建了一个用户名,它并没有在/home目录下创建同名文件夹,也没有创建密码,因此利用这个用户登录系统,是登录不了的。
    • 可以用 useradd -m [用户名] 的方式创建,它会在/home目录下创建同名文件夹,然后用 passwd [用户名] 为指定的用户名设置密码。
    • adduser创建新用户会在/home目录下会自动创建同名文件夹。
    • 系统会在 /etc/passwd 文件中增添了一行记录。

    (4)删除用户

    adddel
    

    (5)创建用户组

    groupadd [组名]
    

    (6)查看用户组

    grep [组名] /etc/group
    

    (7)删除用户组

    groupdel [组名]
    

    (8)修改用户组

    sudo usermod -g [用户] [用户组]
    
    • 如果用户已经是其他组的成员,需要添加 -a 这个选项

    3. 开机脚本

    (1)修改开机脚本

    sudo vim /etc/init/rc-sysinit.conf
    
    • 其中有一行 env DEFAULT_RUNLEVEL指系统当前启动后运行级别

    (2)Ubuntu的runlevel级别定义

    0 – Halt,关机模式。不能将系统缺省运行级别设置为0,否则无法启动。
    1 – Single,单用户模式。
    2 - Full multi-user with display manager (GUI)。
    3 - Full multi-user with display manager (GUI)。
    4 - Full multi-user with display manager (GUI)。
    5 - Full multi-user with display manager (GUI)。
    6 – Reboot,重启。不能将系统缺省运行级别设置为6,否则会一直重启。
    
    • 2~5级是没有任何区别的。他们为多用户模式

    (3)开机脚本使用原理

    • init进程就会读取这个系统运行级别设置,然后运行 /etc/rc.d/rc 脚本。
    • 通过这个脚本,然后进入rcx.d。启动相应的程序。其中 rcx.d为/etc/rc.d/rcx.d(x为对应的系统运行级别)。
    • /etc/rc.d/rcx.d/ 下的文件均为符号链接,最终绝大部分都是都是链接到 /etc/rc.d/init.d 下面。
    • /etc/rc.d/init.d 目录下面的都是开启启动脚本文件,用来启动相应的程序。
    • 在rcN.d中,对于以K开头的文件,系统将终止对应的服务;对于以S开头的文件,系统将启动对应的服务。

    (4)修改某开机启动服务为开机终止服务

    sudo mv Sxxgdm Kxxgdm
    

    (5)删除某开机自启动文件

    sudo update-rc.d –f xxx remove(其中xxx是文件名中除了S和K以外的非数字部分)
    

    (6)写一个开机脚本并添加

    • 在/etc/init.d文件夹下编写一个新的脚本文件xx.sh
    • sudo chmod 给脚本文档设置权限。
    • 将脚本的路径写入 /etc/init.d/rc.local中。
    • sudo update-rc.d xx.sh defaults [启动顺序]

    4. 环境变量

    • PATH决定了shell将到哪些目录中寻找命令或程序。

    (1)临时修改环境变量

    export PATH=$PATH:[目录]
    
    • 每当登出或注销系统以后,PATH 设置就会失效

    (2)修改环境变量

    vim /etc/profile 
    
    • 在文件中添加PATH="目录:$PATH"

    source /etc/profile
    
    • 新PATH立即生效

    5. 常见问题:新建用户后,新用户无法使用sudo的解决方法

    错误提示:

    xxx is not in the sudoers file.This incident will be reported.
    

    错误原因:

    • 执行sudo命令的用户不在sudoers文件的列表中。

    解决方法:

    • 在原用户中切换到root下:

        sudo su
      
    • 添加sudo文件的写权限:

        chmod u+w /etc/sudoers
      
    • 编辑/etc/sudoers文件:

      找到 root ALL=(ALL) ALL
      在下面添加 [新用户名] ALL=(ALL) ALL

    • 退出的时候撤销sudoers文件写权限

      chmod u-w /etc/sudoers


    参考资料

    参考资料1:Linux及安全——Linux基础实践
    参考资料2:实践一:Linux基础实践
    参考资料3:deb包构建手册
    参考资料4:ubuntu常见错误--Could not get lock /var/lib/dpkg/lock解决
    参考资料5:每天一个linux命令目录
    参考资料6:深入理解linux下rc.d/目录文件以及程序开机自启动
    参考资料7:xxx is not in the sudoers file.This incident will be reported.的解决方法

  • 相关阅读:
    FragmentTabHost实现标签卡效果
    TabLayout+ViewPager实现标签卡效果
    NavigationView的使用
    大数据怎么学习,在学习大数据之前,需要具备什么基础?
    为什么学习大数据,大数据科学家写给大数据学习者的坚定理由
    一步一步学习大数据:Hadoop 生态系统与场景
    0基础学习大数据你需要了解的学习路线和方向
    大数据的入门级学习(全套)
    大数据学习系列之—HBASE
    为什么这么多人学习大数据?新手该如何上手大数据?
  • 原文地址:https://www.cnblogs.com/hyq20135317/p/5469210.html
Copyright © 2020-2023  润新知