一文简要概述Linux中常用知识点

本文简要概述了Linux系统中的关键知识点,包括文件目录结构(如根目录及其子目录)、常用Linux操作(如快捷键、系统信息查看、文件管理)以及文件属性和权限管理。此外,还介绍了如何查看和管理进程,如ps、top和kill命令。文章适合初学者了解Linux基础操作。
摘要由CSDN通过智能技术生成

前言

学过操作系统的人都知道,windows系统是单用户多线程OS,Linux是多用户多线程OS。正是优于Linux系统的优越性,可以满足多个用户 多个任务并发执行,服务器都采用的是Linux系统。南国不才,截止到写这篇博客为止,在这短暂的大数据学习中也算是对CentOS系统从一无所知到慢慢了解,本篇博客开始,南国就根据自己之前的学习经历,记录一下在Linux系统中学习中的知识点。这里的博客内容 大多是依据CentOS 7来写,如有和Ubuntu在某些地方不同,还请读者知道,以免引起不必要的误会。

1.Linux的文件目录结构

/ 根目录
├── bin 存放用户二进制文件
├── boot 存放内核引导配置文件
├── dev 存放设备文件
├── etc 存放系统配置文件
├── home 用户主目录
├── lib 动态共享库
├── lost+found 文件系统恢复时的恢复文件
├── media 可卸载存储介质挂载点
├── mnt 文件系统临时挂载点
├── opt 附加的应用程序包
├── proc 系统内存的映射目录,提供内核与进程信息
├── root root 用户主目录
├── sbin 存放系统二进制文件
├── srv 存放服务相关数据
├── sys sys 虚拟文件系统挂载点
├── tmp 存放临时文件
├── usr 存放用户应用程序
└── var 存放邮件、系统日志等变化文件

Linux 与其他类 UNIX 系统一样并不区分文件与目录:目录是记录了其他文件名的文件。使用命 令 mkdir 创建目录时,若期望创建的目录的名称与现有的文件名(或目录名)重复,则会创建失败。

2.常用的linux操作

快捷键
1.Tab:命令和文件名补全;
2.Ctrl+C:中断正在运行的程序;
3.Ctrl+D:结束键盘输入(End Of File,EOF)

Linux查看系统的基本命令
1.uname -a (查看Linux当前操作系统内核信息,操作系统位数)

2.getconf LONG_BIT(判断当前系统是32还是64位)

3.cat /proc/cpuinfo (Linux查看cpu相关信息,包括型号,主频,内核信息等)

4.CentOS查看系统版本:cat /etc/redhat-release
Ubuntu查看系统版本:lsb_release -a

5.CentOS7 防火墙 使用firewalld打开关闭防火墙
firewalld的基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld

6.shutdown [-krhc] 时间 [信息]
-k : 不会关机,只是发送警告信息,通知所有在线的用户
-r : 将系统的服务停掉后就重新启动
-h : 将系统的服务停掉后就立即关机
-c : 取消已经在进行的 shutdown 指令内容
CentOS7中关机 还可以采用poweroff

7.who: 查看当前有没有其他用户在线

8.sudo:允许一般用户使用root执行的命令,不过只有在 /etc/sudoers 配置文件中添加的用户才能使用该指令。

vim三个模式
在CentOS系统中,也可用vi表示,一般而言 我们是使用例如:vi new.txt在当前文件路径下创建一个新文件。

它有三个模式:

  • 一般指令模式(Command mode):VIM 的默认模式,可以用于移动游标查看内容;
  • 编辑模式(Insert mode):按下 “i” 等按键之后进入,可以对文本进行编辑;
  • 指令列模式(Bottom-line mode):按下 “:” 按键之后进入,用于保存退出等操作。

在指令列模式下,有以下命令用于离开或者保存文件。

命令作用
:w写入磁盘
:w!当文件为只读时,强制写入磁盘。到底能不能写入,与用户对该文件的权限有关
:q离开
:q!强制离开不保存
:wq写入磁盘后离开
:wq!强制写入磁盘后离开

3.文件

1.文件属性

用户分为三种:文件拥有者、群组以及其它人,对不同的用户有不同的文件权限。

使用ls命令可查看某个目录下的所有文件和文件子目录;ll命令看到文件的全部信息。如下图:

总用量 0
drwxr-xr-x. 2 xjh xjh 178 11月 14 2014 native
[xjh@msiPC lib]$ ls
native

对于ll显示出来的信息做如下解释:
drwxr-xr-x:文件类型以及权限,第 1 位为文件类型字段,后 9 位为文件权限字段

(2019.0809更新)
实例中,第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。

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

接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已

