Linux入门-环境搭建、基本指令以及权限讲解

这次我给大家介绍Linux系统,究竟怎么更快上手Linux,怎么学习Linux?接下来我给大家分享一下干货。

Linux入门

  • 环境搭建
  • Linux指令
    • 基本指令
    • ls命令
    • cd指令
    • 安装软件的指令
    • rmdir和rm指令
    • man指令
    • cp指令
    • mv指令
    • cat指令
    • 输出重定向
    • 输入重定向
    • more命令
    • less命令
    • head指令
    • tail指令
    • 统计文本文件的行数
    • 利用管道提取文本文件的中间行
    • 时间指令
    • sort指令
    • uniq指令
    • find指令
    • which指令
    • whereis指令
    • alias指令
    • grep指令
    • 清空文本文件
    • zip和unzip指令
    • *通配符
    • tar指令
    • bc指令
    • uname指令
    • 热键的使用
    • 批量化注释/取消批量化注释
  • Linux权限
    • 更改文件权限
    • chown
    • chgrp
    • 更改权限的二进制方案
    • 目录的权限
    • 默认权限
    • 粘滞位

环境搭建

主要有三种:

  1. 直接安装在物理机上. 但是由于 Linux 桌面使用起来非常不友好, 不推荐.

  2. 使用虚拟机软件, 将 Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件(如 VMWare 之类的)存在一些 bug , 会
    导致环境上出现各种莫名其妙的问题, 比较折腾.

  3. 使用云服务器, 可以直接在 腾讯云, 阿里云或华为云 等服务器厂商处直接购买一个云服务器.

    我个人就是使用的云服务器,因为性价比很好,使用学生优惠买一个阿里云或者腾讯云一年也就五六十块钱。如果你也是新手,就买个最便宜的2核2G也是够用的。使用云服务器不仅环境搭建简单, 避免折腾, 同时还有一个最大的好处, 部署在云服务器上的项目可以直接被外网访问到, 这个时候就和一个公司发布一个正式的网站没有任何区别. 也就能让我们自己写的程序真的去给别人去使用。

腾讯云购买链接 阿里云购买链接

我个人使用CentOs7.6版本的云服务器,所以我比较推荐大家使用这个版本,具体买哪个版本和配置还是因人而异,新手学习建议买最便宜的,直接买一年,买下之后如何配置我给大家一一介绍。(注意:服务器购买后会让输入密码,一定要记住)

我就以阿里云为例,进入官网之后,点击我的阿里云

点击进入服务器
Linux入门-环境搭建、基本指令以及权限讲解_第1张图片
进入你的轻量云服务器
Linux入门-环境搭建、基本指令以及权限讲解_第2张图片

Linux入门-环境搭建、基本指令以及权限讲解_第3张图片
记住后面这个IP地址
买好服务器之后还需要一个xshell工具,链接: [link](链接: link),填上邮箱姓名,会给你发免费版下载链接
下载好xshell后,在终端下输入指令ssh ip地址

  1. 新手第一次登陆用户名就先用root
    Linux入门-环境搭建、基本指令以及权限讲解_第4张图片
  2. 输入买服务器时让记住的密码
    Linux入门-环境搭建、基本指令以及权限讲解_第5张图片
  3. 这样就算登录成功了

Linux入门-环境搭建、基本指令以及权限讲解_第6张图片

Linux指令

我们学习Linux的时候没有图形化界面,就需要学习以命令行的方式操作文件数据。

基本指令

  • mkdir: 在当前路径下,创建一个目录(文件夹);
  • pwd:显示当前我所处的路径
  • cd:进入指定目录
  • touch:创建指定的普通文件
  • tree : 以树状结构显示Linux执行的目录结构

ls命令

很多命令后面都会带一些命令选项,例如:ls -l

  • -a 列出目录下的所有文件,包括以 . 开头的隐含文件。

  • -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录

  • -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件

  • -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件

  • -l 列出文件的详细信息。

  • -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)

  • -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表

示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)

  • -r 对目录反向排序。

  • -t 以时间排序。

  • -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)

  • -R 列出所有子目录下的文件。(递归)

  • -1 一行只输出一个文件。

