Linux的快速认知和简单使用

Linux权限认知

系统目录结构

Linux中一切皆文件 。在Linux系统中一切都是由文件组成的,所有的目录结构都在一个*别的根目录 "/" 下,根目录是所有目录的起始点,其下面的子目录是一个层次或树状结构,这些不通的目录可以分布在不同的硬盘分区,甚至不同的设备上。

通过 ls -a 指令打印目录结构:

  • bin :二进制可执行文件
  • boot :系统引导文件
  • dev :设备文件
  • etc :系统管理和配置文件
  • home :用户的根目录,基本是每一个普通用户存放一个文件夹
  • lib :标准程序设计库,又叫动态链接共享库 library
  • lost+found :正常情况下,该目录是空的,保存丢失文件
  • media :系统会自动识别一些设备,如U盘、光驱等,识别后,会把识别的设备挂载到这个目录下
  • mnt :临时挂载别的文件系统
  • opt :第三方软件默认安装的位置
  • proc :虚拟目录,它是系统内存的映射,可以通过访问这个目录来获取系统信息
  • root :超级权限者的用户主目录
  • sbin :即 super bin,系统管理员使用的系统管理程序
  • tmp :存放临时文件
  • usr :最庞大的目录,要用到的应用程序和文件几乎都在这个目录下
  • var :某些大文件的溢出区,例如各种服务的日志文件
文件与文件夹的权限

每一个资源文件仅仅属于一个所有者和一个拥有组,这样的设置的目的旨在提高文件的安全性。

通过 ls -la 指令打印出文件或者目录的所有者与拥有组的属性:

[root@VM_0_10_centos /]# ls -la
total 80
lrwxrwxrwx.   1 root root     7 Mar  7  2019 bin -> usr/bin
dr-xr-xr-x.   5 root root  4096 Mar 20 11:21 boot
drwxr-xr-x   19 root root  3000 Mar 25 09:42 dev
drwxr-xr-x.  87 root root  4096 Mar 25 14:13 etc
drwxr-xr-x.   2 root root  4096 Apr 11  2018 home
lrwxrwxrwx.   1 root root     7 Mar  7  2019 lib -> usr/lib
lrwxrwxrwx.   1 root root     9 Mar  7  2019 lib64 -> usr/lib64
drwx------.   2 root root 16384 Mar  7  2019 lost+found
drwxr-xr-x.   2 root root  4096 Apr 11  2018 media
drwxr-xr-x.   2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x.   5 root root  4096 Mar 20 13:51 opt
dr-xr-xr-x  114 root root     0 Mar 25 09:42 proc
dr-xr-x---.   8 root root  4096 May 25 14:54 root
lrwxrwxrwx.   1 root root     8 Mar  7  2019 sbin -> usr/sbin
drwxrwxrwt.  10 root root 12288 May 28 04:31 tmp
drwxr-xr-x.  13 root root  4096 Mar  7  2019 usr
drwxr-xr-x.  19 root root  4096 Mar  7  2019 var

第三列的 root 代表文件或者目录的所有者

第四列的 root 代表文件或者目录的拥有组

第一列的信息是由10个字符表示的,例如 drwxr-xr-x:

第 1 位代表文件的类型(文件夹或文件),d 代表目录,- 代表文件,l 代表链接文件,b 代表设备文件中可存储的接口设备,c 代表 设备文件中串行端口设备...

第 1 位 第 2~4 位(u) 第 5~7 位(g) 第 8~10 位(o)
d rwx r-x r-x
文件类型 所有者权限 拥有组权限 其他用户权限
目录 可读、可写、可执行 可读、可执行 可读、可执行
文件权限 目录权限
可读[r] 可以读取文件的内容,如:可以 cat 查看内容 可以浏览文件目录,如:可以 cd 进入
可写[w] 可以修改文件的内容,如:可以 vim 修改内容 可以修改目录权限,如:可以 mkdir 新建目录
可执行[x] 可以执行可执行程序 可以对目录执行 ls -l,并且能够 cd 进去
没权限[-]
多用户机制

