Linux基础知识总结

目录

一、Linux权限设置

更改文件属性

chgrp - 更改文件属组

chown - 更改文件所有者,也可以同时更改文件所属组。

chmod - 更改文件属性

二、Linux文件与目录管理

处理目录的常用命令

ls(list files)- 列出目录及文件名

cd(change directory)- 切换目录

pwd(print work directory)- 显示当前目录

mkdir(make directory)- 创建新目录

rmdir(remove directory)- 删除空目录

cp(copy file)- 复制文件或目录

rm(remove)- 删除文件或目录

mv(move file)- 移动文件与目录,或修改文件与目录的名称

Linux文件内容查看

cat  - 从第一行开始显示文件内容

tac  - 从最后一行开始显示,正好是cat倒着写

nl  - 显示的时候,输出行号

more - 一页一页的显示文件内容

less - 往前翻页显示文件内容

head - 显示文件前几行

tail - 显示文件后几行

三、Linux 进程命令

ps - 查看进程

top - 动态显示运行中的进程

kill - 结束进程

四、Linux用户和用户组管理

用户管理

useradd - 添加用户

userdel - 删除用户

usermod - 修改用户

用户组管理

groupadd - 添加用户组

groupdel - 删除用户组

groupmod - 修改用户组

五、Linux磁盘管理

df(disk free)- 列出文件系统的整体磁盘使用量

du(disk used)- 检查磁盘空间使用量

fdisk - 用于磁盘分区

mkfs - 磁盘格式化

mount - 磁盘挂载

umount - 磁盘卸载

六、Linux yum命令

yum常用命令

七、Linux apt命令

apt 常用命令


一、Linux权限设置

在 Linux 中我们通常使用以下两个命令来修改文件或目录的所属用户与权限:

  • chown (change owner) : 修改所属用户与组。
  • chmod (change mode) : 修改用户的权限。

在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为 d 则是目录
  • 当为 - 则是文件
  • 若是 l 则表示为链接文档
  • 若是 b则表示为装置文件里面的可供储存的接口设备(可随机存取装置)
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标

剩下的字符三个为一组,且均为 rwx三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x代表可执行(execute)。 这三个权限的位置不会改变,如果没有权限,就会出现减号 - 。每个文件的属性由左边第一部分的 10 个字符来确定。

363003_1227493859FdXT

从左至右用 0-9 这些数字来表示。

第 0 位确定文件类型。

第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。

第 4-6 位确定属组(所有者的同组用户)拥有该文件的权限。

第 7-9 位确定其他用户拥有该文件的权限。

第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;第 2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。

更改文件属性

chgrp - 更改文件属组

语法:

chgrp [-R] 属组名 文件名

参数选项

  • -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上 -R 的参数,那么该目录下的所有文件的属组都会更改。

chown - 更改文件所有者,也可以同时更改文件所属组。

语法:

chown [–R] 所有者 文件名
chown [-R] 所有者:属组名 文件名

进入 /root 目录(~)将test.log的拥有者改为bin这个账号:

[root@www ~]# chown bin test.log

将test.log的拥有者与群组改回为root:

[root@www ~]# chown root:root test.log

chmod - 更改文件属性

Linux文件属性有两种设置方法,一种是数字,一种是符号。

Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。

我们可以使用数字来代表各个权限,各权限的分数对照表如下:

  • r : 4
  • w : 2
  • x : 1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx--x 分数则是:

  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= --- = 0+0+1 = 1

所以等一下我们设定权限的变更时,该文件的权限数字就是 771

变更权限的指令 chmod 的语法:

 chmod [-R] xyz 文件或目录

选项与参数:

  • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
  • -R : 进行递归的持续变更,以及连同次目录下的所有文件都会变更

例如:如果要将 .env这个文件所有的权限都设定启用,命令如下:

[root@www ~]# chmod 777 .env

二、Linux文件与目录管理

处理目录的常用命令

ls(list files)- 列出目录及文件名

语法:

  ls [options] 目录名称

选项与参数:

  • -a :列出全部的文件,包含隐藏文件
  • -d :仅列出目录本身,而不是列出目录内的文件数据
  • -l :长数据串列出,包含文件的属性与权限等数据

