欢迎光临散文网 会员登陆 & 注册

小恐的linux学习笔记更新时间2023年4月5日11:08:44

2023-04-05 11:11 作者:恐竹丶石叶秋  | 我要投稿


# ———————————linux学习笔记———————————

# 指令索引

获取帮助信息:`man`、获得shell内置命令的帮助信息:`help`  

关机:`shutdown`、重启电脑:`reboot`  

把内存的数据同步到磁盘:`sync`  

在图形界面注销:`logout`、创建用户:`useradd`  

修改密码:`passwd`、删除用户:`userdel`、切换用户:`su`  

查询用户:`su`、查看当前用户:/`whoami`还有/ `who am i`  

创建组:`groupadd`、删除组:`groupdel`  

运行级别:`init`[0到6]、查看当前位置`pwd`、切换路径`cd`

创建目录`mkdir`、 创建文件`touch`、 复制文件`cp`、 剪切文件`mv`

删除文件`rm`、 打开文件(不编辑)`cat`、查看磁盘信息`df -h`


# 基础篇

# linux的目录结构

。 linux只有一个根目录  

。 /斜杠就代表根目录  

。 在linux里一切皆为文件    

。。所有的硬件在Linux里面都映射成文件去管理  

。 linux的目录

/bin(常用)(usr/bin、 /usr/local/bin)是Binary的缩写,这个目录存放着最经常使用的命令  

/sbin (/usr/sbin、 /usr/local/sbin)s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。  

/home存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名  

/root该目录为系统管理员,也称作超级权限者的用户主目录  

/lib系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库  

/lost+found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件  

/etc(常用)所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库  

/usr(常用)这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。  

/boot(常用)存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件  

/proc(不要去乱碰这个文件夹的一切)这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息/srv(也不要乱动) service缩写,该目录存放一些服务启动之后需要提取的数据  

/sys(也不要乱动)这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs  

/tmp这个目录是用来存放一些临时文件的  

/dev类似于windows的设备管理器,把所有的硬件用文件的形式存储  

/media(常用) linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下  

/mnt(常用)系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载任/mnt/上,然后进入该目录就可以查看里的内容了。d:/myshare  

/opt这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下。默认为空  

/usr/local(常用)这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序  

/var(常用)这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件  

/selinux [security-enhanced linux]SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置.  

# 实操篇——————————————

# 开机重启和用户登录注销

。 shutdown -h now 立刻进行关机  

。。 -h的h代表的是halt

。 shudown -h 1 一分钟后会关机  

。。 -h 1中的1是延迟多少分钟关机

shutdown -r now 现在重新启动电脑  

halt 关机,作用和上面一样  

reboot 现在从新启动电脑  

。 sync 把内存的数据同步到磁盘  

。。 在关机的时候对所有文件进行保存以防丢失的指令


。登录最好不要使用root管理员权限登录    

。。因为权限最大    

。。最好用普通账号登录之后使用su-用户名切换成root管理员权限  

。登录注销用户指令    

。。logout  

。。在图形界面这个指令是不能使用的仅限于控制台使用  


# 用户管理

。linux是多用户多任务的系统  

。。任何使用系统资源的用户都得要申请一个用户账号  


## 创建用户  

。基本语法  

。。useradd 用户名  

```

useradd xiaoVxiaoV

```

。。新创建的用户的家目录在home/xiaoVxiaoV    

。。可以通过useradd -d 指定目录 新的用户名,给新创建的用户指定家目录

```

useradd -d /home/test xiaoVxiaoV

```

。。。xiaoVxiaoV的家目录规定创建在home的test的目录下    


## 修改密码

。基本语法  

。。passwd 用户名  

```

passwd xiaoVxiaoV

pwd

```

。。如果只输入passwd不输入用户名就会修改当前使用的用户名的密码  

。。pwd是显示当前自己所在的那个目录下  

## 删除用户

。删除用户有两种  

。。删除用户并且删除目录

。。。userdel -r 用户名称

```

userdel -r xiaoVxiaoV

```

。。删除用户并且保留目录    

。。。userdel 用户名称

```

userdel xiaoVxiaoV

```

。自己没法删除自己  

## 查询用户信息

- a基本语法

  - a `id 用户名`

  - s代码

    ```

    id root

    ```

  - s会显示的信息

    - a uid

    - s 组id

    - s 所在哪个组

    - d

  - d

- s

- d

## 切换用户

- a语法

  - a `su - 切换的用户名`

  - d

- s权限高的用户切换至权限底的用户不需要输入密码

- s当腰按返回到原来的用户需要使用/exit或/logout指令