Linux 是个多用户多任务的分时操作系统,用户的 ID 统称为 UID 。超级管理员 root 的 UID 为 0 ,1~499 之间的 UID 视为系统保留;普通用户 UID 从 500 开始起。

用户类型可以分为三种:超级用户,系统用户,普通用户。

用户组基本分为两种:基本组和附件组。一个用户只可以属于一个基本组,但可以加入多个附加组,系统在创建用户账号时会默认将用户加入基本组。用户加入用户组就会拥有此用户组的相关权限。

useradd 用于创建用户账号,groupadd用于创建用户组

useradd [选项] 用户名 #id指令查看用户

groupadd [选项] 用户组名

userdel和groupdel 用于删除账号和用户组.

userdel [选项] 用户名

groupdel [选项] 用户组

Linux常用指令

切换目录

回到上一级目录,类似 Windows 的「向上」

cd ..

表示回到上一次所在的目录,类似 Windows 的「后退」

cd -

表示回到当前用户的 home 目录,类似 Windows 的「回到桌面」

cd ~

表示进入根目录,它是一切目录的父目录

cd /
创建目录

创建一个文件夹

mkdir foldername

一次性创建多级目录

mkdir -p foldername1/foldername2/foldername3
编辑文件

新建文件或修改文件

vim filename
  1. 输入 i ,即切换到“插入”状态。就可以通过上下左右移动光标,或空格、退格及回车等进行编辑内容
  2. 文本编辑结束后,按"ESC"退出编辑
  3. 输入 : 进入退出指令状态
  4. 输入指令,退出编辑器。4种退出情况:保存退出、正常退出、不保存退出及强制退出
    • 保存退出:(有三种方式)
      • 输入 wq ,回车即为保存退出;(w:write;q:quit)
      • 输入 x ,回车即为保存退出;(x=wq)
      • 在按"ESC"后,直接按"SHIFT+zz"或切换到大写模式按"zz",即保存退出
    • 正常退出:(打开的文本文件在内容上没有被改动过)输入 q ,回车即为正常退出
    • 不保存退出:输入q! ,回车即不保存退出
    • 强制退出:输入 ! ,回车即强制退出
查看文件

实时监控文件:

tail -f filename

实时监控 10 行文件信息

tail -10f filename

查看文件尾部最后 100 行文件信息

tail -n 100 filename

查看文件 100 行之后的日志信息

tail -n +100 filename

查看文本开始的头 100 行信息

head -n 100 filename

查看文本最后 100 行信息以上的内容

head -n -100 filename

查看全部文件內容

cat filename

查看文本的中间某些行范围之间的内容。例如:查看文本文件 100~120 行之间的内容

cat -n filename |tail -n +100|head -n 20

从文本的尾部往头部展现日志内容

tac filename

在文件中查找内容

grep "匹配字符串" filename_1 filename_2 

输出包含匹配字符串的行数 -n 选项

grep "匹配字符串" -n file_name

输出除之外的所有行 -v 选项

grep -v "匹配字符串" file_name
删除文件或文件夹

删除目录

rm -rf foldername1  # -r 向下递归,不管有多少级目录,一并删除 ;-f 直接强行删除,不作任何提示

删除文件

rm -f filename
进程操作

查看所有进程

ps -ef

按进程名查询

ps -ef|grep pname

终止进程

kill -信号编号 PID
信号编号 信号名 含义
0 EXIT 程序退出时收到该信息。
1 HUP 挂掉终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
2 INT 表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。
3 QUIT 退出。
9 KILL 杀死进程,即强制结束进程。
11 SEGV 段错误。
15 TERM 正常结束进程,是 kill 命令的默认信号。
端口号查看

查看当前所有tcp端口

netstat -ntlp

查看端口使用情况

netstat -ntlp|grep portnumber

查看端口是否被占用

netstat -anp|grep portnumber

根据进程ID查询端口号

netstat -anp|grep PID
上一篇:Linux-npm install命令&脚本命令


下一篇:SpringTask