linux的命令

一、linux系统的目录结构

1、用户可以更改的目录

etc:所有关于系统配置、管理文件存放的地方 进行修改的时候要注意
home:所有用户(除了root)文件存放的目录。在linux系统中如果创建一个用户,就会默认的在home下面创建一个和用户名相同的目录,该目录对于对应的用户有所有的权限
usr:用户软件安装、配置文件存放的目录
opt:系统软件安装、配置文件存放的目录
mnt:类似window下的USB接口目录,磁盘挂载目录

2、不建议更改的目录

boot:引导目录,linux系统启动的时候需要运行的文件
proc:线程目录,正在运行的线程文件都在改目录下
run:当前系统运行文件的目录
sys:系统目录,系统文件存放的目录,都是linux系统运行对应的文件
tmp:临时文件目录
var:存放不断变化的文件目录,比如:日志
软连接中的bin文件,不要动,所有看见bin目录下的文件都不要动

二、linux的常用命令

1、文件和目录的命令

(1)pwd:查看当前路径

(2)cd 进入各种目录

cd / :进入到根目录
cd /目录/目录… :进入根目录下的指定目录(无论当前是在哪一个目录下面)
cd 目录/目录… :进入当前目录下的对应目录
cd … :返回上一级目录
cd ~用户名 :进入到用户对应的目录
cd - :返回上一个使用的目录
注意:不能在cd后面写文件名

(3)ls:查看的命令

ls:查看当前目录下的所有文件和目录
ls -F:查看当前目录下所有的目录和文件并展示所属
ls -L:查看当前目录下的所有文件的详细信息
ls -lh:更好的显示模式
ls -a:显示所有文件,包括隐藏文件以及系统文件
ls -s:查看当前目录下对应目录文件个数或者文件的使用信息

(4)cat 文件名:查看文件的内容

(5)mkdir:创建目录的命令

mkdir 目录名称 目录名称:创建一个或者多个目录
mkdir -p 目录/目录/… :创建多级目录

(6)touch 文件名称:创建文件的命令

创建一个文件,不能在创建文件的目录中使用同名的目录名称

(7)rm:删除命令

rm 文件名:删除文件(有提示)
rm -f 文件名:删除文件没有提示
rm -r 目录:删除目录,目录里面的每一个文件都需要进行确认
rm -rf 目录:删除目录,没有提示

(8)cp:复制命令

cp 文件名 /目录/:复制文件到目录中
cp 文件名 /目录/文件名:复制文件到目录中,并重命名
cp -a /目录/:复制目录到目录中

(9)mv:移动文件或者目录

mv 文件名 /目录/:移动文件到目录中
mv 目录 /目录/:移动目录到目录中

2、find命令

基本的格式:find 查找文件的目录路径 查找的条件 处理的动作

(1)按照文件名去查找

find /目录 -name 文件名:根据文件名精确查找
可用做模糊查询,在使用的时候,在文件名前后添加双引号
find /目录 -name “*file”:查询文件名后面是file的文件

(2)根据文件的特征进行查询

find /目录 -amin -1:查询目录下,一分钟内被使用的文件
find /目录/ -empty:查询目录下有多少个空的目录和文件夹

(3)可以根据混合的方式查询

可以使用-and或者-or来连接多个文件

3、grep指令

基本的语法:grep [options] pattem findname

(1)options常用的参数

-A:匹配所有对应的行,多匹配行后N行
-B:匹配所有对应的行,多匹配行前N行
-c:值输出匹配行的计数
-e:可以设置多个表达式
-l:不区分大小写
-h:查询文件的时候不显示文件名
-n:显示匹配的行和行号

(2)pattem 参数

匹配次数:
{m,n}:匹配其前面出现的字符至少m次,最多n次
?:匹配前面出现的内容0次或1次,等价于{0,1}
:匹配前面出现的内容任意次,等价于{0,},所以“.”表述任意字符任意次
位置锚定:
^:锚定首行
KaTeX parse error: Expected group after '^' at position 10: :锚定行尾。注:”^̲”用于匹配空白行
\b或<:锚定单词的词首。如"\blike"不会匹配alike,但是会匹配liker
\b或>:锚定单词的词尾。如"\blike\b"不会匹配alike和liker,只会匹配like
\B :与\b作用相反。

(3)格式

grep -A 1 file 文件名:在文件中查找某一行中的内容包括file和该行的后面一行
grep -c file 文件名:查找文件中包含file的字母有多少行
grep -e c -e f 文件名:查看包含c和f的所有行
grep -n ^file 文件名:查询首行是file的行

4、文件压缩和解压缩命令

(1)文件压缩的命令

tar -acvf 压缩后文件的名称 压缩的目录或者文件

(2)查看压缩文件的内容

tar -tf 压缩文件

(3)解压缩文件

tar -zxvf 压缩文件(解压的路径就是当前所在的目录中)
tar -zxf 压缩文件:解压中不需要查看压缩文件的内容

5、vi文本编译器

