Linux入门学习知识整理总结

Linux的发展史与GNU

参考我的博客

Linux文件、目录相关内容

目录管理

绝对路径与相对路径:
  • 绝对路径:以根目录(/)开始写起的目录或文件名称:如/home/dmtsai

  • 相对路径:不是以(/)开头的都是相对路径 如:…/home/dmtsai(只需要搞清楚目录层次与“…”符号的意义)

了解常用目录应放置文件内容
  • / 根目录:与系统的启动、还原、系统修复等操作有关
  • /etc 系统主要的配置文件都放在这里,只有root有权利修改
  • /opt 第三方辅助软件放置的目录
  • /tmp 用户正在执行的程序暂时放置文件的地方,用完即丢
  • /usr(Unix Software Resource)操作系统软件资源放置的位置
  • /home 系统默认家用户目录,当你新增一个用户帐号时,会默认规范到这个目录下
  • /root 系统管理员的家目录
目录的常用命令
  • 比较特殊的目录:. :代表此层目录; :代表上层目录

    -:代表前一个工作目录 ~ :代表目前使用者身份所在的家目录

  • tab:具有自动补全目录或文件路径的功能

  • cd:切换目录

  • pwd:显示当前目录 -p:显示真正的路径(针对链接)

  • mkdir:创建新的目录 -m可设置目录权限 -p可递归创建

  • rmdir:删除一个目录 -p连同上层空的目录全部删除

文件与目录通用的常用命令

  • ls:文件与目录的查看 -a列出全部的文件(包括隐藏文件)

    -d仅列出目录本身,而不列出目录内的文件数据(操作结果为 ’.‘)

    -l列出详细信息,包括文件属性和权限等(不包含隐藏文件)

  • cp:复制目录或文件 cp (多个)源文件 目标文件

​ -i若目标文件存在时,覆盖时会先询问操作是否进行

​ -f强制的意思,若目标文件已经存在且无法开启,则删除后再尝试

​ -l进行硬链接 -s进行符号链接(关于硬链接和符号链接,详情请见我的博客)我的博客

​ -r递归复制,常用于目录赋值操作

​ -p连同文件的属性一起复制过去,通常用于备份

  • rm:删除文件或目录

​ -f就是force的意思,忽略不存在的文件,不会出现警告

​ -I交互模式,删除前会询问是否操作

​ -r递归删除,最常用于目录的删除

​ rm-rf / 删库跑路

  • mv:移动文件与目录或重命名(如果第二个参数是文件时,实现的是重命名;第二个参数是是目录,实现的是移动)

​ -f -i -u如果目标文件存在且源文件比较新,才会更新

文件管理

文件属性

在这里插入图片描述

修改文件属性与权限
  • chgrp [-R] 属组名 文件/目录名:修改所属属组(用户组)R代表可以递归
  • chown 【-R】 属主名(:属组名) 文件或目录:修改所属属主同时也可修改属组
  • chmod 【-R】 xyz 文件或目录:修改权限

​ 补充:三个权限rwx,分别对应数字421,如果rwx都有权限则4+2+1=7

​ chmod 777 test.txt :修改test.txt的权限,使得属主、属组、其他用户都可对该文件进行rwx操作

直接查看文件内容
  • cat:查看一个文件的内容

​ -n打印行号,空白行也会打印 -A列出一些特殊的符号而不是空白

  • tac:倒序查看文件内容
  • nl:查看一个文件内容,其可以对行号有较多的显示设计
可翻页查看
  • more:一页一页翻动
    在这里插入图片描述

当一页展示不完文件内容时,光标会停留在这页的最后一行,显示已经展示了文件内容的百分比

空格键代表向下翻一页;Enter键代表向下翻一行;:f显示文件名和当前行数;q立刻离开more ;/字符串:在显示的内容中,向下查找这个字符串关键字

  • less:一页一页翻动,用法比more更加弹性,可以向前翻动、向上查找

​ ?字符串:向上查找

数据截取
  • head [-n number]:取文件内容前面几行

​ number是负数代表后面|number|都不打印

  • tail [-n ]:取文件内容后面几行

​ +number代表从number行以后的行都会被列出