- d

## 查看当前用户信息

- a基础语法

  - a /whoami

  - s / who am i

  - s会显示你是谁

    - a在哪个组

    - s你是什么时候登录和时间

    - s 显示IP

    - d

  - s

  - d

-

- d

## 用户组

- a什么是用户组

  - a用户组类似角色

  - s系统可以对有共性/权限多个多个用户进行统一管理

  - s给每一个用户都单独赋予权限是很累的事情

  - s但是给组赋予特定的权限拉进组里的用户就有相同的权限了

  - d

- d

## 新建主

- a基本语法

  - a `groupadd 组名`

  - s

  -

  - d

- s

## 删除组

- a基本用法

- s `groupdel 组名`

- d

## 增加用户时直接加上组

- a基本语法

- s `useradd -g 用户组 用户名`

- d

## 修改用户的组

- a基本语法

  - a `usermod -g 用户组 用户名`

  - d

- d

## 用户和组相关文件

- a /tec/passwd 文件

  - a用户( user )的配置文件,记录用户的各种信息

  - d每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

- s /etc/shadow文件

  - a口令的配置文件

  - s每行的含义:登录名:加密口令:最后次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

  - d

- s /etc/group 文件

  - a组(group)的配置文件,记录Linux包含的组的信息

  - s每行含义:组名:口令:组标识号:组内用户列表

  - d

- d

# 实用指令

- a运行级别说明

  - a0:关机

  - s1:单用户【找回密码】

    - a单用户模式可以找回丢失的密码

    - s

    - d

  - s2:多用户状态没有网络服务

    - a用的非常少

    - d

  - s3:多用户状态有网络服务

    - a用的最多

    - s第一不带图形界面

    - s支持多用户而且有网络服务

    - d

  - s4:系统未使用保留给用户

    - a忽略不计

    - d

  - s5:图形界面

  - s6:系统重启

    - a

    - d

  - s常用的运行级别是3和5

  - d

- s指令

  - a `init[0123456]`

  - s 通过init来切换不同的的运行级别

  - d

- d

## 帮助指令

- a man获取帮助信息

  - a基本语法

  - s`man[命令或配置文件]`

    - a实例

    - d `man ls`

  - d

- s help指令

  - a基本语法

  - s `help 命令`

  - s功能描述:获得shell内置命令的帮助信息

  - d

- d

# 指令与选项

- a指令是指在linux终端(命令行)中输入的内容称之为指令

- s一个完整的指令标准格式,linux通用的格式

  - a #指令主体 [选项]操作对象

    - a 选项可以不要

    - s 是可选的

    - s在写文档的时候,文档中被中括号括起来的内容就属于可要可不要的内容

    - s操作对象其实也是可以选择的

      - a#指令主体 [选项][操作对象]

      - s具体看命令

      - s有的可以选择有的是必须要填的

      - s不写对象会默认操作当前的对象

      - s指令里只能包含一条指令主体

        - a一个指令主体可以包含多个选项

        - s操作对象可以说多个

        - s

        - d

      - d

    - d

  - d

- d

# 基础指令

## ls指令

- a ls的含义

  - a list

  - s清单列表

  - s列出当前路径下的所有文件和文件夹的名称

  - s

  - d

- s用法1

  - a列出当前目录下的所有文件和文件夹的名称

  - d

- s用法2

  - a需要在ls右边加入路径

    - a列出指定路径下的所有文件以及文件夹的名称

      - a关于路径

      - s路径可以分为两种情况

      - s相对路径

        - a首先得有一个参照物

        - s就是当前工作路径

        - s相对路径通常会用到两个符号

          - a一个是./

            - a表示当前目录

            - s可以不写

            - d

          - s一个是../

            - a表示当前目录的上一级目录

            - d

          - d

        - d

      - s绝对路径

        - a绝对路径不需要参照物

        - s直接从根开始找

          - a根就是一个/

          - d

        - d

      - d

    - d

  - s用法3

    - a #ls 选项 路径

    - s在列出制定路径下的文件和文件夹的名称

    - s常见语法

      - a #ls -l 路径

        - a表示list

        - s以详细列表的形式进行展示

        - d

      - s ls -a 路径

        - a显示所有的文件和文件夹(包含了隐藏文件和隐藏的文件夹)

        - S所有隐藏文件都是以点(.)开头的

        - d

      - s #ls -la 路径

      - d

    - d

  - s用法4

    - a #ls -lh 路径

    - s列出制定路径下的所有文件以及文件夹的名称

    - s以列表的形式并且在显示文档大小的时候以可读性较高的形式显示

    - d

  - d

