Linux中基本指令以及权限理解

  • 基本指令
  • 权限理解

Linux环境:云服务器,通过Xshell登录
操作系统:CentOs 7.6 64位
注:如果使用的操作系统不同也没影响,指令基本都是一样的


一.基本指令:

  • ssh 用户名@主机名 :Xshell登录用户
  • useradd 用户名 :增加用户,增加用户之后要进行passwd
  • passwd 用户名 :修改用户密码
  • userdel 用户名 :删除用户,这个指令不常用
  • whoami 查看当前用户
  • logout 退出登录
  • clear 清屏

在Linux中,一切皆文件,那么我们就要先理解什么是文件?
空文件也要在磁盘中占据空间,因为空文件有文件属性:文件名,文件大小等等,这些都要保存到磁盘中
因此:文件 = 内容 + 属性,也就说如果我们要操作文件,无非就是操作它的内容或是操作它的属性,如更改
文件名,向文件中输入内容…

1. ls

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
用法:ls 目录名 --默认为当前目录,也可以指定目录

ls也可以加命令选项

  • ls -l -以列表的形式显示当前目录下文件更多的属性信息
  • ls -a -显示隐藏文件,隐藏文件就是以.开头的文件
  • ls -d -将当前目录像显示文件一样,而不显示当前目录下的其他文件

以上命令可以随意搭配:

ls -la , ls -ld
ls -l 等价于 ll

  • 文件中有这样两个特殊文件
    • . 一个点代表当前目录
    • … 两个点代表上级目录
2. pwd

功能:显示当前用户所处的目录
用法:pwd

3.cd

功能:进入指定目录
用法:cd 目录名
比如:

  • cd … -到上级目录
  • cd /dev -进入dev目录
  • cd ~ -进入用户家目录
  • cd - -返回最近访问的目录

目录分为相对目录和绝对目录:
*Linux中目录分割符:/ Windows中目录分割符:*
绝对目录:从根目录开始到下,如:/home/bit/test.c
相对目录:比如你正在bit这个文件夹,相对目录就是 test.c

Linux中目录结构为一颗树
image.png

4. touch

功能:touch命令可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
用法:touch 文件名

5.mkdir

功能:创建目录
用法:mkdir 目录名

如果要创建多级目录,需要加选项

  • mkdir -p dir1/dir2
6. rmdir

功能:删除空目录
用法:rmdir 目录

7.rm

功能:删除目录或是文件
用法:rm 文件

  • rm -r 目录 -如果要删除目录,加命令选项-r,会递归删除目录
  • rm -f 文件 -强制删除
8.man
   Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man,常用到的man手册有三册:1是命令,2是系统调用,3是库函数

功能:查看指令的信息
用法:man 命令

  • man -1 命令 -在1号手册中查找命令
  • man -2 命令 -在2号手册中查找系统调用
  • man -3 命令 -在3号手册中查找库函数
9.cp

功能:复制文件或是目录
用法:cp src dst

  • cp -r src dst -如果要复制目录的话,加命令选项-r,将目录src复制到dst目录下
  • cp -rf src dst -将目录src强制复制到dst目录下
10.mv

功能:

  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名将其移至一个新的目录中。
  2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

用法:mv src dst

11.cat

功能:查看目标文件的内容
用法:cat 文件

  • cat -n 文件 -对输出的所有行编号
  • cat -s 文件 -不输出多行空行
12.more和less

功能:查看目标文件的内容,当内容是多页时,more和less可以分页浏览
用法:more/less 文件

more只能按enter进行向下翻页
less可以按上下箭头进行翻页
more和less都是按q退出
我们一般都是使用less的

13.head 和 tail

功能:head:默认打印文本的前10行到屏幕上,tail:默认打印文本的后10行到屏幕上。
用法:head/tail 文件 :打印前10行/后10行到屏幕上

  • head/tail -n5 文件 -打印前5行/后5行到屏幕上
14.date

