2019-2020-1 20199328《Linux内核原理与分析》第一周作业

Windows和Linux在收费方面,软件知识方面,安全性、使用习惯、可定制性上以及应用范畴上都有所不同,UNIX/Linux操作系统下的Shell既是用户交互的界面,也是控制系统的脚本语言,其中Ubuntu终端默认使用的是bash。

快捷键的使用

    利用touch进行文件的创建,利用cd命令来进入一个目录,在输入命令的时候可以利用tab键来进行辅助,利用Ctrl+c来强行终止当前程序而不会使终端退出,利用键盘上的上方向键来利用历史输入命令,利用 ls *.xxx命令来进行模糊查询,当然我们也可以进行多文件创建,这里只需要在文件名中加入{1..n}就可以了, 在遇到问题的时候,我们可以通过man <command _name>来进行相关命令说明和使用方法的查看,如果要更加详细的命令说明,可以使用info方法,利用banner xxx可以打印文字,toilet命令可以给文字加边框,figlet命令则可让字母全都大写。

Linux用户管理

    利用who am i 命令可以惊醒查看当前伪终端的用户名,若要查看当前登录用户的用户名则中间不加空格(其中伪终端是图形用户接麦你使用/dev/tty时,每打开一个终端就会生成一个)。在Linux中,root账户拥有最大的权力,要创建用户要使用sudo命令,在使用该命令时,除了需要用户名和密码外,当前用户还必须是sudo用户组,命令上,利用su <用户名>来进行用户的切换(su -l <用户名>),用sudo 来执行创建用户等操作。Linux中还有许多的用户组,主要为方便同组用户共享资源,在查看用户所在组时,可以通过groups <用户名来进行查看,这里如果是没有指定组的新建用户,系统会自动创建一个同名的的用户组,在 /etc/sudoers.d 目录上进行同名文件的操作可以进行用户sudo权限的赋予,我们查看文件时,可以利用cat命令读取指定文件的内容并打印到终端, 进而可以利用 | sort命令进行字典排序再输出,例如:cat /etc/group | sort。如果输出太多不易查找可以通过cat <路径>  | grep -E "目标文字"进行筛选。对于新创建的用户是没有root权限的,这里要给其添加root权限需要使用sudo用户组的用户(或root用户),利用groups查看用户的分组,再利用sudo usermod -G sudo <用户名>进行root权限的赋予,而删除用户则比较简单,使用sudo deluser <用户名> --remove-home就可以了。之前利用的ls命令不止可以查看当前目录下的文件,更加可以查看文件权限,只需要在后面 加上 -l 就可以了,另外我们可以通过ls -A来显示除了当期那当期那目录和上一级目录以外的所有文件。查看目录完整性,利用ls -dl<目录名>l命令。显示所有文件大小,可以利用ls -AsSh命令,其中的小s是显示文件的大小,大S则是按文件大小排序。在变更文件所有者上可以利用sudo  chown <用户名> <文件名>,如果不想其他用户对文件进行读写执行等操作可以使用chmod 600 <文件名>,或者chmod go-rw <文件名>,另外,我们可以利用source命令使配置文件立即生效,在搜索文件上我们可以使用where、locate、which、find命令。

Linux目录结构

    FHS(文件系统层次结构标准),定义了两层规范,第一层是各个目录应该存放什么数据,/etc应该放置文件,/bin和/sbin应放置可执行文件。第二层针对/usr和/var目录的子目录,其中/var/log放系统日志文件,/usr/share放共享数据等,利用pwd命令可以查看当前路径,新建目录利用mkdir (-p可以创建父目录) [路径]<文件名>,使用cp命令可以复制文件到指定目录,例 cp <文件名> <目标路径>,如果要复制目录则要通过 cp -r  <源目录> <目标目录>,删除文件则要利用rm <文件名>,忽视提示信息进行文件删除则要使用rm -f <文件名>来进行操作,删除目录和复制目录类似,也要通过rm -r <文件名>来进行删除,移动文件可通过mv <元目录文件> <目的目录>来进行操作,重命名文件,通过mv  <就文件名> <新文件名>,批量重命名则需要通过rename 命令,查看文件则需要cat(正序)、tac(倒序),这两个可用-n显示行数,nl命令比前两者的行号打印更为专业。利用more命令进行文件的单屏显示,Enter键可以读取下一行,Space键课向下滚动一屏,h显示帮助,q退出。head和tail可以各查看头尾10行,另外可以通过tail -n <所要查看的行数>进行所需行数的查询,另外通过file命令可以进行文件类型的查询。PS:通过xeyes命令可以召唤出一双眼睛,通过nohup xeyes让其进行后台运行。

环境变量与文件查找

    可以通过declare <变量名>进行变量的创建,也可以直接即用即创建,直接tmp=<变量值>,读取变量值时,可以通过echo $<变量名>进行查看,我们会涉及三种变零类型:当前shell进程私有用户自定义变量是、shell本身内建的变量、从自定义变量导出的环境变量对应三种环境变量相关的命令,set(显示当前shell所有变量),env(显示与当前用户相关的环境变量),export(显示从Shell中导出成环境变量的变量)Linux的两个重要文件/etc/bashrc存放shell变量,/etc/profile存放的是环境变量。命令的查找路径,查看path环境变量的内容和查看变量值类似,通过echo $path查看,实验中chmod 755不知道对应什么权限,在网上通过搜寻资料了解到:第一个数字表示文件所有者的权限;第二个数字表示与文件所有者同属一个用户组的其他用户的权限;第三个数字表示其它用户组的权限。而读(r=4),写(w=2),执行(x=1),通过以上可以获知文件所有者可以读写执行,与文件所有者同一个组以及其他组的用户只能读和执行该文件,可利用gcc命令生成可执行文件,另外path可以通过path=$path:/<新路径>来进行添加。删除数据则可以通过${变量名##匹配字串}等命令进行删除,可以用unset命令删除一个环境变量!

文件的打包与压缩

    利用zip命令打包文件,-r递归打包,-q不向屏幕输出信息,-o输出文件。另外使用du命令查看偶人压缩级以及文件大小和-h、-d一起使用效果更佳。可通过zip -e创建加密压缩包,解压则需要unzip <文件名>来解压到当前目录,并可通过-O指定编码类型,有关tar包,tar -cf创建文件(-c)并指定文件名(-f),解包时则可通过tar -xf <文件名> -c <目录>

文件系统操作与磁盘管理

    可以使用df命令查看磁盘的容量,进而使用-h命令查看主机磁盘的使用情况,利用du -h命令,用更加易读的方式查看目录,利用dd命令可以转换和复制文件。创建虚拟镜像文件,sudo mkfs命令可以格式化磁盘,mount命令可以挂在磁盘到目录树,umount命令卸载已挂载磁盘,使用fdisk为磁盘分区,使用losetup命令建立镜像与回环设备的关联。这一章的内容比较晦涩,不太容易理解,准备在今后的课程中继续深入学习。

Linux下的帮助命令

    进入bash的help命令,help 命令是用于显示 shell 内建命令的简要帮助信息,比较简明扼要。man命令显示系统手册页中的内容,内容比用 help 更多更详细,而且man没有内建与外部命令的区分。info命令的信息最为详细。
原文地址:https://www.cnblogs.com/llj76720197/p/11523497.html