cd指令

  • cd . :当前路径
  • cd … : 返回上一级路径
  • cd 绝对路径 例如:/root/dir/test.c
  • cd 相对路径 (相对于你当前所处的路径) 例如:…/dir2/newdir/学习资料.txt
  • cd ~:直接进入当前用户的家目录
  • cd - :回到最近上一次所处的路径
  • tab键 cd时候可以写一个文件的开头,然后tab就能列出想要的文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5hboiE8Y-1675926760953)(C:\Users\JRG\AppData\Roaming\Typora\typora-user-images\image-20221228114253066.png)]

安装软件的指令

yum install -y (软件名称)

例如 :yum install -y tree

rmdir和rm指令

redir只能删除空目录

rm可以删除任何的目录和普通文件,-r删除目录,递归删除,-f强制删除,不进行二次确认

man指令

查询指令以及一些接口的手册,例如:man printf

如果不能查询手册,可以先进行安装 yum install -y man-pages

cp指令

这个指令主要是拷贝文件或目录,例如:cp file.txt dir

默认只能拷贝普通文件,如果要拷贝目录需要加-r,例如cp -r dir ..把dir目录拷贝到上级目录,cp -rf dir ..强制拷贝

mv指令

这个指令可以剪切文件到指定的位置 mv 文件名/目录 目标位置 可以直接剪切目录,他是默认递归的

这个指令还有一个功能是可以对目录或者文件重命名,例如:重命名file.txt

mv file.txt name.txt mv file.txt ../name.txt(剪切到上级目录并重命名为name.txt)

cat指令

语法:cat 【选项】 【文件】

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

常用选项:

  • -b对非空输出行编号
  • -n对输出的所有行编号
  • -s不输出多行空行

输出重定向

执行这个指令echo "aaaaaaaaa" 就会在屏幕打印一串a,echo后面跟什么就会打印什么,

如果这样执行echo "aaaaa" > mylog.txt 就会把字符串写进这个.txt文件,如果没有目标文件会自动创建,不过是覆盖式的写入,每次写进去会覆盖之前的内容,如果写成echo "aaaaa" >> mylog.txt 这样就会变成追加,不会覆盖。

这种把本来应该显示在显示器上的文本写进了文件里,这个就叫输出重定向,显示器也可以被看成文件

输入重定向

cat mylog.txtcat < mylog.txt都可以打印出文本文件的内容,但是两者有区别,一个是通过命令行的方式,一个是通过输入重定向

more命令

从0第行查看文本文件,回车键往下翻,q键退出,可以用正斜杠搜索

less命令

less跟more一样可以从第0行逐行翻阅,可以上下键翻,可以用正斜杠搜索

head指令

一般默认会打印文本文件的前十行,head -5 mylog.txt这样就是显示前五行

tail指令

一般默认会打印文本文件的最后十行,tail -5 mylog.txt这样是显示最后五行

统计文本文件的行数

wc -l 文件名或者cat 文件名| wc -l 文件名后面的分隔符 叫做管道

利用管道提取文本文件的中间行

假如文本文件有1000行,我们提取500行到520行的数据

cat mylog.txt | head -520 | tail -20 可以联合多条指令做数据的加工

时间指令

  • date输出时间
  • date +%Y-%m-%d/%H:%M:%S 输出时间格式化(2023-01-03/17:25:59)
  • date +%s显示秒,时间戳,从1970年开始
  • date +%Y-%m-%d/%H:%M:%S -d @0 显示时间戳的时间(1970-01-01/08:00:00)
  • cal查看日历,默认显示本月

sort指令

sort 文本文件.txt默认按每行的第一个字符按照ASCII进行升序排序

sort -r 文本文件.txt按照按每行的第一个字符按照ASCII进行降序排序

uniq指令

这个指令可以去重,相邻行一样被去重

find指令

可以搜索文件,例如:这样可以搜索到以根目录为起始的所有名为file.txt文件

[root@iZ2ze13z51wq9dt5rn81d5Z ~]# find ~ -name file.txt
/root/file.txt
/root/dir/file.txt

which指令

可以搜索指令的程序

[root@iZ2ze13z51wq9dt5rn81d5Z ~]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls
[root@iZ2ze13z51wq9dt5rn81d5Z ~]# which pwd
/usr/bin/pwd

whereis指令

搜索包含关键字的文档

alias指令

这个指令可以给别的指令起别名,例如:alias myls='ls -a -l -i -n',就是给后面的一长串指令起别名为myls