功能:显示时间
用法:data

%H : 小时(00…23)
%M : 分钟(00…59)
%S : 秒(00…61)
%d : 日 (01…31)
%m : 月份 (01…12)
%Y : 完整年份 (0000…9999)

  • data +%Y-%m-%d/%H:%M:%S

时间->时间戳 :data +%s

时间戳->时间: date -d@1508749502 -@后面的数字是时间戳

15.cal

功能:查看日历
用法:cal

  • cal -3 -显示前一个月,当前月,后一个月这三个月的日历
  • cal -y 年份 -显示一年的日历
16.find

功能:用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)
用法:find 目录 -name test.c -在目录中查找名字是test.c的文件

17.which

功能:查找命令的路径
用法:which 命令

18.whereis

功能: 该指令会在特定目录中查找符合条件的文件。
用法:whereis 名字

19.grep

功能:在文件中搜索字符串,将找到的行打印出来
用法:grep ‘str’ test.c -在test.c中查找‘str’这个字符串

  • grep -n ‘str’ test.c -打印出行号
  • grep -v ‘str’test.c -输出没有str的行
  • grep -i ‘str’ test.c -查找中忽略大小写
20.zip

功能:对文件/目录进行压缩文件
用法:zip test.zip test.txt -将test.txt打包为test.zip

  • zip -r test.zip test -如果打包的是目录的话,需要加-r选项
  • 如果上面没有的zip指令:可以使用root用户安装 yum install -y zip
21.unzip

功能:解压缩
用法:unzip test.zip -默认解压缩到当前目录

  • unzip test.zip -d 目录 -将文件压缩到指定目录里
22.tar

**功能: **-----即可以压缩,也可以解压,根据所传的选项来确定

  1. 压缩
  • -c create :创建一个新的archive
  • -z 打包的同时并且压缩
  • -f 后面必须紧跟新的压缩包的名字
  • tar -czf dst src
  2. 解压       默认解压到当前路径下
  • -x 解压
  • tar -xzf src -默认解压到当前路径
  • tar -xzf src -C ~ -加命令选项-C,可以选定解压到的文件路径,解压到家目录下
23.bc

功能:可以进行浮点运算
用法:bc

24.uname

功能: 可显示linux主机所用的操作系统的版本、硬件的名称等基本信息

  • uname -r -显示操作系统的发行版号
  • uname -a -显示为内核名称,主机名,内核版本号,内核版本,硬件处理器 类型,硬件平台类型,操作系统名称

3.10.0 - 3是主版本号,10是次版本号(偶数稳定版本,奇数为测试版本),0是修正次数
el7 -CentOs 7
image.png

25.stat

功能:获取文件的所有属性
用法:stat 文件名

26.wc

功能:统计文件有多少行
用法:wc -l 文件

27.echo

功能:将字符串显示到显示器上
**用法:echo ‘str’ **

  • echo ‘str’ > 文件名 :如果文件不存在,则会创建一个文件
    • > 是输入重定向,echo本来输出到屏幕上,现在重定向到文件中
    • >> 追加重定向,输入重定向会先清空,然后写入,追加不会清空文件
28.sort

功能:对文本中的内容按行排序
用法:sort test.c

  • sort -r test.c 反向排序
29.uniq

功能:将相邻的文本进行去重压缩
用法:uniq test.c

  • sort -r test.c | uniq

这里的 | 是管道:一种特殊的输入输出重定向

将 sort -r test.c 的结果由屏幕重定向到uniq程序中
| 起的作用就是传输资源

30.top

功能:查看任务管理器
用法:top

31.alias

功能:给指令起别名
用法:alias myls=‘ls -a -l’

32.histroy

功能:查看历史命令
用法:histroy > test.c

33.file

功能:辨识文件类型。
用法:file 文件名

热键
  1. tab 命令补全
  2. ctrl c 停止当前程序
  3. ctrl d 相当于exit
  4. ctrl r 在历史命令中进行搜索