修改文件时间或创建新文件
  • touch 文件名:创建一个新的文件
  • touche -t 202105290402 文件名:修改了文件的atime和mtime
  • echo ”内容“>>文件名:向文件里输入内容

vim:程序编辑器

什么是VIM编辑器

在Linux的系统中使用文本编辑器来编辑你的Linux参数配置文件,这是一件很重要的事情,这件重要的事情,就是通过文本编辑器来完成的

在所有的UNIX-like系统中都会内置vi文本编辑器,而其他文本编辑器不一定存在

很多软件的编辑接口都会主动调用vi

vim具有编程能力,可以主动以字体颜色辨别语法正确性,方便程序设计

vi是老式的文本编辑器,功能已经十分齐全,但是还可以更进一步,我们可以将vim视为其的高级版本,注意vim是程序编辑器而不是文件处理器

三种使用模式

  • 命令模式:刚启动vim,便进入了命令模式,在此状态下的输入会被识别为命令而不是字符

i:切换到输入模式

x:删除当前光标所在字符

​ **:**切换到底线模式

  • 输入模式

字符按键以及Shift组合,输入字符

ENTER,回车键,换行

BACK SPACE,退格键,删除光标前一个字符

DEL,删除键,删除光标后一个字符

方向键,在文本中移动光标

HOME/END,移动光标到行首/行尾

Page Up/Page Down,上/下翻页

Insert,切换光标为输入/替换模式,光标将变成竖线/下划线

ESC,退出输入模式,切换到命令模式

  • 底线模式

:q:退出程序

:w:保存文件

ESC:退出底线模式

vim按键说明

  • 一般命令模式可用按键说明
移动光标的方法
[Ctrl] + [f]屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
0 或功能键[Home]这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End]移动到这一行的最后面字符处(常用)
G移动到这个档案的最后一行(常用)
gg移动到这个档案的第一行,相当于 1G 啊!(常用)
n< Enter>n 为数字。光标向下移动 n 行(常用)
搜索替换
/word向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用)
x, X在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
dd删除游标所在的那一整行(常用)
nddn 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
yy复制游标所在的那一行(常用)
nyyn 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
u复原前一个动作。(常用)
[Ctrl]+r重做上一个动作。(常用)
  • 编辑模式可用按键
进入输入或取代的编辑模式
[Esc]退出编辑模式,回到一般模式中(常用)
i, I进入输入模式(Insert mode):i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。(常用)
a, A进入输入模式(Insert mode):a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用)
o, O进入输入模式(Insert mode):这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处输入新的一行』;O 为在目前光标所在处的上一行输入新的一行!(常用)
r, R进入取代模式(Replace mode):r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
  • 一般命令模式可用按键
指令行的储存、离开等指令
:w将编辑的数据写入硬盘档案中(常用)
:q离开 vi (常用)
:wq储存后离开,若为 :wq! 则为强制储存后离开 (常用)

Linux用户账号管理

简介

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统获取shell的环境来工作。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个唯一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

补充:LInux主机并不会在直接认识你的用户名,它仅认识ID,每个用户名对应自己的唯一一个ID号

用户帐号管理

添加帐号
  • useradd -选项 用户名

​ 选项说明:

    • -c comment 指定一段注释性描述。
    • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
    • -g 用户组 指定用户所属的用户组。
    • -G 用户组,用户组 指定用户所属的附加组。
    • -m 使用者目录如不存在则自动建立。
    • -s Shell文件 指定用户的登录Shell。
    • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
  • 在/etc/passwd里面建立一行与帐号相关的数据,包括建立UID/GID/家目录

​ 在/etc/shadow里面将此帐号的秘密相关参数输入,但是尚未有密码

​ 在/etc/group里面加入一个与帐号名称一模一样的组名

​ 在/home下面建立一个与帐号同名的目录作为家用户目录,且权限为700

切换帐号

1.切换用户的命令为:su username 【username是你的用户名哦】

2.root用户可用随意切换到其他用户,但是其他用户如果想要切换用户是要输入密码的哦(Linux中的密码是不显示的,所以不要看见没有显示就觉得它出错了)

3.在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令

4.在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su - root】