vi 目录/…/文件名:进入文件的命令

(1)正常模式

进入到vi编译器中就是正常模式,正常模式下只能浏览文本,不能进行编辑
正常模式下可以通过输入 /数据 对文件进行查找

(2)编辑模式

正常模式下,输入i或者a进入编辑模式,此模式可以进行修改文本
通过esc键可以返回正常模式

(3)命令模式

正常模式下,输入:进入命令模式,通过输入命令进行对应的操作
w:保存文件
w 文件名:另存为
w!:强制退出
q:退出(若修改过后的文件没有保存就不能退出)
q!:强制退出
wq:保存退出
x:强制保存退出

三、linux系统的进程、网络命令

1、进程相关的命令

ps:查看正在运行的进程,除了意外的进程
ps -e:查看所有的进程,包括系统进程
ps -ef:查看进程的详细信息
详细信息:
UID:用户的标识,哪个用户启动的该进程
PID:进程的ID
PPID:当前进程的父ID,如果PPID是0,标识没有父进程
C:cpu的使用量
STIME:当前进程的启动时间
TTY:设置的终端 ? 表示本机 pts/0 表示远程连接
TIME:当前进程的运行时间(挂起的时间不算)
CMD:当前进行的名称或者目录
ps aux:进程查看的加强版
%CPU:当前进程CPU的占比
%MEM:当前进程内存的占比
VSZ:虚拟内存使用量
RSS:实际内存的使用量
STAT:当前线程的状态
S 休眠
D 无法中断的休眠(一般在I/O进程出现)
R 正在队列中
T 表示停止或者被监听的进程
s 表示领导者 一般都是主线程
w 表示进入内存交互的线程
x 表示死掉的线程
z 表示僵尸线程 父线程停止子线程存在
< 表示优先级比较高的进程
N 表示优先级比较低的进程
+ 表示位于后台的进程
l 表示部分资源被锁进内存
top 查看进程的排名
进入排名后 可以根据不同的按键展示不同的排名
C CPU 使用排名
M 内存使用排名
T 进程运行时间排名
q 退出排名

2、网络相关的命令

netstat:查看网络的状态
t 查看tcp协议
l 查看linsten 监听的网络端口
n 可以将地址转化为ip地址
a 展示全部的网络信息
p 显示网络进程的pid
一般来说我们查看网络使用netstat -ant就可以了,如果要查看id就添加p

3、结束进程的命令

kill pid:关闭进程的命令
kill -9 pid:在系统中直接关掉运行(最好使用)

四、linux用户和用户组的管理

1、linux用户和用户组的概念

linux系统本身是一个多用户和多任务的操作系统,在linux系统下任何使用资源的用户,必须要想root(超级管理员)申请一个账户,通过对应的用户名和密码来进行登录系统,每一个用户都有着不同的权限,根据用户的不同权限可以对系统进行相应的操作。默认创建一个用户,就会在根目录home文件夹中创建一个和用户名相同的目录,对应的目录名对应的用户对目录有所有的权限,其他的权限需要root赋予
所有的用户都默认有一个用户组,也可以给用户添加附加组,会根据用户组也可以设置对应的权限
在linux系统下,用户和用户组信息是使用文件形式记录在linux系统中
在/etc/password文件中,保存了所有用户的信息
root❌0:0:root:/root:/bin/bash
用户名 密码 用户id 用户主组id 用户的目录 用户对应的shell脚本位置
用户组存放的信息,在/etc/group文件中,存放了用户组的信息
里面包含 用户组 名称 id 附加组 用户id信息

2、用户和用户组的操作命令

如果要操作用户,必须使用管理员来进行操作

(1)用户的操作指令

useradd 用户名:创建一个新用户
passwd 用户名:修改用户密码
su 用户名:切换其他用户
su:切换到管理员
passwd -l 用户名:锁定用户,不让登陆
passwd -u 用户名:解锁账户
userdel 用户名:删除用户
userdel -r 用户名:删除用户同时删除用户目录
passwd -S 用户名:查看用户信息
groups 用户名:查看用户组信息

(2)用户组的操作指令

groupadd 用户组名称:添加一个用户组
useradd -g 用户组名称 用户名称:创建用户的时候指定该用户的用户组
gpasswd -a 用户名 附加组名称:修改已有的用户,为当前用户添加附加组
注:主组的信息是在passwd中存放的,不能直接删除和修改,附加组的信息可以
gpasswd -d 用户名称 用户组名称:删除用户名称(用户组名称不能是主组)
groupdel 用户组:删除用户组(确保当前用户组没有被用户绑定)

五、linux系统的权限

1、linux系统的文件权限概述

linux中所有的文件分为三种:目录、文件、软连接。每个文件有三种权限r、w、x
linux中,所有的文件都是设置有权限的,通过ls-l可查看文件的权限
查看的权限一共十个字母
第一个字母表示文件的类型
d:表示目录
-:表示文件
|:表示软连接
其余九个字母可分为三组,魅族三个字母,分别表示三个权限
r:读 w:写 x:执行 -:没有权限
第一组表示:文件所有者的权限
第二组表示:文件对应用户组的权限
第三组表示:其他的用户对应文件的权限

