这次我给大家介绍Linux系统,究竟怎么更快上手Linux,怎么学习Linux?接下来我给大家分享一下干货。
主要有三种:
直接安装在物理机上. 但是由于 Linux 桌面使用起来非常不友好, 不推荐.
使用虚拟机软件, 将 Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件(如 VMWare 之类的)存在一些 bug , 会
导致环境上出现各种莫名其妙的问题, 比较折腾.
使用云服务器, 可以直接在 腾讯云, 阿里云或华为云 等服务器厂商处直接购买一个云服务器.
我个人就是使用的云服务器,因为性价比很好,使用学生优惠买一个阿里云或者腾讯云一年也就五六十块钱。如果你也是新手,就买个最便宜的2核2G也是够用的。使用云服务器不仅环境搭建简单, 避免折腾, 同时还有一个最大的好处, 部署在云服务器上的项目可以直接被外网访问到, 这个时候就和一个公司发布一个正式的网站没有任何区别. 也就能让我们自己写的程序真的去给别人去使用。
腾讯云购买链接 阿里云购买链接
我个人使用CentOs7.6版本的云服务器,所以我比较推荐大家使用这个版本,具体买哪个版本和配置还是因人而异,新手学习建议买最便宜的,直接买一年,买下之后如何配置我给大家一一介绍。(注意:服务器购买后会让输入密码,一定要记住)
我就以阿里云为例,进入官网之后,点击我的阿里云
点击进入服务器
进入你的轻量云服务器
记住公后面这个IP地址
买好服务器之后还需要一个xshell工具,链接: [link](链接: link),填上邮箱姓名,会给你发免费版下载链接
下载好xshell后,在终端下输入指令ssh ip地址
我们学习Linux的时候没有图形化界面,就需要学习以命令行的方式操作文件数据。
很多命令后面都会带一些命令选项,例如: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 一行只输出一个文件。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5hboiE8Y-1675926760953)(C:\Users\JRG\AppData\Roaming\Typora\typora-user-images\image-20221228114253066.png)]
yum install -y (软件名称)
例如 :yum install -y tree
redir
只能删除空目录
rm
可以删除任何的目录和普通文件,-r
删除目录,递归删除,-f
强制删除,不进行二次确认
查询指令以及一些接口的手册,例如:man printf
如果不能查询手册,可以先进行安装 yum install -y man-pages
这个指令主要是拷贝文件或目录,例如:cp file.txt dir
默认只能拷贝普通文件,如果要拷贝目录需要加-r
,例如cp -r dir ..
把dir目录拷贝到上级目录,cp -rf dir ..
强制拷贝
这个指令可以剪切文件到指定的位置 mv 文件名/目录 目标位置
可以直接剪切目录,他是默认递归的
这个指令还有一个功能是可以对目录或者文件重命名,例如:重命名file.txt
mv file.txt name.txt
mv file.txt ../name.txt
(剪切到上级目录并重命名为name.txt)
语法:cat 【选项】 【文件】
功能:查看目标文件的内容
常用选项:
- -b对非空输出行编号
- -n对输出的所有行编号
- -s不输出多行空行
执行这个指令echo "aaaaaaaaa"
就会在屏幕打印一串a,echo后面跟什么就会打印什么,
如果这样执行echo "aaaaa" > mylog.txt
就会把字符串写进这个.txt文件,如果没有目标文件会自动创建,不过是覆盖式的写入,每次写进去会覆盖之前的内容,如果写成echo "aaaaa" >> mylog.txt
这样就会变成追加,不会覆盖。
这种把本来应该显示在显示器上的文本写进了文件里,这个就叫输出重定向,显示器也可以被看成文件
cat mylog.txt
和cat < mylog.txt
都可以打印出文本文件的内容,但是两者有区别,一个是通过命令行的方式,一个是通过输入重定向
从0第行查看文本文件,回车键往下翻,q键退出,可以用正斜杠搜索
less跟more一样可以从第0行逐行翻阅,可以上下键翻,可以用正斜杠搜索
一般默认会打印文本文件的前十行,head -5 mylog.txt
这样就是显示前五行
一般默认会打印文本文件的最后十行,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 文本文件.txt
默认按每行的第一个字符按照ASCII进行升序排序
sort -r 文本文件.txt
按照按每行的第一个字符按照ASCII进行降序排序
这个指令可以去重,相邻行一样被去重
可以搜索文件,例如:这样可以搜索到以根目录为起始的所有名为file.txt文件
[root@iZ2ze13z51wq9dt5rn81d5Z ~]# find ~ -name file.txt
/root/file.txt
/root/dir/file.txt
可以搜索指令的程序
[root@iZ2ze13z51wq9dt5rn81d5Z ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@iZ2ze13z51wq9dt5rn81d5Z ~]# which pwd
/usr/bin/pwd
搜索包含关键字的文档
这个指令可以给别的指令起别名,例如:alias myls='ls -a -l -i -n'
,就是给后面的一长串指令起别名为myls
搜索文本文件中包含被搜索字符的文本行,例如:grep '98' file.txt
,grep 'm' -n file.txt
>文本文件名
,例如:>file.txt
,清空之后文件什么内容都没有了
zip指令是将文件压缩,例如把dir压缩成dir.zip zip -r dir.zip dir
如果不带-r选项,就压缩不到dir目录下的文件
unzip 文件/目录
这样可以直接解压,如果要解压到指定目录下,需要加-d
选项,例如:unzip dir.zip -d 指定目录
*可以替换任意长度的任意字符
例如:
使用gzip打包并压缩
tar -czf temp.tgz temp
使用gzip解压压缩包
tar -xzf temp.tgz
输入bc指令,进入计算器模式,输入表达式按回车会显示结果,CTRL+C退出。
查看电脑和操作系统的相关信息
[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 可以查看之前所有输过的命令
- CTRL+v,出现v-block
- 按j选中要注释的行
- 切换大写键盘
- 输入i
- 输入双斜杠
- esc退出
- CTRL+v,出现v-block
- 按l选中双斜杠,然后用j选中注释行
- 按d
Linux系统服务器下有两种用户:
root用户。
普通用户。
在root用户和普通用户之间切换的方法:
root切换普通用户:su - 用户名
普通用户切换root :su -
在普通用户的目录下用root角色:su
什么是权限?在Linux下一个文件或目录能被三种角色访问,自己、所属组、其他人,而这三种角色能对文件做三种操作,读、写和运行三种操作,也就是读权限、写权限、运行权限或者进入目录
一般而言必须是文件的拥有者或者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 [参数]用户名 文件名
-R
递归修改
修改文件或目录的所属组
chgrp [参数]用户名 文件名
-R
递归修改
有权限为1,没有权限为0
例如:-rw-rw---- 可以写成110 110 000==660
chmod 444 test.txt
,就会变成-r–r–r–
我们创建的普通文件(不包括可执行),普通文件起始权限是664,目录是775。
系统为了更好的控制文件权限,系统会有默认的权限掩码的概念 umask Linux默认的掩码是002。
umask可以修改默认掩码。umask 八进制数
我们看到的默认权限是经过起始权限被掩码“过滤”之后的默认权限,先将掩码按位取反,然后和起始权限按位与&
,最终得到我们看到的默认权限。(文件的起始权限是666,目录的权限是777,Linux下默认子网掩码是002)
一、粘滞位介绍
粘滞位(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权限后,则该目录下的文件只能由
需要注意
学习计算机,Linux系统是必不可少的,这些可以帮您更快的入门,如果对您有帮助,可以关注一下,后续我也会持续更新Linux内容,希望我们能一起成长。