$表示普通用户

#表示超级用户,也就是root用户

删除帐号

userdel 选项 用户名

选项主要使用 -r,它的作用是把用户的主目录一起删掉(主要是/etc/passwd, /etc/shadow, /etc/group等),同时也删掉其主目录

修改帐号

usermod 选项 用户名 选项详情自行查找

用户口令管理

用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令

passwd 选项 用户名

可使用的选项:

  • -l 锁定口令,即禁用账号。
  • -u 口令解锁。
  • -d 使账号无口令。
  • -f 强迫用户下次登录时修改口令。

如果默认用户名,则修改当前用户的口令。

普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。

与用户有关的几个目录

/etc/passwd

Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性,这个文件对所有用户都是可读的

# cat /etc/passwd

root:x:0:0:Superuser:/:
daemon:x:1:1:System daemons:/etc:
bin:x:2:2:Owner of system commands:/bin:
sys:x:3:3:Owner of system files:/usr/sys:
adm:x:4:4:System accounting:/usr/adm:
uucp:x:5:5:UUCP administrator:/usr/lib/uucp:
auth:x:7:21:Authentication administrator:/tcb/files/auth:
cron:x:9:16:Cron daemon:/usr/spool/cron:
listen:x:37:4:Network daemon:/usr/net/nls:
lp:x:71:18:Printer administrator:/usr/spool/lp:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
etc/shadow

对安全性要求较高的Linux系统都把加密后的口令字分离出来,单独存放在一个文件中,这个文件是/etc/shadow文件。有超级用户才拥有该文件读权限,这就保证了用户密码的安全性。

/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生

[root@yanyun /]# head -n 4 etc/shadow
root:$6$7Zw.j/uFho8/a8zL$ST6d3tlKk7wW2gwi6D5qfX5R3AOwW32DjgCElvVSB16xW2vZEDphWEyS8U9rlY8hZbHqQKUFpbRtetBwMUrcZ/:18770:0:99999:7:::
bin:*:18027:0:99999:7:::
daemon:*:18027:0:99999:7:::
adm:*:18027:0:99999:7:::
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
"最小时间间隔"指的是两次修改口令之间所需的最小天数。
"最大时间间隔"指的是口令保持有效的最大天数。
"警告时间"字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
"不活动时间"表示的是用户没有登录活动但账号仍能保持有效的最大天数。
"失效时间"字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
etc/group
[root@yanyun /]# clear
[root@yanyun /]# head -n 4 etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
组名:口令:组标识号:组内用户列表
"组名"是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
"口令"字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是*。
"组标识号"与用户标识号类似,也是一个整数,被系统内部用来标识组。
"组内用户列表"是属于这个组的所有用户的列表/b],不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。
几个目录之间的关系

在这里插入图片描述

  • 这几个目录的重点是etc/passwd。其他相关的数据都是根据这个文件的字段去寻找出来的附上一张图(来自鸟哥的Liunx私房菜)

Linux用户组管理

  • 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

  • 一个帐号可用加入多个用户组

  • 用户组有有效用户组和初始用户组的划分

  • 假设一个账号同时支持t1、t2、t3三个用户组,那么,只要是t1、t2、t3这三个用户组拥有的功能,这个帐号都能够拥有,但是,这时针对已经存在的文件而言,如果要新建立一个目录或文件,新文件的用户组是哪个呢?当然是它的有效用户组了!

关于有效用户组的命令

  • 加入用户组的方式:root利用usermod 用户组管理员用gpasswd

  • groups :通过此命令可以查看有效与支持用户组的观察,第一个用户组是有效用户组

  • newgrp:有效用户组的切换

​ 补充:这个命令可以修改目前用户的有效组,而且是以另一个shell来提供这个功能的

用户组管理

添加用户组
  • groupadd 选项 用户组名

可以使用的选项有:

​ -g GID 指定新用户组的组标识号(GID)。

​ -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

修改用户组
  • groupmod 选项 用户组名

​ 常用的选项有:

​ -g GID 为用户组指定新的组标识号。

​ -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。

​ -n新用户组 将用户组的名字改为新名字

删除用户组
  • groupdel 选项 用户组名