每个文件的属性由左边第一部分的10个字符来确定(如下图)。
在这里插入图片描述
所以,上图中的链接数
xjh:文件拥有者
xjh:所属群组
178:文件大小
14 2014:文件最后被修改的时间
native:文件名

2.文件与目录的基本操作

注意下面带有[]的内容 表示非必需,可以根据功能需要 增加或不增加
1. ls
列出文件或者目录的信息,目录的信息就是其中包含的文件。

ls [-aAdfFhilnrRSt] file|dir
-a :列出全部的文件
-d :仅列出目录本身
-l :以长数据串行列出,包含文件的属性与权限等等数据

2. cd
更换当前目录。
cd [相对路径或绝对路径]

3. mkdir
创建目录。
mkdir [-mp] 目录名称
-m :配置目录权限
-p :递归创建目录

4. rmdir
删除目录,目录必须为空。
rmdir [-p] 目录名称
-p :递归删除目录

5. touch
更新文件时间或者建立新文件。
touch [-acdmt] filename
-a : 更新 atime
-c : 更新 ctime,若该文件不存在则不建立新文件
-m : 更新 mtime
-d : 后面可以接更新日期而不使用当前日期,也可以使用 --date=“日期或时间”
-t : 后面可以接更新时间而不使用当前时间,格式为[YYYYMMDDhhmm]

6. cp
复制文件。
如果源文件有两个以上,则目的文件一定要是目录才行。

cp [-adfilprsu] source destination
-a :相当于 -dr --preserve=all 的意思,至于 dr 请参考下列说明
-d :若来源文件为链接文件,则复制链接文件属性而非文件本身
-i :若目标文件已经存在时,在覆盖前会先询问
-p :连同文件的属性一起复制过去
-r :递归持续复制
-u :destination 比 source 旧才更新 destination,或 destination 不存在的情况下才复制
–preserve=all :除了 -p 的权限相关参数外,还加入 SELinux 的属性, links, xattr 等也复制了

7. rm
删除文件。
rm [-fir] 文件或目录
-r :递归删除

8. mv
移动文件。
mv [-fiu] source destination
mv [options] source1 source2 source3 … directory
-f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖

9.pwd
显示当前文件路径。

3.修改文件权限

可以将一组权限用数字来表示,此时一组权限的 3 个位当做二进制数字的位,从左到右每个位的权值为 4、2、1,即每个权限对应的数字权值为 r : 4、w : 2、x : 1

chmod [-R] xyz dirname/filename

示例:将 .bashrc 文件的权限修改为 -rwxr-xr–。

 chmod 754 .bashrc

也可以使用符号来设定权限

chmod [ugoa] [±=] [rwx] dirname/filename

  • u:拥有者
  • g:所属群组
  • o:其他人
  • a:所有人
  • +:添加权限
  • -:移除权限
  • =:设定权限

示例:为 .bashrc 文件的所有用户添加写权限。

 chmod a+w .bashrc

一般而言 我们修改某个权限时选用的时用数字表示。

文件默认权限

  • 文件默认权限:文件默认没有可执行权限,因此为 666,也就是 -rw-rw-rw- 。
  • 目录默认权限:目录必须要能够进入,也就是必须拥有可执行权限,因此为 777 ,也就是 drwxrwxrwx。

可以通过 umask 设置或者查看文件的默认权限,通常以掩码的形式来表示,例如 002 表示其它用户的权限去除了一个 2 的权限,也就是写权限,因此建立新文件时默认的权限为 -rw-rw-r–。

目录的权限
文件名不是存储在一个文件的内容中,而是存储在一个文件所在的目录中。因此,拥有文件的 w 权限并不能对文件名进行修改。

目录存储文件列表,一个目录的权限也就是对其文件列表的权限。因此,目录的 r 权限表示可以读取文件列表;w 权限表示可以修改文件列表,具体来说,就是添加删除文件,对文件名进行修改;x 权限可以让该目录成为工作目录,x 权限是 r 和 w 权限的基础,如果不能使一个目录成为工作目录,也就没办法读取文件列表以及对文件列表进行修改了。

4. 获取文件内容

1.cat
取得文件内容。
cat [-AbEnTv] filename
-n :打印出行号,连同空白行也会有行号,-b 不会

2. tac
是 cat 的反向操作,从最后一行开始打印。

3. more
和 cat 不同的是它可以一页一页查看文件内容,比较适合大文件的查看。

4. less
和 more 类似,但是多了一个向前翻页的功能。

5. head
取得文件前几行。
head [-n number] filename
-n :后面接数字,代表显示几行的意思

6. tail
是 head 的反向操作,只是取得是后几行。

7. od
以字符或者十六进制的形式显示二进制文件。