- s列出的显示结果

  - a蓝色表示文件夹

  - s黑色表示文件

  - s绿色表示拥有这个文件夹的所有权限

  - d

- d

## pwd命令

- a pwd指令用法

  - a介绍

  - s含义:print working directory

    - a打印当前工作目录

    - d

  - d

- s

- d

## cd命令

- a #cd全称:change directory(改变目录)

- s 用来切换当前工作的目录

- s语法

  - a cd 路径

    - a既可以是相对路径也可以是绝对路径

    - s cd /usr/local这是绝对路径

    - s cd ../../home/linux123

    - d

  - d

- s补充内容

  - a ~号在linux中是个特殊的符号,来表示用户的家目录

    - a用法

    - s cd ~

    - s快速切换到了用户的家目录

    - d

  - d

- d

## mkdir 命令

- a 创建目录指令

- s语法1

  - a mkdir 路径

    - a第一种

      - a`mkdir wenVjianMjiaW`

      - d

    - s第二种

      - a mkdir /root/xinEjianMwenWjianMjiaW

      - d

    - d

  - s如果不写就会在当前目录下新建文件夹

  - s路径可以是文件夹的名称,也可以是包含名称的完整的路径

    - a可以是绝对路径

    - s也可以说是相对路径

    - d

  - d

- s语法2

  - a `mkdir -p 路径`

  - s如果要连续创建在一个不存在的子目录的子目录的子目录,用这个指令会连续创建出子目录的路径

    - a`mkdir -p /root/a/b/c/d/e/f/g`

    - s不需要先创建a再创建b然后再去创建c了,直接创建整个不存在的子路径

    - d

- s语法3

  - a mkdir 路径1 路径2 路径3 路径4

    - a一次性创建多个目录

    - smkdir a b c d

    - d

  - d

- d

## touch指令

- a touch指令是用来创建文件的

- stouch语法

  - a#touch [文件路径]

    - a可以只写文件名

      - a `#touch xinEjianMwenWbenV.txt`

      - d

    - s也可以只写路径

      - a `#touch /home/xiaoVxiaoV/wenWbenVwenWjianM.txt`

      - d

    - d

  - d

- d

## cp指令

- a cp是复制的意思

- s能复制文件以及文件夹到指定的位置

- s cp语法

  - a#cp 被复制文档的路径 文档被复制粘贴到的路径(或者是被保存的路径)

    - a如果是复制当前的目录的文件可以不写路径

      - a `#cp yaoMfuMzhiMdeEwenWjianM.txt /home/xiaoVxiaoV/`

      - d

    - s如果不再当前目录那么就得写入路径然后是

      - a`#cp root/yaoMfuMzhiMdeEwenWjianM.txt /home/xiaoVxiaoV/`

      - d

    - s可以在粘贴的时候重命名

      - a`#cp yaoMfuMzhiMdeEwenWjianM.txt /home/xiaoVxiaoV/fuMzhiMdeEwenWjianM.txt `

      - d

    - d

  - s复制粘贴文件夹

    - a`#cp /wenWjianMjiaWyiWdongM/ /home/xiaoVxiaoV/wenWjianMjiaWyiWdongM`

    - s当使用cp来移动文件夹的时候必须要添加选项否则就会被忽略目录

      - a选项-r

      - s`#cp -r /wenWjianMjiaWyiWdongM/ /home/xiaoVxiaoV/wenWjianMjiaWyiWdongM`

        - a-r的意思就是递归复制

        - s-r也表示递归的意思

        - s如果不添加-r只会拿空文件夹没有子文件夹

        - d

      - d

    - d

  - d

- d

## mv指令

- a mv(move、移动指令或者叫剪切)

- s用法

  - a移动文档到新的位置

  - d

- s语法

  - a#mv 需要移动的文档路径 需要保存的而位置路径

  - d

- s案例

  - a案例1使用mv命令来移动文件

    - a`#mv abc.txt /abc.txt`

    - s当前路径不需要写路径

    - s把当前的文件移动到了根的路径下

    - s在路径的最后要写出要移动的文件名字与后缀

    - s也能在被移动的路径里重命名

    - d

  - s案例2使用mv命令来移动文件夹

    - a`/houme/xiaoVxiaoV/a /root/`

    - d

  - s mv指令可以移动文件也可以原地改名

  - d

- d

## rm命令

- a rm命令(remove、移除、删除)

- s删除或移除一个文件或者文件夹

- s语法

  - a#rm 选项 需要移除的文档路径

  - s`rm /a`

  - s会出现要不要删除的选项

    - a可以使用四个命令表示同意或拒绝

    - s y或yes

    - s n或no

    - d

  - d

