C高级 DAY2

一、创建硬链接文件In

类似于复制粘贴

格式为:

        In          被链接的文件名          生成的硬链接文件名

修改任意文件另一文件都会发生变化 

但如果删除任意文件,另一文件都不会受到影响,只有硬链接文件数为0时,才表示文件被删除

当删除文件硬链接文件后在创建一个同名文件,这个同名文件是个全新的文件

文件类型是-    普通文件

二、创建软链接文件In -s

和Windows端的快捷方式类似

格式为:

        In          -s          被链接文件的绝对路径          软链接文件的绝对路径

建议在创建软链接文件时,加文件的绝对路径

任一文件修改都会影响另一个文件

如果源文件被删除链接文件会失效,如果重新创建一个同名源文件,软链接文件就会重新被链接

软链接的文件类型是l

拷贝软链接文件时,为了保持链接文件原有的属性,加上-d参数,如果不加,仅仅复制过来一个普通文件

三、用户相关操作

新建用户命令

sudo adduser 用户名

新建用户时,会创建一个同名的组,如果创建用户时,同名组已经存在,
会提示组已经存在,并且用户不会创建成功   --->使用sudo delgroup 把同名组删掉

给新用户添加sudo权限

修改/etc/sudoers文件,需要sudo权限,切换到超级用户或者切换到有sudo权限的用户

sudo vim /etc/sudoers

C高级 DAY2_第1张图片

打开sudoers文件,按照上面原有的内容抄下来,需要把%admin改成用户名

(不要复制粘贴)

C高级 DAY2_第2张图片

删除用户

sudo deluser 用户名        可以删除用户但不删家目录

sudo userdel -r 用户名        删除用户同时删除家目录

修改用户信息

修改时确保用户不在线

sudo usermod -c 新的描述信息 用户名
sudo usermod -l 新的用户名  用户名
sudo usermod -m -d  新的家目录路径  用户名
-m -MOVE    -d -HOME_DIR
sudo usermod -g 新的组 用户名 ---->需要保证目标组已经存在
查看/etc/group中记录所有已经存在的组

/etc/passwd中的一行

ubuntu:用户名

x:用户是否加密

1000:uid

1000:gid

guoq:描述信息 ------>会在图形化界面显示(开关机登陆界面)

/home/ubuntu:用户的家目录

/bin/bash:用户使用的shell解析器

磁盘的挂载 ---->mount
因为在linux下万物皆文件,磁盘会被识别成一个块设备文件,没有办法直接写入文件
可以选择一个已有的文件夹,让磁盘分区挂载到这个文件夹下,挂载成功后,对该文件夹的操作就相当于对磁盘的操作
 

sudo mount 要挂载的磁盘分区 挂载的目录
sudo umount 取消挂载的分区
sudo umount 取消的挂载点(尽量用这种)
常见的问题:
1.先检查U盘有没有被自动挂载,df -h ---->查看U盘的挂载点  umount
2.使用fidsk工具,对整个物理磁盘分区,sdb后面不带数字
3.如果后面需要对分区格式化,分区分小一点空间
4.挂载的注意事项:
挂载的目录本身存在,挂载后无法访问到目录原有的内容,如果不取消挂载,然后把U盘弹出了,就无法继续访问挂载点目录,可以通过取消挂载去解决  ,sudo umount  挂载点名

四、shell

编译型语言:C/C++...-----需要编译器

解释型语言:shell、python ------需要解析器

起到保护内核作用,由于用户无法和内核层交互,于是通过指令和shell解析器能完成这一目的

应用层:代码
---------------------------     shell解析器
内核层:
    内核层的五大功能:
        1、内存管理
        2、网络管理
        3、进程管理
        4、文件管理
        5、设备管理 
---------------------------
硬件层:外部设备

常见的shell解析器

bash:现在市面上大部分linux都使用bash解析器

dash:比bash功能更少一点

sh:和终端的交互性不好

csh:类似C语言的模式

可使用echo $SHELL查看本机使用的解析器

i)bash

        bash 文件名.sh ------>使用shell解析器去解析脚本

bash在运行脚本时,会在后台打开一个新的终端,把运行的结果返回到当前终端

ii)source

source是一个终端指令

                source 文件名.sh

source在同一个终端上运行和输出结果

iii)直接给脚本添加可执行权限

chmod 777 脚本名

                                                                ./脚本名

你可能感兴趣的:(shell)