Linux基础(文件管理、用户管理、权限管理)

Linux操作系统基础

(一)文件管理

1. 概述

  • Everything is a File,即Linux系统,本质是一个文件系统,文件目录结构如下:
    在这里插入图片描述
    Linux系统的目录结构是一个倒树型,其最大的目录是 / 根目录,根目录其余的二级目录大多是在安装系统时创建的。
  • 使用命令查看系统的目录结构:
    在这里插入图片描述
  • 对目录的解释:

/bin:Binary的缩写,这个目录存放着最经常使用的命令;
/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件;
/dev :Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的;
/etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录;
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的;
/lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库;
/media:Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下;
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了;
/opt: 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下,默认是空的;
/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息;这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
/root:该目录为系统管理员,也称作超级权限者的用户主目录;
/sbin:s就是Super User超户,这里存放的是系统管理员使用的系统管理程序;
/sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs,
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统,该文件系统是内核设备树的一个直观反映,当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建;
/tmp:这个目录是用来存放一些临时文件的;
/usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录;
/usr/bin:系统用户使用的应用程序;
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序;
/usr/src:内核源代码默认的放置目录;
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件;
/run:是一个临时文件系统,存储系统启动以来的信息,当系统重启时,这个目录下的文件应该被删掉或清除,如果你的系统上有 /var/run 目录,应该让它指向 run;

注意
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动;
/bin、/sbin、/usr/bin、/usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的;bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

2.常用命令

cd 切换当前工作目录至某一目录;
ll 列出来的结果详细,有时间、是否可读写等信息 ,像windows里的详细信息;
ls 只列出文件名或目录名,就象windows里的列表;

llls -l 别名 ,ls -l 是 ll 命令的完整命令
我们可以通过 cd /某一个目录 然后 ls 查看该目录下的内容;

pwd 目前所在的工作目录的绝对路径名称;
cat 用于连接文件并打印到标准输出设备上,不能作用于目录;
touch 用于修改文件或者目录的时间属性,包括存取时间和更改时间,若文件不存在,系统会建立一个新的文件;
mkdir 建立一个子目录;
mv 用来为文件或目录改名、或将文件或目录移入其它位置;

命令 结果
mv 文件名 文件名 将源文件名改为目标文件名
mv 文件名 目录名 将文件移动到目标目录
mv 目录名 目录名 目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名
mv 目录名 文件名 出错

rm 用于删除一个文件或者目录;

rm test.txt
rm:是否删除一般文件 “test.txt”? y
rm homework
rm: 无法删除目录"homework": 是一个目录
rm -r homework
rm:是否删除目录 “homework”? y
rm -r *:删除当前目录下的所有文件及目录,慎用!

cp 用于复制文件或目录;

cp file /tmp/:将名为file文件复制到tmp目录下;
cp file /tmp/newfile:将名为file文件复制到tmp目录下并改名为newfile;
cp –r test/ newtest:用户使用该指令复制目录时,必须使用参数"-r"。

注意: Linux命令太多!我们很难记住,输入命令开头一个或几个字母,再使用 Tab 键可以列举出所有以它开头的命令,结合命令 --help ,学会使用该命令!

3.vim编辑器

在这里插入图片描述

  • 使用 vim 命令进入,i 进入输入模式(INSERT),编辑完成,ESC进入命令模式,输入:,再加 q 退出程序,或者 w 保存文件,或者 wq 保存并退出
  • 直接进入vim编辑器:没有进入指定的文件,即没有文件名;wq 后需要加文件名!
  • 复制粘贴:在命令模式下,yy 或者 y需要复制的行数y :y3y 即复制三行;p 粘贴,退出INSERT模式下使用,复制行数从你光标处开始算往下数!
  • 剪贴:在命令模式下,dd
  • 撤销:在命令模式下,u
  • 查找:在底线命令模式下,输入 / 查找的内容 或者 ?查找的内容,会将所查找的文本标黄;n 键往下匹配文本、N 键网上匹配文本
  • 替换:在底线命令模式下,输入 :%s/需要替换的文本/新内容/g
  • 设置行号:在底线命令模式下,:set nu
  • 取消行号:在底线命令模式下,:set nonu
  • 分屏:Ctrl-w s 将当前视窗分割成两个水平视窗;Ctrl-w v 将当前视窗分割成两个垂直视窗
  • 取消分屏:在底线命令模式下,:only
  • 使用分屏同时编写多个文件:vim -O/o file1 file2... ,大O表示垂直分割(vertical),小o表示水平分割(默认horizontal)
  • 移动光标,也就是切换分屏;也可以移动分屏,比如将左分屏移动到右边。
      ctrl+w 和 h(H):左
      ctrl+w 和 j(J) : 下
      ctrl+w 和 k(K):上
      ctrl+w 和 l(L): 右
      ctrl+w 和 w:各种切换