2、文件权限的操作

(1)修改文件权限的命令

在linux中,通过数字来表示不同的权限 r=4、w=2、x=1
chmod u(+|-)(r|w|x) g(+|-)(r|w|x) o(+|-)(r|w|x) 文件或者目录:修改权限
修改权限可以通过数字来修改
chmod 745 文件或者目录:表示的含义如下
拥有者有所有的权限 7
用户组有读的权限 r=4
其他用户有读和写的操作权限 r=4 x=1 5
chmod -R 777 目录:将目录中所有的文件和目录权限都发生更改

(2)修改文件所有者和用户组来达到修改权限的目的

修改文件的所有者必须是root用户
chown 用户名 文件名:修改文件的所有者
chown 用户组 文件名:修改文件的用户组

六、redis的常见应用

1、redis的数据类型

(1)string数据类型

相当于在redis中存放的数据是使用 Map<String,string>
set key value:存放数据(如果存放数据可以重复,会替换到前面的value)
mset key value key value:存放多个数据
get key:取出数据
mget key key:取出多个数据
del key:删除数据(可删除多个数据)
strlen key:获取value字符串的长度
append key value:在原有的数据上追加数据
getrange key index1 index2:获取key对应的字符串,根据下标截取的字符串
index1下标的起始位置 index2下标的结束位置 正数表示正序,负数表示倒序
setex key num value:存放数据时,可以设置数据的过期时间,单位是秒
ttl key:查看当前数据的有效时间(返回的是-1就表示永久有效,返回是-2表示已过期)
keys *:查询当前存放了多少个key(*可以用来做模糊查询)

(2)hash类型

如果有一个key value存放的就是string 不能修改数据类型
相当于在键值对中,值存放的是map数据Map<String,Map<String,String>>
hset key filed1 v1 filed2 v2:存放数据
hget key filed:获取单个hash中的数据
hmget key filed1 filed2:获取hash中的多个数据
hkeys filed:获取hash数据中的所有filed
hvals key:获取hash数据中的所有value
hgetall key:获取hash对应数据的键值对
hlen key filed:查看hash数据中键值对的个数
hexists key filed:查看hash数据中是否有某个key(有1,没有0)
hdel key filed1:删除hash数据中的键值对(可删除多个键值对)
del key:删除所有的数据

(3)list数据类型

list数据类型的特点:有序,可重复
redis中存放list数据相当于Map<String,list>
lpush key v1 v2 …:存放数据(新的数据放在最左边)
rpush key v1 v2 …:存放数据(新的数据放在最右边)
lrange key index1 index2:获取list数据的方法(index1表示起始的下标,index2表示结束)
lrange key 0 -1:表示获取list数据中的所有值
llen key:获取list数据的长度
lpop key:删除list数据(从左边删除一个数据)
rpop key:删除list数据(从右边删除一个数据)
lrem key index value:删除指定数量的值(index表示删除的个数)
lindex key 下标:根据list数据的下标取值

(4)set数据类型

set集合的特点:无序的、不可重复的
在redis中使用set数据,相当于Map<String,set>
sadd key v1 v2 …:添加数据(重复的数据只取一个)
smembers key:获取set集合的数据
scard key:获取set数据的长度
srem key value:根据value的值删除数据
spop key:随机删除
smove key1 key2 value:将key1中的value移动到key2 中
sdiff key1 key2:计算两个key的差集
sinter key1 key2:计算两个key数据的交集
sunion key1 key2:计算两个数据的并集

(5)zset数据类型

zset数据类型,就是在set数据类型中添加一个double数据类型,通过添加的数据类型对set数据进行排序
类似在redis中存放Map<String,Set<String,double>>
zadd key score1 v1 score2 v2 …:存放数据,存放数据的时,需要为每一个值设置一个值
zadd key score value:为value修改分数
zrange key index1 index2:按照正序排列展示的数据(index1是开始的下标,index2结束)
zrange key index1 index2 withscores:显示数据的同时也显示分数
zrevrange key index1 index2:倒序展示数据
zrangebyscore key index1 index2:按照得分区间查询(index1是最小分数,index最大)
zrangebyscore key index1 index2 withscores:按照得分区间查询数据,同时显示分数
zrevrangebyscore key index1 index2:倒序查看的分区间的数据
zcount key index1 index2:查询分数区间的人数(index1是最小分数,index2最大)
zscore key value:根据数据的值查询对应的分数
zrank key value:根据数据的值正序查询对应的下标(查询的结果要加1)
zrevrank key value:根据数据的值倒序查询对应的下标

七、防火墙的命令

1、查看linux的防火墙设置

firewall-cmd --state

2、开放端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent:开放8080端口

3、重启防火墙

firewall-cmd --reload

3、查看所有开启的端口

firewall-cmd --zone=public --list-ports

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页