grep指令

搜索文本文件中包含被搜索字符的文本行,例如:grep '98' file.txt,grep 'm' -n file.txt

  • -i :忽略大小写的不同,所以大小写视为相同
  • -n:顺便输出行号
  • -v:反向选择,显示没有‘搜寻字符串’内容的那一行

清空文本文件

>文本文件名,例如:>file.txt,清空之后文件什么内容都没有了

zip和unzip指令

  • zip指令是将文件压缩,例如把dir压缩成dir.zip zip -r dir.zip dir 如果不带-r选项,就压缩不到dir目录下的文件

  • unzip 文件/目录这样可以直接解压,如果要解压到指定目录下,需要加-d选项,例如:unzip dir.zip -d 指定目录

*通配符

*可以替换任意长度的任意字符

tar指令

  • -c:建立一个压缩文件的参数指令
  • -x:解开一个压缩文件的参数指令
  • -t:查看tarfile里面的文件
  • -z:是否同时具有gzip的属性?亦是否需要用gzip压缩?
  • -j:是否同时具有bzip2的属性?亦是否需要用bzip2压缩?
  • -v:压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
  • -f:使用档名,在f之后要立即接档名!不要再加参数
  • -C:解压到指定目录

例如:

使用gzip打包并压缩

tar -czf temp.tgz temp

使用gzip解压压缩包

tar -xzf temp.tgz

bc指令

输入bc指令,进入计算器模式,输入表达式按回车会显示结果,CTRL+C退出。

uname指令

查看电脑和操作系统的相关信息

[root@iZ2ze13z51wq9dt5rn81d5Z ~]# uname
Linux
[root@iZ2ze13z51wq9dt5rn81d5Z ~]# uname -a
Linux iZ2ze13z51wq9dt5rn81d5Z 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

热键的使用

[Tab]按键—具有『命令补全』和『档案补齐』的功能
[Ctrl]-c按键—让当前的程序『停掉』

[Ctrl]-d按键—通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可
以用来取代exit

[Ctrl]+r 搜索之前的指令

history 可以查看之前所有输过的命令

批量化注释/取消批量化注释

  1. CTRL+v,出现v-block
  2. 按j选中要注释的行
  3. 切换大写键盘
  4. 输入i
  5. 输入双斜杠
  6. esc退出
  1. CTRL+v,出现v-block
  2. 按l选中双斜杠,然后用j选中注释行
  3. 按d

Linux权限

Linux系统服务器下有两种用户:

root用户。
普通用户。

  • root用户:就是一个系统的管理员,对系统拥有绝对的控制权,Linux下一切皆文件,root用户可以操作所有文件,不受任何人约束
  • 普通用户:会被权限所约束,一个Linux系统可以有多个普通用户。

在root用户和普通用户之间切换的方法:
root切换普通用户:su - 用户名
普通用户切换root :su -
在普通用户的目录下用root角色:su

什么是权限?在Linux下一个文件或目录能被三种角色访问,自己、所属组、其他人,而这三种角色能对文件做三种操作,读、写和运行三种操作,也就是读权限、写权限、运行权限或者进入目录

Linux入门-环境搭建、基本指令以及权限讲解_第7张图片
被框住的就是三种角色代表的权限。

  • 最开头凡是以d开头的都是目录,**-**开头的都是普通文件
  • 红色代表的是自己的权限,也就是文件的拥有者对文件的读写和访问权限。
  • 黄色的是文件的所属组对文件的读写和访问权限。
  • 紫色就是其他用户对文件的读写和访问权限。
  • r代表读权限、w代表写权限、x代表文件的运行权限。

更改文件权限

一般而言必须是文件的拥有者或者root才有更改文件的权限

添加拥有者权限:chmod u+rwx test.txt

添加所属组权限:chmod g+rwx test.txt

添加other权限:chmod o+rwx test.txt

去除拥有者权限:chmod u-rwx test.txt

去除所属组权限:chmod g-rwx test.txt

去除other权限:chmod o-rwx test.txt

给所有人加相关的权限 chmod a+rwx test.txt

给所有人去除相关的权限 chmod a-rwx test.txt

chmod u+x,g+r,o+w test.txt分别给不同的人加权限

chown

功能是更改文件的拥有者