cd(change directory)- 切换目录

语法:

cd [相对路径或绝对路径]
# 表示回到自己的家目录

cd ~

# 表示去到目前的上一级目录

cd ..

pwd(print work directory)- 显示当前目录

语法:

pwd [-P]

选项与参数:

  • -P :显示出确实的路径,而非使用链接 (link) 路径。

mkdir(make directory)- 创建新目录

语法:

  mkdir [options] 目录名称

选项与参数:

  • -m :配置文件的权限
  • -p :将所需要的目录(包含上一级目录)递归创建
mkdir -m 711 test2
mkdir -p test1/test2/test3/test4

rmdir(remove directory)- 删除空目录

语法:

 rmdir [-p] 目录名称

选项与参数:

  • -p :从该目录起,一次删除多级空目录

cp(copy file)- 复制文件或目录

语法:

  cp [options] 源文件 目标文件

选项与参数:

  • -a:相当于 -pdr 的意思

  • -d:若来源档为链接档的属性(link file),则复制链接档属性而非文件本身

  • -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次

  • -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行

  • -l:进行硬式链接(hard link)的链接档创建,而非复制文件本身

  • -p:连同文件的属性一起复制过去,而非使用默认属性

  • -r:递归持续复制,用於目录的复制行为

  • -s:复制成为符号链接档

  • -u:若 destination 比 source 旧才升级 destination !

rm(remove)- 删除文件或目录

语法:

 rm [options] 文件或目录

选项与参数:

  • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息
  • -i :互动模式,在删除前会询问使用者是否动作
  • -r :递归删除

mv(move file)- 移动文件与目录,或修改文件与目录的名称

语法:

 mv [options] source destination

选项与参数:

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
  • -u :若目标文件已经存在,且 source 比较新,才会升级 (update)

Linux文件内容查看

cat  - 从第一行开始显示文件内容

语法:

cat [options] 文件

选项与参数:

  • -A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已
  • -b :列出行号,仅针对非空白行做行号显示,空白行不标行号
  • -E :将结尾的断行字节 $ 显示出来
  • -n :列印出行号,连同空白行也会有行号
  • -T :将 [tab] 按键以 ^I 显示出来
  • -v :列出一些看不出来的特殊字符

tac  - 从最后一行开始显示,正好是cat倒着写

语法:

tac [options] 文件

nl  - 显示的时候,输出行号

语法:

nl [options] 文件

选项与参数:

  • -b :指定行号指定的方式,主要有两种:
    -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
    -b t :如果有空行,空的那一行不要列出行号(默认值);
  • -n :列出行号表示的方法,主要有三种:
    -n ln :行号在荧幕的最左方显示;
    -n rn :行号在自己栏位的最右方显示,且不加 0 ;
    -n rz :行号在自己栏位的最右方显示,且加 0 ;
  • -w :行号栏位的占用的位数。

more - 一页一页的显示文件内容

  • 空白键 (space) :代表向下翻一页
  • Enter                :代表向下翻『一行』
  • /字串                :代表在这个显示的内容当中,向下搜寻『字串』这个关键字
  • :f                      :立刻显示出档名以及目前显示的行数
  • q                      :代表立刻离开 more ,不再显示该文件内容
  • b 或 [ctrl]-b      :代表往回翻页,只对文件有用

less - 往前翻页显示文件内容

  • 空白键            :向下翻动一页
  • [pagedown]    :向下翻动一页
  • [pageup]         :向上翻动一页
  • /字串               :向下搜寻『字串』的功能
  • ?字串              :向上搜寻『字串』的功能
  • n                     :重复前一个搜寻 (与 / 或 ? 有关)
  • N                    :反向的重复前一个搜寻 (与 / 或 ? 有关)
  • q                     :离开 less 这个程序

head - 显示文件前几行

语法:

head [-n number] 文件 

选项与参数:

  • -n :后面接数字,代表显示几行

tail - 显示文件后几行

语法:

tail [-n number] 文件 

选项与参数:

  • -n :后面接数字,代表显示几行
  • -f :表示持续监测后面所接的档名

三、Linux 进程命令

ps - 查看进程

语法:

