使用XShell远程登录Linux
XShell下的复制粘贴
Ctrl + c/v行不通,要改成:
复制:Ctrl + Fn + Ins(F12)
粘贴:Shift + Fn + Ins(F12)
Linux下基本指令
01. ls指令(list)
- 对于目录,该命令列出该目录下的所有子目录与文件。
- 对于文件,列出文件名以及其他信息。
- ls -a 列出目录下的所有文件,包括以 . 开头的隐藏文件
Linux任何一个目录下都有两个隐藏文件:
..
:表示当前路径的上级路径
.
:表示当前路径
- ls -d 将目录像文件一样显示,而不是显示其下的文件
比如显示指定目录的名称:
- ls -l 列出文件的详细信息(文件的全部属性),等价于ll
上图框出来的表示文件的类型:
d:是一个目录
-:是一个普通文件
* 为通配符,ls *可以匹配所有文件
02. pwd命令(Print Working Directory)
显示用户当前所在的目录
/ 称为路径分隔符
最前面的一个 / 是Linux的根目录
03. cd命令(Change Directory)
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
从 / 开始定位到指定位置,具有唯一性的路径,称为绝对路径。
以当前所处的路径为起始参照位置,称为相对路径。
- cd ..:返回上级目录
- cd /home/yf/2024/lesson8:绝对路径
- cd ./lesson8:相对路径
- cd ~:进入用户家目录
04. touch指令
新建普通文件
05. mkdir指令
在当前目录下创建目录
- mkdir -p:递归创建多个目录
06. rmdir指令 && rm指令
- rmdir:删除空目录
- rm:删除文件或目录
- rm -f:即使文件属性为只读(即写保护),也直接删除
- rm -i:删除前逐一询问确认
- rm -r:递归删除目录及其下所有文件
07. man指令
查找手册获取帮助
- man num:只在第num章节找
man手册分为8章:
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
08. cp指令
复制文件或目录
- cp -f:强行复制文件或目录, 不论目的文件或目录是否已经存在
- cp -i:覆盖文件之前先询问用户
- cp -r:递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
小知识点echo:
>:输出重定向(将本来应该显示到显示器的内容打印到文件中)
向目标文件写入的时候:先清空文件,再写入新内容
>>:追加重定向
09. mv指令
可以用来移动文件或者将文件改名(剪切并重命名)
10. cat
查看目标文件的内容(不适合查看大文本)
11. more指令
more命令,功能类似cat
12. less指令
- less 工具也是对文件或其它输出进行分页显示的工具
- less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看
- 但若使用了 less 时,就可以使用 [pageup](上箭头)[pagedown](下箭头) 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容。
- less -N:显示每行的行号
- q:quit
13. head指令
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
- head -n<行数>:显示行数
14. tail指令
用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
- tail -n<行数>:显示行数
练习:一个文件共有100行内容,请取出第50行内容
- 方法1:
先将前50行放入临时文件tmp中
用tail得到最后一行的内容
- 方法2:
管道,head -50 log.txt的输出将作为tail -1的输入,不需要临时文件
15. 时间相关的指令:date显示
- date 指定格式显示时间
- 时间转化为时间戳
- 时间戳转化为时间
16. find指令
用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
- find -name:按照文件名查找文件
~表示当前用户的主目录,也就是/home/yf
还有两种查找指令:
-
which可以在指令路径下(/usr/bin)搜索指令文件
-
whereis:在系统特定的路径下查找,既可以找到可执行程序,又可以找到手册,安装包,压缩包等
17. grep指令
语法: grep [选项] 搜寻字符串 文件
在文件中搜索字符串,将找到的行打印出来
- grep -i:忽略大小写的不同
- grep -n:顺便输出行号
- greap -v:反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
18. zip/unzip指令
语法: zip 压缩文件.zip 目录或文件
将目录或文件压缩成zip格式
- zip -r:递归处理,将指定目录下的所有文件和子目录一并处理
解压到tmp目录:
- unzip -d:指定解压缩后的文件将放置的目标目录
19. tar指令:打包/解包,不打开它,直接看内容
打包并压缩:
预览:
解压和解包:
- tar -C:解压到指定目录
.tar 打包后缀
.gz 压缩后缀
完整的后缀是 XXX.tar.gz 简称 XXX.tgz
20. uname指令
uname用来获取电脑和操作系统的相关信息
- uname -a/-all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
补充:
top指令:Linux下查看CPU占用。
shell命令以及运行原理
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?
从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
-
将使用者的命令翻译给核心(kernel)处理。
-
同时,将核心的处理结果翻译给使用者。
对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作。
shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。
Linux权限的概念
Linux下有两种用户:超级用户(root)、普通用户。
- 超级用户:可以在linux系统下做任何事情,不受限制
- 普通用户:在linux下做有限的事情
- 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
这两个用户之间怎么切换呢?
- su / su - user
- exit / Ctrl+d(退回)
- 如果要暂时对一条命令提权:sudo command
Linux权限管理
1. 文件访问者的分类(人)
- 文件和文件目录的所有者:u---User
- 文件和文件目录的所有者所在的组的用户:g---Group
- 其他用户:o---Others
2. 文件类型和访问权限(事物属性)
3. 文件权限值的表示方法
a)字符表示方法
b)8进制数值表示方法
4. 文件访问权限的相关设置方法
a)chomd
格式:chmod [参数] 权限 文件名
chmod命令权限的格式:
+ | 向权限范围增加权限代号所表示的权限 |
- | 向权限范围取消权限代号所表示的权限 |
= | 向权限范围赋予权限代号所表示的权限 |
用户符号:
u拥有者,g拥有者所在组,o其他用户,a所有用户
②三位8进制数字
b)umask:查看或修改文件掩码
每个文件都有起始权限:
普通文件664
目录文件775
但其实:
新建文件默认权限=0666
新建目录默认权限=0777
默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
超级用户默认掩码值为0022,普通用户默认为0002
补充:
粘滞位:在设置的沾滞位的目录下,其它用户可以创建文件,但是只能删除自己的文件,不可以删除别人的文件。
如果要在 /tmp 目录上设置粘滞位:chmod +t /tmp