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

前言

学过操作系统的人都知道,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 位为文件权限字段
2:链接数
xjh:文件拥有者
xjh:所属群组
178:文件大小
14 2014:文件最后被修改的时间
native:文件名

常见的文件类型及其含义有:
d:目录
-:文件
l:链接文件

9 位的文件权限字段中,每 3 个为一组,共 3 组,每一组分别代表对文件拥有者、所属群组以及其它人的文件权限。一组权限中的 3 位分别为 r、w、x 权限,表示可读、可写、可执行。

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

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

3.文件默认权限

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

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

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

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

5.获取文件内容
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
以字符或者十六进制的形式显示二进制文件。

4.压缩与打包

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

扩展名 压缩程序
*.Z compress
*.zip zip
*.gz gzip
*.bz2 bzip2
*.xz xz
*.tar tar 程序打包的数据,没有经过压缩
*.tar.gz tar 程序打包的文件,经过 gzip 的压缩
*.tar.bz2 tar 程序打包的文件,经过 bzip2 的压缩
*.tar.xz tar 程序打包的文件,经过 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

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

猜你喜欢

转载自blog.csdn.net/weixin_38073885/article/details/87924487