5. Linux中软链接和硬链接的区别

我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分**:用户数据 (user data) 与元数据 (metadata)**。

  • 用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;
  • 元数据,则是文件的附加属性,如文件大小、创建时间、所有者等信息;

在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是 \文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块

为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处若一个 inode 号对应多个文件名,则称这些文件为 硬链接。换言之,硬链接就是同一个文件使用了多个别名

由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:

  • 文件有相同的 inode 及 data block;
  • 只能对已存在的文件进行创建;
  • 不能交叉文件系统进行硬链接的创建;
  • 不能对目录进行创建,只可对文件创建;
  • 删除一个硬链接文件并不影响其他有相同 inode 号的文件。

ln -s source dist # 建立软连接 ln source dist # 建立硬连接
关于二者的区别:

  • 硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接
  • 软链接: 保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径。(简单地理解为 Windows 中常见的快捷方式)

4.压缩与打包

1.压缩文件名
Linux系统中有很多压缩文件名,常见的如下所示:

扩展名压缩程序
*.Zcompress
*.zipzip
*.gzgzip
*.bz2bzip2
*.xzxz
*.tartar 程序打包的数据,没有经过压缩
*.tar.gztar 程序打包的文件,经过 gzip 的压缩
*.tar.bz2tar 程序打包的文件,经过 bzip2 的压缩
*.tar.xztar 程序打包的文件,经过 xz 的压缩

2.压缩指令
1. gzip
gzip 是 Linux 使用最广的压缩指令,可以解开 compress、zip 与 gzip 所压缩的文件。

经过 gzip 压缩过,源文件就不存在了。

有 9 个不同的压缩等级可以使用。

可以使用 zcat、zmore、zless 来读取压缩文件的内容。

$ gzip [-cdtv#] filename
-c :将压缩的数据输出到屏幕上
-d :解压缩
-t :检验压缩文件是否出错
-v :显示压缩比等信息
-# : # 为数字的意思,代表压缩等级,数字越大压缩比越高,默认为 6

2. bzip2
提供比 gzip 更高的压缩比。

查看命令:bzcat、bzmore、bzless、bzgrep。

$ bzip2 [-cdkzv#] filename
-k :保留源文件

3. xz
提供比 bzip2 更佳的压缩比。

可以看到,gzip、bzip2、xz 的压缩比不断优化。不过要注意的是,压缩比越高,压缩的时间也越长。

查看命令:xzcat、xzmore、xzless、xzgrep。

$ xz [-dtlkc#] filename

3.打包
压缩指令只能对一个文件进行压缩,而打包能够将多个文件打包成一个大文件。tar 不仅可以用于打包,也可以使用 gip、bzip2、xz 将打包文件进行压缩。

$ tar [-z|-j|-J] [cv] [-f 新建的 tar 文件] filename… ==打包压缩
$ tar [-z|-j|-J] [tv] [-f 已有的 tar 文件] ==查看
$ tar [-z|-j|-J] [xv] [-f 已有的 tar 文件] [-C 目录] ==解压缩
-z :使用 zip;
-j :使用 bzip2;
-J :使用 xz;
-c :新建打包文件;
-t :查看打包文件里面有哪些文件;
-x :解打包或解压缩的功能;
-v :在压缩/解压缩的过程中,显示正在处理的文件名;
-f : filename:要处理的文件;
-C 目录 : 在特定目录解压缩。

使用方式命令
打包压缩tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
查 看tar -jtv -f filename.tar.bz2
解压缩tar -jxv -f filename.tar.bz2 -C 要解压缩的目录

5.进程管理

查看进程

1. ps
查看某个时间点的进程信息
示例一:查看自己的进程: ps -l
示例二:查看系统所有进程: ps aux
示例三:查看特定的进程: ps aux | grep threadx

2. pstree
查看进程树
示例:查看所有进程树: pstree -A

3. top
实时显示进程信息
示例:两秒钟刷新一次: top -d 2

4. netstat
查看占用端口的进程
示例:查看特定端口的进程: netstat -anp | grep port

5.杀进程kill
使用kill命令结束进程:kill xxx
常用:kill -9 324
Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME

kill进程杀不掉的原因:

  • 进程已经成为僵死进程,当它的父进程将它回收或将它的父进程kill掉即可在ps输出看不到了;
  • 进程正处在内核状态中,Linux进程运行时分内核和用户两种状态,当进程进入内核状态后,会屏蔽所有信号,包括SIGKIL,所以这个时候kill -9也变得无效了

关于在CentOS系统中关于进程的更多shell指令操作,可参考CentOS查看进程、杀死进程、启动进程等常用命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值