4.输入输出重定向

比如 :我们通过find命令查找etc目录下的 passwd文件,由于权限问题,会出现以下:
在这里插入图片描述
0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)

  • 如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:
    find /etc -name passwd 2> /dev/null
    结果:
    在这里插入图片描述
  • 将错误重定向到/dev/null,将正确的重定向到test中:
    结果:
    在这里插入图片描述
  • 重定向追加:>>
    > 使用多次后,它会覆盖之前的内容,只输出一次,>> 不会覆盖内容,多次追加:
    在这里插入图片描述
    &>可以将错误信息或者普通信息都重定向输出
  • 输入重定向:
    在这里插入图片描述
  • 管道:|
    | 表示,上一条命令的输出,作为下一条命令参数(输入)
    在这里插入图片描述

(二)用户管理

1. 概述

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统,每个用户账号都拥有一个唯一的用户名和各自的口令,用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

用户信息存储目录:
/etc/passwd:存储所有用户登录名清单
/etc/group:存储有关本地用户组的信息
/etc/shadow:存储 Linux 系统中用户的密码信息(影子文件)
/home/username:用户的主目录
/etc/skel:默认的用户目录架构

2. 常用命令

  • 增加用户:
    useradd 用户名
    在这里插入图片描述
    登录用户:su - user1
    退出当前用户:logout/exit/Ctrl+d
  • 增加一个组:
    groupadd 组名
  • 删除一个组:
    groupdel 用户组
  • 增加一个用户放入指定的组中:
    useradd -g user1 user2
    在这里插入图片描述
  • 附加组:增加权限,将user1再附加到newgroup组中:
    usermod -G newgroup user1
  • 删除帐号
    userdel 用户名
  • 修改密码
    passwd
    普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。
    为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。
  • chage命令:修改用户密码一些权限
    chage -m 30 -M 90 -W 7 -I 15 -E 2020-12-31 user1
    -m:设置密码前的最小天数
    -E:将帐户到期日期设置为EXPIRE日期
    -M:设置密码前的最大天数
    -W:设置警告天数
    -I:超过期限,预留的时间
    -d:设置上次密码的日期

(三)权限管理

1.概述

  • Linux的文件和目录有以下三种方式:
    r 、w 、x:可读,可写 、可执行
    r-可读(read)
    w-可写(write)
    x-可执行(execute)
  • 在Linux中,常用的文件类型为以下三种:
    d :目录 directory
    - : 二进制文件 binary
    l : 软链接文件 link
  • 如:-rw-r--r--. 1 root root 158 Jun 7 2013 /etc/hosts
    第一个字符表示:文件类型,2-4字符表示:文件所有人权限,5-7字符表示:文件所有组权限,8-10字符表示:其他人权限。
    所以上面可翻译:这是一个二进制文件,所有者可读可写 、不能执行,所属组可读 、不能写 、不能执行,其他人可读 、不可写 、不能执行,硬连接数为1,所有人为root,所有组为root,文件大小为158,创建时间或最后修改时间为Jun 7 2013,文件名为/etc/hosts。

2.chmod命令

改变文件或目录权限

  • 为了方便表示,linux用了一个很简单的方法来区别,r用4表示,w用2表示,x用1表示,把他们对号入座:r - 4、 w - 2、 x - 1
    所以第一个字符表示类型是目录,不考虑,接下来的三个三位数(r-xr-xr-x)就可以这么转换:(4+0+1)+(4+0+1)+(4+0+1)= 555
    所以555能代表什么就懂了~
  • 数字转权限和权限转数字
    1)数字—>权限
    例如 764 :对应的就是将7分解为4 、2 、1,将6分解为4 、2 、0,将4分解为4 、0 、0,所有对应权限为 rwxrw-r--
    654: 6=4+2+0, 5=4+0+1, 4=4+0+0 结果为:rw-r-xr--
    2)权限—>数字
    例如 drwxrw-r--: 第一位d代表类型,不参与计算,rwx=4+2+1=7,rw-=4+2=0=6, r-- = 4+0+0=4最终结果为764
    3)演示:创建一个目录
    在这里插入图片描述
    初始值为:drwxrwxr-x :转化为数字的值为:775
    我们将它权限修改为:drwxrwxr--,即chmod 774 dir:
    在这里插入图片描述

//下篇再见…谢谢
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章