Linux常见的基本命令
基本的目录切换命令:
cd usr | 切换到usr目录 |
---|---|
cd / | 切换到根目录 |
cd … | 切换到上级目录 |
cd …/src | 相对路径切换目录 |
cd /usr/src | 绝对路径切换目录 |
cd ~ | 回到当前的用户目录 |
pwd | 显示当前用户所在目录 |
操作目录的基本命令:
mkdir chang(目录名称) | 创建一个chang目录 |
---|---|
mkdir -p chang1/chang2 | 创建一个多级目录 |
rmdir XXX | 删除指定的目录 |
rmdir -p xxx1/xxx2 | 删除多级目录 |
注意:rmdir 仅能删除空的目录,如果下面存在文件,需要先删除文件,递归删除多个目录 -p 参数即可
文件的复制、删除、移动操作:
1.cp(复制文件)
使用:cp 原来文件的位置 新的位置
2.rm (移除文件或是目录)
使用:rm -rf XXX(文件名称) rm -rf / 删库跑路
-f
: 忽略不存在的文件,不会出现警告,强制删除-r
: 递归删除目录-i
: 删除前会进行询问是否确认删除
3.mv (移动文件或是目录)
使用:mv zhang zhang2 更新文件名 mv zhang chang/ 移动文件
-f
: 强制移动-u
: 只替换已经更新过的文件
Linux中文件的基本属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安 全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。 这种不同的规定就使得不同的文件具备不同的属性。
在根目录下使用命令:
ls -ll
,查看文件的基本属性
以boot文件为例:
第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等:
- 当为
[ d ]
则是目录 当为[ - ]则是文件; - 若是
[ l ]
则表示为链接文档 ( link file ); - 若是
[ b ]
则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 ); - 若是
[ c ]
则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。
接下来的字符中,以三个为一组,且均为rwx
的三个参数的组合:
其中,[ r ]
代表可读(read)、[ w ]
代表可写(write)、[ x ]
代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]
而已。
每个文件的属性由左边第一部分的 10 个字符来确定(如下图):
从左至右用 0-9 这些数字来表示。
-
第 0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。
-
第4-6位确定属组(所有者的同组用户)拥有该文件的权限,
-
第7-9位确定其他用户拥有该文件的权限。
其中,第 1、4、7 位表示读权限
,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;
第 2、5、8 位表示写权限
,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;第 3、6、9 位表示可执行权限
,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。
Linux文件属主和属组
什么是属主?什么是属组?
答:上面我们知道了Linux中可以为文件分配不同的权限,对一个文件来说具有该文件所有权限的用户
就是属主!同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。一个文件中除了文件所有者外,就是和文件所有者同组的用户
,这样的用户就称为属组。
注意:root用户具有所有文件的权限。
更改文件属性 (必须掌握)
1、chgrp:更改文件属组命令:
chgrp [-R] 属组名 文件名
-R
:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2、chown:更改文件属主,也可以同时更改文件属组
chown [–R] 属主名 文件名 # 更改文件的属主
chown [-R] 属主名:属组名 文件名 # 同时更改文件的属主和属组
3、chmod:更改文件9个属性
Linux文件属性有两种设置方法,一种是数字(个人感觉更简单),一种是符号。
Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)
、用户组(Group)
、其它用户(Other Users)
:
注意:只有文件所有者和超级用户可以修改文件或目录的权限。
文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r
: 4w
: 2x
: 1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx— 分数则是:
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 = 7
- others= — = 0+0+0 = 0
chmod命令的语法:
chmod [-R] xyz 文件或目录
- xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
- -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
权限对照表:
例如,765
将这样解释:
- 所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。
- 用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如 rw- ,也就是 4+2+0 ,应该是 6。
- 其它用户的权限数字表达:其它用户权限位的数字相加的总和。如 r-x ,也就是 4+0+1 ,应该是 5。
Linux 文件内容查看
Linux系统中使用以下命令来查看文件的内容:
cat
由第一行开始显示文件内容tac
从最后一行开始显示,可以看出 tac 是 cat 的倒着写!nl
显示文件内容的时候,同时会输出行号!more
一页一页的显示文件内容less
与 more 类似,但是比 more 更好的是,他可以往前翻页!
空白键 | 向下翻动一页 |
---|---|
[pagedown] | 向下翻动一页 |
[pageup] | 向上翻动一页 |
/字串 | 向下搜寻『字串』的功能 |
?字串 | 向上搜寻『字串』的功能 |
n | 重复前一个搜寻 (与 / 或 ? 有关!) |
N | 反向的重复前一个搜寻 (与 / 或 ? 有关!) |
q | 离开 less 这个程序 |
head
只看头几行tail
只看尾巴几行
Linux vi/vim 文本编辑
**概念:**所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器。vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
什么是 vim?
答:Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
vim的键盘图:
vi/vim 的使用
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:
1.命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i
,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
i
切换到输入模式,以输入字符。x
删除当前光标所在处的字符。:
切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
2.输入模式
在命令模式下按下i
就进入了输入模式。
在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
3.底线命令模式
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
q
退出程序w
保存文件
按ESC键可随时退出底线命令模式。
简单的说,我们可以将这三个模式想成底下的图标来表示:
三种模式的转换图:
实际使用
- 实际操作一个名为zhang.txt的文件:
vim zhang.txt
根据上面的三种模式的相互转换,就可以进行编辑。
-
按下 i 进入输入模式(也称为编辑模式),开始编辑文字
-
按下 ESC 按钮回到一般模式
-
在一般模式中按下
:wq
储存后离开 vi
以上四步就完成了一次文件简单的编辑!
更多详细的vim命令参照:https://www.runoob.com/linux/linux-vim.html
Linux yum 命令
yum命令是用于各种软件安装的命令。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
语法:
yum [options] [command] [package ...]
- **options:**可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 “yes”),-q(不显示安装的过程)等等。
- **command:**要进行的操作。
- **package:**安装的包名。
yum常用命令:
-
列出所有可更新的软件清单命令:
yum check-update
-
更新所有软件命令:
yum update
-
仅安装指定的软件命令(最常用):
yum install <package_name>
-
仅更新指定的软件命令:
yum update <package_name>
-
列出所有可安裝的软件清单命令:
yum list
-
删除软件包命令:
yum remove <package_name>
-
查找软件包命令:
yum search <keyword>
-
清除缓存命令:
yum clean packages
: 清除缓存目录下的软件包yum clean headers
: 清除缓存目录下的 headersyum clean oldheaders
: 清除缓存目录下旧的 headersyum clean, yum clean all (= yum clean packages; yum clean oldheaders)
:清除缓存目录下的软件包及旧的 headers
Linux中的进程管理
1.基本概念:
-
在Linux中,每一个程序都是有自己的一个进程,每一个进程都有一个id号!
-
每一个进程呢,都会有一个父进程!
-
进程可以有两种存在方式:前台!后台运行!
-
一般的话服务都是后台运行的,基本的程序都是前台运行的!
2.命令:
ps
查看当前系统中正在执行的各种进程的信息!
ps -xx :
-a
: 显示当前终端运行的所有的进程信息(当前的进程一个)
-u
: 以用户的信息显示进程
-x
: 显示后台运行进程的参数!
ps -xx|grep 进程名字
# ps -aux 查看所有的进程
ps -aux|grep redis(要查找的进程名称)
# | 在Linux这个叫做管道符 A|B
# grep 查找文件中符合条件的字符串!
ps -ef:可以查看到父进程的信息
ps -ef|grep redis # 看父进程我们一般可以通过目录树结构来查看!
# 进程树!
pstree -pu
-p 显示父id
-u 显示用户组
Linux防火墙
-
开启防火墙端口 :
firewall-cmd --zone=public --add-port=9000/tcp --permanent
--zone 作用域
--add-port=80/tcp 添加端口,格式为:端口/通讯协议
--permanent 永久生效,没有此参数重启后失效
-
重启防火墙(这样设置的防火墙才会生效) :
systemctl restart firewalld.service
-
查看所有开启的端口,如果是阿里云,需要配置安全组规则 :
firewall-cmd --list-ports
-
查看firewall服务状态
systemctl status firewalld
-
开启、重启、关闭、firewalld.service服务
-
开启
service firewalld start
-
重启
service firewalld restart
-
关闭
service firewalld stop
-
-
查看防火墙规则
-
firewall-cmd --list-all
查看全部信息 -
firewall-cmd --list-ports
只看端口信息