- s案例

  - a案例1删除一个文件夹

    - a`#rm -r /root/a`

    - s删除文件夹必须要使用递归指令-r

    - s下一步就是有几个文件和文件夹就得输入多少个yes或no了

    - s这时候就得使用-f指令了或者是-rf组合使用

    - d

  - s案例2删除多个文档

    - a

    - d

  - s案例3删除特殊特征的名字的文件

    - a`rm -r ooo*`

    - s比方说有很多个文件都带有ooo开头的文件ooo1、ooo2、ooo3、ooo4的文件一起删除

    - s*叫通配符

      - a表示任意的字符

      - s只要前面的多个文件的字是一模一样的就能管

      - d

    - d

  - d

- s选项

  - a -f

    - a -f表示force(强制)

    - s在rm加上这个选项在删除的时候就不会有选择YES还是NO了

    - d

  - s -r

  - a

  - d

  - d

- d

## 路径补全

- a如果路径过长只要又不想输入完可以按下tab键

  - a 就会列出一个列表对着列表里的文件名输入一部分再按tab就能自动补全

  - d

- d

## 输出重定向

- a把终端里显示的内容输出文件

- s语法

  - a分别是一个>和两个>>

  - s一个(>)是覆盖输出

    - a会覆盖原先的文件内容

    - d

  - s两个(>>)是追加输出

    - a不会覆盖原先的文件内容

    - s会在原始内容的末尾继续输出

    - d

  - s正常执行的指令 > 文件的的路径

    - a文件可以不存在

    - s如果不存在就会自动新建

    - s`ls -la > ls.txt`

    - d

  - d

- d

## cat指令

- a知己打开一个文件的功能

- s#cat 文件的路径

- s只想查看文件不想进入编辑直接使用cat不用使用vim了

- s cat指令可以使用对文件重定向合并

  - a`/a.txt /b.txt /c.txt >abc.txt`

  - d

- d

# 进阶命令

## df -h命令

- a查看磁盘的空间

- s语法

  - a`#df -h`

    - a加-h与不加-h的区别技术显示和不显示具体的单位

    - s比如1024是1G如果不加-g如果大于1024比如1029直接被显示出来

    - d

  - d

- s表头filesystem

  - a是分区的意思

  - s size(大小)

  - s Used(被使用的)

  - s Avail(可用的)

  - s Use%(已使用的百分比)

  - s Mountd on(挂载点)

  - d

- d

## free命令

- a查看内存使用使用情况

- s语法

  - a`#free`

    - afree的指令

    - s-m是兆显示

    - s-g是G现实

    - s什么也不加就会精确到最小的数

    - d

  - d

- s表头

  - a total

- s used

- s free

- s shared

- s buffers输出

- s cached输入

  - d

- s内存不够用的时候就会使用硬盘当做存储空间(虚拟内存)

- d

## head命令

- a查看一个文件的前n行,如果不指定n则默认显示的前十行列表

- s用法

  - a#head -n 文件的路径

    - a语法1`head listall.log`

    - s语法2`head 5 listall.log`

    - d

  - s

  - d

- d

## tall命令

- a查看一个文件的某位的n行,如果n不指定就默认显示后10行

- s用法

  - a语法1查看默认后十行`#tall listall.log`

  - s语法2查看后五行 `#tall -5 listall.log`

  - d

- s 可以通过tall命令来查看一个文件的动态变化

  - a语法#tall -f 文件路径

  - s `#tall -f /root/wenjian.txt`

  - d

- s退出的时候只需要按下Q键就能退出这个tall命令

- d

## less命令

- a查看文件,以较少的内容进行输出,按下辅助功能键查看更多

- s语法

  - a #less 需要查看的文件的路径

  - s `#cd ~`

    - a`#less lnstall.log`

    - s会在最下边出现一个冒号

    - s可以在冒号里输入数字就会从第20行显示

    - s空格键一页一页的翻页

    - s上下方向键和回车键是一行一行的翻页

    - d

  - d

- d


## wc命令

- a用来统计文件内容信息

  - a包括行数

  - s单词数

  - s字节数

  - d

- s用法

  - a `#wc -lwc install.log`

    - a l表示行数

    - s w表示单词数

    - s c表示字节数

    - d

  - d

- d

## date命令(重点)

- a操作时间日期(读取、设置)

- s语法1

  - a `#date`

  - d