chown [参数]用户名 文件名

-R 递归修改

chgrp

修改文件或目录的所属组

chgrp [参数]用户名 文件名

-R 递归修改

更改权限的二进制方案

有权限为1,没有权限为0

例如:-rw-rw---- 可以写成110 110 000==660
Linux入门-环境搭建、基本指令以及权限讲解_第8张图片
chmod 444 test.txt,就会变成-r–r–r–

目录的权限

  • 进入一个目录需要的权限是x
  • 没有r权限,我们无法查看目录下的文件名和文件属性
  • 没有w权限,我们无法直接在该目录下创建新文件

默认权限

  • 我们创建的普通文件(不包括可执行),普通文件起始权限是664,目录是775。

  • 系统为了更好的控制文件权限,系统会有默认的权限掩码的概念 umask Linux默认的掩码是002。

  • umask可以修改默认掩码。umask 八进制数

  • 我们看到的默认权限是经过起始权限被掩码“过滤”之后的默认权限,先将掩码按位取反,然后和起始权限按位与&,最终得到我们看到的默认权限。(文件的起始权限是666,目录的权限是777,Linux下默认子网掩码是002)
    Linux入门-环境搭建、基本指令以及权限讲解_第9张图片

粘滞位

一、粘滞位介绍
粘滞位(Stickybit),或粘着位。最常见的用法在目录上设置粘滞位,如此以来,只有目录内文件的所有者或者root才可以删除或移动该文件。如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。在linux系统的实际应用中,粘滞位一般用于/tmp目录,以防止普通用户删除或移动其他用户的文件。一个目录具有粘滞位,则在other的X位会表现为 t,或者T。T和t的区别在于,原来x位上有x权限,有了粘滞位则表现为t,否则,则表现为T。

在Linux系统中比较典型的例子就是"/tmp"、 “/var/tmp"目录。这两个目录作为Linux系统的临时文件夹,权限为"rwxrwxrwx”,即允许任意用户、任意程序在该目录中进行创建、删除、移动文件或目录等操作。试想一下:若任意一个普通用户都能够删除系统服务运行中使用的临时文件,将造成什么结果?

粘滞位权限便是针对此种情况设置,当目录被设置了粘滞位的t权限以后,即便用户对该目录有写入权限,也不能删除该目录中其他用户的文件数据,而是只有该文件的所有者和root用户才有权将其删除。设置了粘滞位的t权限之后,正好可以保持这种动态的平衡:允许各用户在目录中任意写入、删除数据,但是禁止随意删除其他用户的数据。需要注意: 粘滞位权限只能针对⽬录设置,对于⽂件⽆效。

正常情况下,在Linux系统中,如果对一个目录具有写权限,那么就可以在这个目录下创建删除文件。**现在有这么个需求:**如果现在需要创建这样一个目录,可以在这个目录里创建文件,但是其他用户不能删除这个文件。这里就要用到Linux这个特殊的权限:粘滞位,也就是t特殊权限!需要注意:粘滞位t权限给其它用户带来的安全限制 仅仅在于不能删除和移动/更名文件 (即粘滞位保护的是文件不被其他用户rm或mv,即使文件对其他用户有写权限,777都不行!),因为它针对的是目录。

粘滞位t权限都是针对其他用户(other)设置,使用chmod命令设置目录权限时,“o+t”、"o-t"权限模式可分别用于添加、移除粘滞位权限。

设置粘滞位权限方法
# chomd o+t
# chomd 1777
删除粘滞位权限方法
# chomd o-t

根据以上示例,可以得出结论
当一个目录被设置为"粘滞位"的t权限后,则该目录下的文件只能由

  1. 超级管理员(root)删除或移动/更名(rm或mv)
  2. 该目录或文件的所有者删除或移动/更名(rm或mv)

需要注意

  1. 虽然目录有了粘滞位t权限,other用户不能对该目录的文件进行删除或者移动操作,但是如若other对该文件由w权限,还是可以进行修改文件内容的。
  2. 粘滞位只对目录有效,对文件无效。

学习计算机,Linux系统是必不可少的,这些可以帮您更快的入门,如果对您有帮助,可以关注一下,后续我也会持续更新Linux内容,希望我们能一起成长。

你可能感兴趣的:(Linux系统原理和系统编程,linux,服务器,centos)