shell外壳以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。
shell外壳的定义:命令行解释器(command interpreter)
查看操作系统的指令:

  • uname -r
  • uname -a
  • cat /etc/redhat-release

shell外壳的作用:

  1. 保护kernel
  2. 命令行的传递以及处理结果的返回

比如windows,我们并不是直接操作windows内核,而是通过windows GUI ,图形点击进行一系列操作

二.权限的理解

2.1.Linux下用户分类:
  1. 超级管理员,root,而root用户在/root下
  2. 普通用户,普通用户在/home目录下
  3. 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”

用户之间的切换:

  • su 用户名
  • su -直接切换到root用户,路径不会改变
  • su - -切换到root用户,路径会改变为/root
2.2.文件访问者的分类:
  1. 文件/文件目录的所有者:u–user
  2. 文件/文件目录所有者所在组的用户:g–group
  3. 其他用户:o–others
2.3.文件类型/文件的访问权限:

image.png

2.4.常见的文件类型:
  • d 目录文件
  • 只有 - 普通文件
  • p 管道文件
  • c 字符设备:键盘,屏幕
  • b 块设备,block,如磁盘等
  • s 网络sockets文件
  • l 链接文件
2.5.文件权限的理解:
  1. r -对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  2. w -对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
  3. x -对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
  4. 如果 - , 如果对应的权限为-,说明该用户没有对应的权限

image.png

2.5.改变文件的权限:
  1. chmod

用法:

  • chmod u+rwx test.txt -给user加上rwx权限
  • chmod g+rwx test.txt -给所属组加上rwx权限
  • chmod o+rwx test.txt -给others加上rwx权限
  • chmod a+rwx test.txt -给上面所有角色加上rwx权限
  • 上面的+也可以是- ,-就是减去对应的权限

当然也可以使用八进制来改变角色权限

  • chmod 777 test.txt -等价于chmod a+rwx test.txt
  1. chown

用法:chown一般都是root用户操作,因为给某个人权限,要某人同意,但是root可以强制给于

  • chown root test.txt -将该文件/目录的所有者改为root
  1. chgrp

用法:root用户操作

  • chgrp root test.txt -将该文件/目录的所属组改为root
2.6.权限掩码和默认权限

当我们用touch创建一个文件或者用mkdir创建一个目录时,为什么普通文件的默认权限是664,目录文件的默认权限是775呢(不同的操作系统,默认权限可能不同)

  1. 起始权限:系统设置的一个权限,当前系统:普通文件:666,目录文件:777
  2. 默认权限:最终我们看到的那个文件的权限,普通文件:664,目录文件:775

起始权限–>默认权限需要经过权限掩码的修饰
权限掩码:

  • umask 使用umask可以查看当前用户的默认权限掩码,共显示4位数,后3位数就是权限掩码
  • umask 0333 -将权限掩码修改为333,第一位0可以暂时看作格式

起始权限减去在权限掩码中出现的权限就是我们看到的默认权限,方法:起始权限 & ~(umask)
image.png

2.7.粘滞位

目录的权限:

  • r :如果没有r权限,则无法使用ls命令查看当前目录的文件内容
  • w :如果没有w权限,则无法在当前目录中创建/删除文件
  • x :如果没有x权限,则无法cd到该目录

有时候,我们要建立一个共享目录,用来保存那些共享数据,但是此时有一个问题,就是该共享目录的所有权限都以及放开了,现在有一个用户想要删除其他用户的文件,那也是可以的,但是这样明显不合理,我们如果不想让别人随便删除自己的文件,就要给该共享目录添加粘滞位,粘滞位由该共享目录的所有者添加,一般是root
方法:chmod +t 目录名字
image.png
上述的public目录就是root创建的一个共享目录,添加粘滞位后,共享目录中other权限的x变为了t
当一个共享目录被设置了粘滞位后,该目录中的文件只能由

  1. root删除
  2. 目录/文件的所有者删除
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值