- s语法2

  - a`#date +%F`

    - a%F等价于`#date "+%Y-%m-%d"`

      - a字母的大小写注意

      - s大写的Y表示整位的四位数年

      - s小写的m是两位的月份

      - s小写的d是天数

      - s大写的%F是完整的年月日

      - s%H是小时

      - s%M分钟

      - s%S秒数

      - d

    - d

  - d

- s语法3

  - a`#date "+%F %T"`

  - s`#date #date +%F +%T`

  - s加双引号会认为是一个整体

  - s空格后就不算是一个整体了否则会报错

  - s大T表示完整的时分秒

  - d

- s语法4获取之前或者之后的某个时间(备份)

  - a`#date -d "-1 day""+%Y-%m%d"`

  - s大写的Y表示四位年份

  - d

- s时间单位

  - a天day

  - s月份month

  - s年year

  - d

- d

## cal命令

- a操作日历

- s语法1

  - a`#cal `直接输出当前月份的日历

  - s等价于`#cal -1`

  - d

- s语法2

  - a`#cal -3`

  - s上个月本月以及下一个月日历

  - d

- s语法3

  - a`#cal -y 2022`

  - s-y表示年

  - s输出一整年的日历

  - d

- s-s是周日显示第一天

- s-m是周一显示第一天

- d

## clear命令与ctrl+L快捷键

- a clear是用啦清空终端中已显示的结果

- s或者使用快捷键ctrl+l

- s严格的说不说清除而是整体往上放假装清空的效果

- d

## 管道(重要)

- a管道符:|

- s作用

  - a可以用于过滤、特殊的用法、扩展的用法

  - d

- s语法

  - a管道不能单独使用,必须要配合以前的指令一起使用,作用就是为了辅助

  - d

- s过滤案例

  - a通过管道查询出根目录下的所有包含y的字母文档

  - s `#ls /|grep y`

  - s /|grep用于过滤的关键字

  - d

- 特殊用法案例

- d


# 高级指令

## hostname命令

- a操作服务器名(读取)

- s语法

  - a语法1

    - a`#hostname`

    - s输出完整的主机名

    - d

  - s语法2

    - a`#hostname -f`

    - s输出当前主机名中的FQDN(全限定域名)

    - d

  - d

- d

## id命令

- a用于查看用户的一些基本信息

  - a用户id

  - s用户组id

  - s附加组id

  - d

- s该指令不指定用户则默认当前用户

- s语法

  - a语法1

    - a #id 默认显示当前执行该命令的用户基本信息

    - d

  - s语法2#id 用户名

    - a显示指定用户的基本的信息

    - d

  - d

- d

## whoami命令

- a显示当前登录的用户

- s一般用于shell脚本

- d

## ps -ef命令(重点)

- a用于查看服务器进程相关信息

- s选项

  - a -e表示列出全部的进程

  - s -f显示全部的列(显示全字段)

  - d

- s显示结果

  - a UID用户ID

  - s PID进程ID

    - a如果一个程序的父级进程找不到,那么该程序的进程称之为僵尸进程

    - d

  - s PPID表示该进程父级进程ID

  - s C表示CPU的占用率

  - s STIME该进程的执行时间

  - s TTY是终端设备

    - a如果是问号就说明不是由终端发起的

    - d

  - s CMD进程对应的名称或者对应的路径

  - d

- s案例

  - a案例1

    - a百分百使用的命令

    - s在ps的结果中过滤出想要查看的进程状态

    - `ps -ef| grep gnome-panel`

    - d

  - d

- d

## top命令

- a主要是查看服务器进程所占资源

- a语法

  - a `#top`

  - d

- s实时动态的显示

  - a退出按下Q键即可退出

  - d

- s表头

  - a USER:该进程对应的用户

  - s PR:优先级

  - s VIRT:虚拟内存

    - a申请了500M

    - s实际只使用了300

    - s此时虚拟内存就是500M

    - d

  - s RES:常驻内存

    - a申请500M

    - s实际只使用了300M

    - s此时常驻内存300M

    - d

  - s SHR:共享内存

    - a自己运行对其它应用有所依赖

    - d

  - s S表示进行的状态(S表示睡眠的状态,R表示运行)

  - s %cpu表示CPU的占用百分比

  - s %MEM表示内存的占用百分比

  - s TIM+表示执行的时间

  - s COMMAND表示进程的名称或者路径

  - d

- s快捷键

  - a在执行top指令之后的快捷键

  - s 大写的M键按照内存排名

  - s 大写的P键按照CPU排名

  - s 1也是快捷键是用来显示所有的CPU的

  - d

- d


小恐的linux学习笔记更新时间2023年4月5日11:08:44的评论 (共 条)

分享到微博请遵守国家法律