ps [options]

选项与参数:

  • -a:显示所有进程信息
  • -e:显示系统内的所有进程信息
  • -l:(long)使用长格式显示进程信息
  • -f:(full)使用完整的格式显示进程信息
  • -u:使用用户为主的格式来显示程序状态
  • -x:不区分终端机
  • -r:仅显示终端机正在执行中的程序
  • -w 显示加宽可以显示较多的资讯
  • -au 显示较详细的资讯
  • -aux 显示所有包含其他使用者的进程

        aux输出格式:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
  • USER: 行程拥有者
  • PID: pid
  • %CPU: 占用的 CPU 使用率
  • %MEM: 占用的记忆体使用率
  • VSZ: 占用的虚拟记忆体大小
  • RSS: 占用的记忆体大小
  • TTY: 终端的次要装置号码 
  • STAT: 该行程的状态:

    • D: 无法中断的休眠状态 (通常 IO 的进程)
    • R: 正在执行中
    • S: 静止状态
    • T: 暂停执行
    • Z: 不存在但暂时无法消除
    • W: 没有足够的记忆体分页可分配
    • <: 高优先序的行程
    • N: 低优先序的行程
    • L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
  • START: 行程开始时间
  • TIME: 执行的时间
  • COMMAND:所执行的指令

ps常用命令

ps -elf                   # 显示所有命令
ps -u username            # 查看名为 username 的用户进程
ps -ef | grep 进程关键字   # 查找指定进程
ps -aux                   # 显示所有包含其他使用者的进程

top - 动态显示运行中的进程

语法:

top [options]

选项与参数:

  • -d <秒数>:指定 top 命令的刷新时间间隔,单位为秒。
  • -n <次数>:指定 top 命令运行的次数后自动退出。
  • -p <进程ID>:仅显示指定进程ID的信息。
  • -u <用户名>:仅显示指定用户名的进程信息。
  • -H:在进程信息中显示线程详细信息。
  • -i:不显示闲置(idle)或无用的进程。
  • -b:以批处理(batch)模式运行,直接将结果输出到文件。
  • -c:显示完整的命令行而不截断。
  • -S:累计显示进程的 CPU 使用时间。

kill - 结束进程

语法:

kill [-signal] pid

选项与参数:

  • -signal:信号值
  • -pid:进程号

kill常用命令

kill -9 pid            # 强制结束进程
kill -1 pid            # 重新加载进程
kill -15 pid           # 正常停止一个进程

四、Linux用户和用户组管理

用户管理

useradd - 添加用户

语法:

 useradd 选项 用户名

选项与参数:

  • -c 指定一段注释性描述
  • -d 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
  • -g 指定用户所属的用户组
  • -G 指定用户所属的附加组
  • -s 指定用户的登录Shell
  • -u 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号

userdel - 删除用户

语法:

  userdel 选项 用户名

选项与参数:

  • -r  一起删除用户的主目录

usermod - 修改用户

语法:

 usermod 选项 用户名

选项与参数:

  • -c 指定一段注释性描述
  • -d 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
  • -g 指定用户所属的用户组
  • -G 指定用户所属的附加组
  • -s 指定用户的登录Shell
  • -u 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号

用户组管理

groupadd - 添加用户组

语法:

 groupadd 选项 用户组

选项与参数:

  • -g GID 指定新用户组的组标识号(GID)。
  • -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

groupdel - 删除用户组

语法:

 groupdel  用户组

groupmod - 修改用户组

语法:

 groupmod 选项 用户组

选项与参数:

  • -g GID 为用户组指定新的组标识号。
  • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
  • -n新用户组 将用户组的名字改为新名字

五、Linux磁盘管理

df(disk free)- 列出文件系统的整体磁盘使用量

语法:

df [options] [目录或文件名]

选项与参数:

  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统
  • -k :以 KBytes 的容量显示各文件系统
  • -m :以 MBytes 的容量显示各文件系统
  • -h :以较易阅读的 GBytes, MBytes, KBytes 等格式显示
  • -H :以 M=1000K 取代 M=1024K 的进位方式
  • -T :显示文件系统类型
  • -i :不用硬盘容量,而以 inode 的数量来显示