磁盘管理及文件系统

磁盘管理常用的命令

df:列出文件系统的整体磁盘使用量
  • df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息

  • df [-ahikHTm] [目录或文件名]
    
  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
  • -k :以 KBytes 的容量显示各文件系统;
  • -m :以 MBytes 的容量显示各文件系统;
  • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
  • -H :以 M=1000K 取代 M=1024K 的进位方式;
  • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
  • -i :不用硬盘容量,而以 inode 的数量来显示
[root@yanyun /]# df -h
Filesystem     Size Used Avail Use% Mounted on
devtmpfs       869M     0 869M   0% /dev
tmpfs           879M 708K 878M   1% /dev/shm
tmpfs           879M 496K 878M   1% /run
Filesystem:代表该文件系统是在哪个硬盘分区,所以列出设备名称  tmpfs是Linux中的一个文件系统
Mounted on:磁盘的挂在目录
du:查看文件系统的磁盘使用量
  • 常用在查看目录所占用磁盘空间

  • du [-ahskm] 文件或目录名称
    
    • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
    • -h :以人们较易读的容量格式 (G/M) 显示;
    • -s :列出总量而已,而不列出每个各别的目录占用容量;
    • -S :不包括子目录下的总计,与 -s 有点差别。
    • -k :以 KBytes 列出容量显示;
    • -m :以 MBytes 列出容量显示
    [root@yanyun home]# du
    0	./t/t1
    0	./t
    16	./yanyun
    12	./yanyun1
    28	.
    
解读一下这个输出,du的输出是你想要查看的目录下所有的子目录有多少kb,这个命令会直接到文件系统内去查找所有的文件数据
比如 ./t/t1 没有内容,是0kb
./yanyun1  有12kb
整个home目录下一共是28kb
mount:文件系统挂载命令
mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点
unmount:文件系统卸载命令
umount [-fn] 装置文件名或挂载点

选项与参数:

  • -f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
  • -n :不升级 /etc/mtab 情况下卸除。

进程管理

ps -aux|grep xxx(如Mysql)

ps-aux是查看所有的进程 通过‘|’管道符将其作为grep(使用正则表达式搜索文本,并把匹 配的行打印出来)的输入来得到自己想要的进程

pstree

目录树:通过目录树来查看父子进程之间的关系

[root@yanyun home]# clear
[root@yanyun home]# pstree
systemd─┬─AliYunDun───24*[{AliYunDun}]
        ├─AliYunDunUpdate───5*[{AliYunDunUpdate}]
        ├─NetworkManager───2*[{NetworkManager}]
        ├─2*[agetty]
        ├─aliyun-service───7*[{aliyun-service}]
        ├─assist_daemon───7*[{assist_daemon}]
        ├─atd
        ├─auditd─┬─sedispatch
        │        └─2*[{auditd}]
        ├─chronyd
        ├─crond
        ├─dbus-daemon
        ├─lsmd
        ├─mcelog
        ├─mysqld───29*[{mysqld}]
        ├─nginx───nginx
        ├─php-fpm───8*[php-fpm]
        ├─polkitd───5*[{polkitd}]
        ├─rngd───2*[{rngd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─smartd
        ├─sshd─┬─sshd───sshd───bash───su───bash───su───bash───sudo───su───bash───su───bash───su───bash───su───bash───su───bash───su───bash───su───bash───pstree
        │      └─sshd───sshd───sftp-server
        ├─sssd─┬─sssd_be
        │      └─sssd_nss
        ├─systemd───(sd-pam)
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-resolve
        ├─systemd-udevd
        └─tuned───3*[{tuned}]

kill -signal PID
  • 通过赋予进程信号(signal)去告知该进程你想要它做什么

​ 代号有1、2、9、15、19

​ 9代表的意思就是强制结束一个进程,通常用在发生死锁的情况下

  • kill帮我们将这个信号传送给某个PID

参考:https://www.bilibili.com/video/BV187411y7hF?p=15&spm_id_from=pageDriver
鸟哥的Linux私房菜
文章主要参考狂神说Linux内容总结,仅是开发使用Linux的入门知识,如有总结不到位或错误,敬请指出

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值