uinx/linux笔记(一)

推荐书籍:Unix/Linux编程实践教程 ——清华大学出版社——Bruce Molay著

实践系统:windows下wsl安装ubuntu的Linux系统

目录

一、操作系统

二、登录系统

二、目录操作

 三、文件操作


一、操作系统

计算机用操作系统管理所有的资源,操作系统也是程序,与普通程序一样,也运行在内存中,但它也是一个特殊的程序,内存会单独分出一部分空间来容纳操作系统,称为系统空间,其他用来容纳应用程序的叫做用户空间。操作系统也被称为内核,程序要访问设备,得到数据等都要通过内核才能进行操作。

二、登录系统

因为是多用户系统,登录时需要输入用户名和密码。

切换用户我们可以用su命令,同样需要输入我们切换到的用户的密码,输入密码时是不会显示的,全凭手感。比如我们现在切换到root用户:

uinx/linux笔记(一)_第1张图片

 作为多用户系统,怎么增加用户喃?需要在root用户下或者超级用户下首先在home目录下mkdir命令新建一个用户名字的文件夹,然后利用useradd命令。现在我们增加一个temp用户,还需要用passwd命令设置密码才算创建新用户成功,因为是在root用户下,切换普通用户是不需要密码的:

uinx/linux笔记(一)_第2张图片

uinx/linux笔记(一)_第3张图片

这时你会发现前面变成了只有一个$符号。这是因为用户使用的shell不一样。shell可以认为是用户和系统交流的媒介,当登录系统后,系统会启动一个叫shell的进程,然后把用户交给这个进程,这个进程会处理用户的请求。每个用户都有自己的shell进程,当用户使用exit命令或Ctrl+D注销时,内核会结束所有分配给该用户的进程。如图所示,从fengguiyu用户切换到root用户再切换到了temp用户的shell,在退出了temp用户的shell,进入了root的shell,再exit进入了最开始的fengguiyu的shell,这时如果再输入exit命令,系统的shell都关闭了也就退出了。 

uinx/linux笔记(一)_第4张图片

回到正题,为什么temp的shell不一样喃,那是因为shell的类型的不一样,常见的shell类型可以看一下这个常见的Shell 类型_编程Thinker的博客-CSDN博客_shell类型

通常我们使用的是bash类型的shell,怎么设置喃?  我们可以利用cat /ect/shells查看我们系统支持的shell格式有哪些,我们回到root用户下,然后利用usermod -s命令改变shell类型。uinx/linux笔记(一)_第5张图片

这时注意了,bin前面一定要加上“/",为什么喃?其实,Unix系统中,文件和目录都被组织成了树状的结构,“/”就是树的最顶端,也就是根目录。一般来说,根目录下都包含了几个特定的子目录,比如bin,home,etc等,他们都有特定的用途。比如home下面就是用户目录了。

uinx/linux笔记(一)_第6张图片

二、目录操作

 因为特殊的文件结构,Unix系统有很多命令都是跟目录相关的。

代表当前目录 : .

代表上级目录:..

列出当前目录下的内容:ls,列出指定目录下的内容:ls 指定目录路径

 uinx/linux笔记(一)_第7张图片

 改变当前目录到指定目录:cd 指定目录 

显示当前目录的绝对路径:pwd

新建目录:mkdir 文件夹路径/文件夹名

删除目录:rmdir 文件夹路径/文件夹名          注意:rmdir只能删除空文件夹

uinx/linux笔记(一)_第8张图片

 三、文件操作

 查看文件内容:cat、more

uinx/linux笔记(一)_第9张图片

cat会列出文件的所有内容,而more则会在显示一个屏幕后暂停输出,按空格键输出下一屏,按回车键显示下一行,当一屏内显示不完时,more会更合适。

复制文件:cp

 cp src dest:将src文件复制一份,新的文件名为src。也可以在文件名前指定路径来表示原文件的存放路径以及新文件的存放路径。可以通过添加option来选择不同的功能,cp -r可以用来递归的复制整个文件夹和里面的文件到dst文件夹下。

uinx/linux笔记(一)_第10张图片

 删除文件:rm

 rm命令后面可以跟好几个文件名表示都要删除。可以通过添加option来选择不同的功能,比如rm -r表示递归的删除,它可以删除文件夹,即使这个文件夹里有文件,也会被递归的删除掉,相当于整个文件夹删除,也是比较常用的操作 。

uinx/linux笔记(一)_第11张图片

 注意,Unix并不会提供文件恢复功能,因为Unix是多任务用户系统,当一个文件被删除以后,它占用的内存空间可能就会被分配给其他用户。

重命名或移动文件:mv

mv 可以更改文件名或移动文件到新的位置。

uinx/linux笔记(一)_第12张图片uinx/linux笔记(一)_第13张图片

 Unix系统通过一些文件属性来对文件和命令的操作进行控制。每个文件都有文件所有者owner和文件许可权限。文件许可权限分为3组,通过ls -l 或者 ll命令查看路径下的文件和文件夹的许可权限,区别是ll还可以查看隐藏文件的许可权限。ls -l中,-l称为命令行选项,设定好的不同的命令行选项可以设同样的命令有不同的效果,-l在这就表示输出文件或文件夹的详细信息,包括许可权限、文件所有者、文件大小、最后修改时间。

uinx/linux笔记(一)_第14张图片

 图中的drwxr-xr-x就是文件的许可权限,分为3组,第一组由4位(drwx)表示,第二组由三位(rwx)表示,第三组由三位三位(rwx)表示。d表示是文件夹,r表示read读权限,w表示write写权限,x表示execute执行权限。如果没有显示为-,则表示文件没有该权限,那为什么有三组权限喃?因为用户也分为了三组,第一组user为文件所有者,第二组group为和文件所有者同组的用户,第三组other为其他用户,权限也依次对应。这些权限都可以用chmod命令来设定。

例如:
  - rw- r-- r--
  表示是一个普通文件而不是文件夹;文件所有者有读写权限;同组的用户只有读权限;其他用户也只有读权限。

设置文件权限:chmod

chmod命令该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

文字设定法:语法:chmod [who] [+ | - | =] [mode] 文件名,

操作对象who可是下述字母中的任一个或者它们的组合:(默认是all)

  u 表示“用户(user)”,即文件或目录的所有者。

  g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。

  o 表示“其他(others)用户”。

  a 表示“所有(all)用户”。它是系统默认值。

操作符号可以是:+ 添加某个权限。- 取消某个权限。= 赋予给定权限并取消其他所有权限。

设置 mode 所表示的权限可用下述字母的任意组合:r 可读。w 可写。x 可执行。

例子:将new.cpp给所有用户增加执行权限uinx/linux笔记(一)_第15张图片

 数字设定法:语法: chmod [mode] 文件名

系统设置的数字与字符对应关系:r=4,w=2,x=1

则当需要设置rwx权限时,4+2+1=7;若要rw-属性则4+2=6;

又因为有三组用户权限,所以我们用3个小于等于7的数表示要设置的权限,也就是[mode]。

例子:将new.cpp给所有用户增加所有权限即为777uinx/linux笔记(一)_第16张图片

 

你可能感兴趣的:(linux,c++,python,linux,unix)