du(disk used)- 检查磁盘空间使用量

语法:

du [options] 文件或目录名称

选项与参数:

  • -a :列出所有的文件与目录容量
  • -h :以较易读的容量格式 (G/M) 显示
  • -s :仅显示指定目录或文件的总大小
  • -S :包括子目录下的总计,与 -s 有点差别
  • -k :以 KBytes 列出容量显示
  • -m :以 MBytes 列出容量显示

fdisk - 用于磁盘分区

语法:

fdisk [options] 装置名称

选项与参数:

  • -l :输出后面接的装置所有的分区内容

mkfs - 磁盘格式化

语法:

mkfs [-t 文件系统格式] 装置文件名

选项与参数:

  • -t :可以接文件系统格式

mount - 磁盘挂载

语法:

mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点

umount - 磁盘卸载

语法:

umount [-fn] 装置文件名或挂载点

选项与参数:

  • -f :强制卸除
  • -n :不升级 /etc/mtab 情况下卸除

六、Linux yum命令

yum 语法:

yum [options] [command] [package ...]
  • -h:帮助
  • -y:当安装过程提示选择全部为 "yes"
  • -q:不显示安装的过程
  • command:要进行的操作
  • package安装的包名

yum常用命令

1. 列出所有可更新的软件清单命令:yum check-update

2. 更新所有软件命令:yum update

3. 仅安装指定的软件命令:yum install <package_name>

4. 仅更新指定的软件命令:yum update <package_name>

5. 列出所有可安裝的软件清单命令:yum list

6. 删除软件包命令:yum remove <package_name>

7. 查找软件包命令:yum search <keyword>

8. 清除缓存命令:

  • 清除缓存目录下的软件包:yum clean packages
  • 清除缓存目录下的 headers:yum clean headers
  • 清除缓存目录下旧的 headers:yum clean oldheaders
  • 清除缓存目录下的软件包及旧的 headers:yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 

七、Linux apt命令

apt 语法:

  apt [options] [command] [package ...]
  • -h:帮助
  • -y:当安装过程提示选择全部为 "yes"
  • -q:不显示安装的过程
  • command:要进行的操作
  • package安装的包名

apt 常用命令

  • 列出所有可更新的软件清单命令:sudo apt update

  • 升级软件包:sudo apt upgrade

    列出可更新的软件包及版本信息:apt list --upgradeable

    升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade

  • 安装指定的软件命令:sudo apt install <package_name>

    安装多个软件包:sudo apt install <package_1> <package_2> <package_3>

  • 更新指定的软件命令:sudo apt update <package_name>

  • 显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>

  • 删除软件包命令:sudo apt remove <package_name>

  • 清理不再使用的依赖和库文件: sudo apt autoremove

  • 移除软件包及配置文件: sudo apt purge <package_name>

  • 查找软件包命令: sudo apt search <keyword>

  • 列出所有已安装的包:apt list --installed

  • 列出所有已安装的包的版本信息:apt list --all-versions

相关推荐

  1. Linux 基础知识点详细总结

    2024-01-06 19:48:03       30 阅读
  2. Linux的Shell基础知识总结

    2024-01-06 19:48:03       12 阅读
  3. jvm基础知识总结

    2024-01-06 19:48:03       36 阅读
  4. ElasticSearch基础知识总结

    2024-01-06 19:48:03       28 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-06 19:48:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-06 19:48:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-06 19:48:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-06 19:48:03       18 阅读

热门阅读

  1. Springboot实体类与数据表对应修改

    2024-01-06 19:48:03       39 阅读
  2. 【Mysql】 创建账号并赋予权限

    2024-01-06 19:48:03       41 阅读
  3. UI 自动化-krunner

    2024-01-06 19:48:03       36 阅读
  4. bulk-RNA seq测序数据分析流程

    2024-01-06 19:48:03       37 阅读
  5. 设计模式:原型模式

    2024-01-06 19:48:03       37 阅读
  6. C语言中#define的用法详解

    2024-01-06 19:48:03       39 阅读
  7. 2024阿里云Alibaba Cloud Linux 3镜像版本大全说明

    2024-01-06 19:48:03       38 阅读