一 、修改密码方法
二、 修改时区方法
三 、创建文件方法
四、创建文件方法
五、删除文件夹方法
六、系统运行级
七、 执行python文件方法
八、 关机、重启、注销 命令
九、重启命令
10、注销命令
11、安装telnet方法
12、通过telnet进行远程登录
13、添加用户、删除用户、添加组方法
14、查看登陆用户
15、切换用户并切换环境
16、普通用户执行root权限
17、硬链接创建方法
18、软链接创建方法
19、 编辑文件、保存文件方法
20、添加权限、删除权限方法
21、磁盘分区方法
22、特殊权限
23、磁盘分区与挂载卸载
24、NFS的搭建过程
25、常用技巧
26、文件查找方法
27、修改权限方法
28、文件查看方法
29、 查看文件内容方法
30、解压和压缩文件方法
31、简单信息处理方法
32、shell编程
1.输入e
2.UTF-8后加空格,然后输入init=/bin/sh
3.输入ctrl+x退出保存
4.输入 mount -o remount rw, /
5.输入passwd进行密码修改
6.如果第五步出现乱码,输入 LANG=en
7.修改密码
8.输入 touch /.autorelabel
9.输入 exec /sbin/reboot
timedatectl set-timezone Asia/Shanghai
1、要显示系统的当前时间和日期
timedatectl status
2、查看当前时区:
timedatectl
3、查看所有时区
timedatectl list-timezones
1、使用重定向符(>)创建一个文件
重定向符只允许创建一个 0KB 的空文件。
eg: >student.txt
使用 ls 命令查看刚刚创建的文件
使用 ll 命令查看目录
2、touch 命令常用于将每个文件的访问和修改时间更新为当前时间。
touch 不允许创建文件的同时向其中输入文本,它默认创建一个 0KB 的空文件,但是可以同时在不同目录下创建多个文件。
eg: touch f1.txt
touch f2.txt f3.txt
3、echo 允许在创建一个文件时就向其中输入一行文本,当然也允许你在之后向其中输入内容
eg: echo 好好学习>student.txt 这时好好学习就会保存在student.txt 这个文件里。
可以使用 cat 命令查看文件的内容。
eg: cat student.txt
4.mkdir 文件夹名
5.mkdir -m 711 文件夹名 读写执行权限
6.mkdir -p a1/a2/a3 递归创建文件
1.>文件名
2.cat >文件名 新建的同时可以写入多行内容 ctrl+d保存
3.echo 内容>文件名 只能写一行
4.touch 文件名
touch ./c/a.txt
touch /home/test/a.txt
5.创建指定大小的文件 dd if=/dev/zero of=文件名 bs=1 count=0 seek=1G
1、 递归删除
rm -r 文件夹名
2、强制删除
rm -rf 文件夹名
1 init 0 关机
2 init 6 重启计算机
3 init 2,3,4,为字符终端,5为图形界面
pwd展示完整文件
python a.py
linux下常用的关机命令有:shutdown、halt、poweroff、init;重启命令有:reboot
关机命令
1、halt 立刻关机
2、poweroff 立刻关机
3、shutdown -h now 立刻关机(root用户使用)
4、shutdown -h 10 10分钟后自动关机
如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启
1、reboot
2、shutdown -r now 立刻重启(root用户使用)
3、shutdown -r 10 过10分钟自动重启(root用户使用)
4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用) 如果是通过shutdown命令设置重启的话,
可以用shutdown -c命令取消重启
1、logout
2、exit #工作中常用
3、ctrl+d #工作中常用
注销表示退出当前用户登录
rpm -qa | grep telnet 检验是否安装telnet
rpm -qa | grep xinetd检验是否安装xinetd
yum -y install telnet 安装telnet
yum -y install xinetd 安装xinetd
service xinetd restart重启xinetd服务
firewall-cmd 查看防火墙专题
1.安装telnet,telnet-server,xinetd
如果安装失败,错误类型是/var/run/yum.pid被锁定,则将该删除即可:rm -f /var/run/yum/pid
如果是cannot find a valid baseurl则可 能是网络问题,首先确定自己物理机有网,然后在虚拟机上进行网络设置,打开连接。或者把虚拟机当中的桥接模式改为nat模式
下载telnet,telnet-server,xinetd的操作如下 网络问题 IP:systemctl restart network yum install net-tools
Yum -y install telnet
Yum -y install telnet-server
Yum -y install xinetd
2.重启xinetd服务
两步都执行
service xinetd restart
systemctl restart xinetd.service
3.查看xinetd,telnet.socket的启动情况
ps -ef | grep xinetd
Systemctl status telnet.socket
如果telnet.socket查看完之后没有绿色的active,则进行启动
Systemctl start telnet.socket(如果没有安装telnet-server,是没有telnet.socket的)
4.查看防火墙状态,并进行关闭
Firewall-cmd --state
Systemctl stop firewalld.service
5.查看ip,ens中的ip适用于远程连接,lo,vir中的可虚拟机自身连接(确定自己的ip是正常的可用的)
6.Telnet ip连接即可
远程连接方法
telnet 192.168.122.1
rlogin 192.168.122.1
rsh 192.168.122.1
ssh 192.168.122.1
adduser u1
指定目录创建用户
useradd -d /home/test u1 不建议
查看用户信息
id u1
cd /home ll
设置密码
passwd u1
删除用户
userdel u1 目录没有删除
userdel -r u1 全部删除
添加组
groupadd g1cl
删除组
groupdel g1
把已经存在的用户添加到其他组
gpasswd -a u1 g1
usermod -g g1 u1
将u1从g1中删除,这是u1会回到原来那个组
gpasswd -d u1 g1
gpasswd --help
成批添加用户
newusers 1.txt
查看用户和组的相关消息
cat /etc/shadow
cat /etc/passwd 查看所有用户
cat /etc/group 查看所有用户组
file=open("./abc.txt","w",encoding="utf-8")
ln="jb0"
pwd="stu0401"
uid,gid=700,700
ufn=""
hd="/home/jb0"
ls="/bin/bash"
for i in range(1,100):
line=ln+str(40100+i)+":"+"pw"+":"+str(uid+i)+":"+str(gid+i)+":"+ufn+":"+hd+str(40100+i)+":"+ls
file.write(line+"\n")
file.close()
图形界面下的账户管理
需要下载 yum install system-config-users
在应用程序-杂项-用户和群组中
who命令
显示当前有哪些用户登陆
who
显示当前是否可以联机收发信息
who -w
显示系统当前运行级和系统启动时间
who -r runlevel
w命令
显示当前已经登陆的用户
w
last命令
查看最近5条信息
last -5
查看某个时间的用户登陆如2019年8月15日00点00分00秒
last -t 201908150000000
lastlog命令
显示两天来登陆用户的记录信息
lastlog -t 2
显示用户uid为1000-1004的用户登陆信息
lastlog -u 1000-1004x
显示2019年8月13日以来所有 用户的登陆信息
lastlog -t 20190813
1su root
su -
su -l
su --login
exit退出环境
su -c "命令" root
sudo
sucatln
ln 1.txt 2.txt
可以同步更新,删除原文件,硬链接里的内容不会删除
ln -s a.txt b.txt
软链接相当于快捷方式,可以同步更新,删除原文件,软链接里的内容会删除
查看文件方法 stat 1.txt 查看目录ls -li
vi 1.txt
insert
shift+esc+q wq保存
删除权限
chmod u -w f1.txt
添加写权限
chmod g+w f1.txt
其他用户不能读
chmod o-r f1.txt
chmod u+s /sbin/fdisk -l
特殊权限
chmod 1666 f2.txt 特殊权限 1为张贴权限
chmod 2666 f2.txt 特殊权限 组权限
chmod 3666 f2.txt 特殊权限 张贴和组权限
chmod 4666 f2.txt 特殊权限 用户本身权限
chmod 5666 f2.txt 特殊权限 用户本身和张贴权限
chmod 6666 f2.txt 特殊权限 用户本身和组权限
chmod 7666 f2.txt 特殊权限 用户本身张贴和组权限
在虚拟机上添加磁盘(界面实现)
2登陆虚拟机,,执行命令:
fdisk -l
查看磁盘有没有添加成功,sda,sdb,....
3执行命令
fdisk /dev/sdbfdi
开始磁盘分区
4命令(输入m获取帮助):
m具体查看一些参数的实际含义:
n添加分区,new
d删除分区,delete
l展示分区编码号
w把实现的分区结果保存在磁盘中
5执行命令
fdisk /dev/sdb
检查分区是否成功实现
编辑
fdisk -l 查看分区
fdisk /dev/sdb
n
p主分区
2048
100000
+2G
w保存
挂载分区
mkfs.xfs /dev/sdb2
mkdir test1
mount /dev/sdb2 ./test
删除
umount /dev/sdb2
种类:SUID,SGID,sticky
假设存在一个文件f1
假如给f1赋予权限sticky
方法:
1. chmod 1666 f1
当权限编码数字长度为4个的时候,第一位表示特殊权限,后三位表示普通权限
第一位表示特殊权限时,具体分为8种情况:
当第一位是0,特殊权限为空
当第一位是1,特殊权限是sticky
当第一位是2,特殊权限是SGID
当第一位是3,特殊权限是SGID,sticky
当第一位是4,特殊权限是SUID
当第一位是5,特殊权限是SUID,sticky
当第一位是6,特殊权限是SUID,SGID
当第一位是7,特殊权限是SUID,SGID,sticky
2. chmod u+t f1
3. chmod u=rwx f1
文件权限编码 421 rwx
1.在虚拟机上添加磁盘(界面端实现)
2.登录虚拟机,执行命令:
fdisk -l
查看磁盘有没有成功添加,sda,sdb.......
3.执行命令:
fdisk /dev/sdb
开始进行磁盘分区
4.命令(输入 m 获取帮助):
m具体查看一些参数的实际含义
n添加分区,new
d删除分区,delete
l展示分区编码号
w把实现的分区结果保存在磁盘中
5.执行命令:
fdisk -l
检查分区是否成功实现
6.开始进行磁盘格式化
mkfs.xfs /dev/sdbn
n指代的是分区号,前四个分区里,最多只能有一个扩展分区,主分区个数最多是4个
7.mount /dev/sdb1 ./existed_directory
8.执行命令:
df -h
检查挂在是否成功
9.如果不想用这个分区了,可以进行分区的卸载,执行如下命令:
umount /dev/sdbn
NFS:两个或者多个电脑之间文件共享
假设存在两台主机A,B。A为主,B为副。
通过远程挂载形式,将主机A的共享目录里挂载主机B的共享目录:
列如:在A的共享目录下新建一个文件夹,这个文件同时在B的共享目录下生成,
在B这边的共享目录下新建一个文件夹,这个文件同时在A的共享目录下也会生成,
NFS的搭建过程
1.确定一下两台虚虚拟机的IP
ip addr
192.168.1.1(A)
192.168.1.2(B)
2.关闭A的防火墙,systemctl stop firewalld.service
检查A的防火墙是否关闭 systemctl status firewalld.service
3.设置共享目录
A:mkdir /ashare
4安装A 的nfs-utils
yum install nfs-utils
(yum删除方法 yum remove package_name
查看安装的包 yum list )
5在主机A编辑exports文件
vi /etc/exports
写入内容
/ashare 192.168.12.0/24(rw,sync,all_squash)
(/ashare 192.168.245.2)
6 重启服务
systemctl restart nfs-server
7在主机B上安装nfs-utils
yum install nfs-utils
8在主机B上设置共享目录
mkdir /bshareQQQ
9在主机B上查看主机A可提供的挂载信息
showmount -e 192.168.1.1(A的ip)
10在主机B上 实现NFS的挂载
mount -t nfs 192.168.1.1:/ashare /bshare
11检查挂载成功与否
df -h
12尝试在/bshare下新建一个文件1.txt,
如果不能成功,需要给A赋予权限
chown -R nfsnobody:nfsnobody /ashare
13在/bshare新建一个文件1.txt,检查在主机A的/ashare下是否出现一个文件1.txt
同时也可以在主机A上的1.txt文件写入一些内容,在主机B上查看/bshare目录下的文件1.txt是否发生了同样的修改
umount -f /directory 卸载
相对路径:./ ../
绝对路径:/
用户主目录:~
cd ~主目录 cd .当前目录 cd ..上一级目录 cd../c1 上一级目录的子目录 ll..展示上一层目录 ll~
ll -lh展示当前文件大小
ll -a展示所有文件
指定权限
mkdir -m a=rwx a.txt
a=rwx -m g=rw 777 mkdir -m=a,u,g,o
mkdir test1
mkdir test2
touch ./test1/a
文件迁移
mv ./test1/a ./test2
文件复制
cp ./test2/a ./test1
一·find:是以文件名称,后缀名,文件相关用户,文件大小,文件类型,文件访问,修改等时间等去查询文件,但不
包括以文件的内容去查询
grep可以以内容查找
find ./ -name "*.txt" 当前路径查询,可以遍历到它的叶子节点
1·在指定路径下(当不指定路径时,默认在当前路径下查找),按照文件的后缀名进行查找,从当前路径
一直向下遍历到满足条件的叶子节点层
find -name ”*.后缀名“
eg:
find -name "*.txt"
2·在查询1的情况下,不区分大小写
find -iname ”*.后缀名“
eg:
find -iname "*.txt" 查找文件名不区分大小写
3·把查询到的结果执行指定操作
find -iname "*.后缀名“ -exec 指定操作 {} \;
find -iname ”*.后缀名“ -ok rm -f {} \; 操作之前进行会进行询问
eg:
find -iname "*.txt“ -exec ls -lh {} \; 把查询到的文件展示出来
find -iname "*.txt“ -exec rm -f {} \; 把查询到的文件删除
4· 依据文件的类型进行查找(当不指定路径时,默认在当前路径下查找)
文件类型:(普通文件 f,目录文件 d,链接文件 l,设备文件 s)
eg1:查找普通文件
find -type f
eg2:把查询到的软连接删除
find -type l exec rm -f {} \;
5·按照指定权限进行查找文件
find -perm 权限编码
(chomd a=rwx a.txt)
eg1:
find -perm 666
6·按照文件的所属用户进行查找
find -user 文件所属用户
eg1:
find -user root
7·按照文件的所属组进行查找
find -group 文件的所属组
eg1:
find -group test
8.按照文件的修改时间进行查找
stat a.txt 查询文件信息
atime,mtime,ctime ,amin,mmin,cmin access访问 modify修改时间 change变化时间
find -atime -1 一天以内 find -atime -n n天以内查询访问过的文件,mtime,ctime同理
find -atime +1 一天前 find -atime +n n天前查询访问过的文件,mtime,ctime同理
find -amin -1 一分钟以内
find /home -amin -1
9.按照文件的大小进行查找,查找文件大小的单位:k,M,G
Eg1:
find -size +1M 查找文件大于1MB的文件=find -size 1M (默认1MB以内)
find -size -1M
find -size -1k
find -size -1G
10.按照文件的深度层次来进行查找(从最深处开始查找一直遍历到当前目录)
A .find -depth -iname "*.txt" 将指定路径作为第一层,向下遍历到最深处,来查找每一层满足指定条件的文件
B. find -maxdepth n -iname "*.txt" 将指定路径作为第一层,向下遍历到第n层,来查找每一层满足指定条件的文件
C. find -mindepth n -iname "*.txt" 将指定路径作为第一层,从第n层开始向下遍历到最深处,来查找每一层满足指定条件的文件
eg1:
find -depth -type f -exec tree -L 2 {} \; 查找文件最深处的普通文件
find -mindepth 2 -type f 从第2层以后开始遍历
find -depth -type f -iname "*.txt"
find -maxdepth 2 -type f
以树结构来展示文件,需要安装yum install tree,展示第一层的文件tree -L 1
展示指定目录文件:ll ./a/b/c
11.将多个条件按照指定逻辑组合在一起进行文件查找
逻辑组合有:
-a:and,表示多个条件同时满足
-o:or,表示多个条件只要一个满足即可
eg:
find -type f -o -iname "*.txt"
find -type f -a -iname "*.txt"
find / -maxdepth 1-type f -a -size -1M 条件查询 a:and o:or
find / -maxdepth 1-type l -o -size -1k
12.find -name "文件名.*"按照文件名查找
find -name "文件名*"
find -iname"[a-Gz[0-9].*按照指定位置满足指定字符进行查找
find -name "a.*" find
find -iname"[A-G][0-9].*"
修改权限,具体是对我们的文件来更换对应的权限
权限的种类有:r,w,x,s,t,-
r:可读权限,数字代号为4
w:可写权限,数字代号为2
x:执行权限,数字代号为1 书上172页
-:没有任何权限,数字代号为0
修改方式1通过权限编码:
eg:
chmod 666 text.txt
chmod 1666 text.txt
给文件修改权限为,_r_xrwx__T
chmod 1570 text.txt 0 T I t
关于特殊权限的补充:当我们为文件赋予特殊权限的时候,具体是给文件对应三种用户执行这个文件时,赋予特殊权限
2通过给对应用户赋予具体权限类型来实现权限修改
chmod a,u,g,o
chmod a=rwx filename
3通过夹减给对应用户的当前权限进行修改
chmod u-x filename
chmod u+x filename
1·stat filename 可查看文件基本信息
2· ll -a 查看所有文件
ll /existed_directory 绝对路径,相对路径(./,../),~
ll -lh 显示文件大小
3· ls 展示当前目录下的文件 ll=ls -l(默认当前路径)
ls ../相对
ls ~相对
ls / 绝对
ls -lh显示文件大小
ls -lh -t 按时间展示
ls -lht 升序按时间展示
ls -lhrt 降序 按时间展示
ls -a 展示所有文件
时间戳;1970/1/1 00:00:00
cat filename 查看内容较少(文件的行比较少)的文件
cat file1 file2 >file3 把文件1和文件2合在文件3一起展示
cat -n filename 展示行号
cat -b filename 空格行不显示
cat -E filename 增加每一行结束标识符,$
cat -n -E filename
5·more
more filename
可以一行一行翻看:enter,
可以一页一页向下翻看:空格键/ctrl+f ( forward),
可以一页一页向上翻看:ctrl+b (backward)
退出查看 ctrl+c,q
6·head
·head filename 默认查看10行
·head -n 5 filename 查看5行
·head -c 5 filename 默认查看5个字符
7·tail
tail filename 默认查看后10行
tail -n 5 filename 查看后5行
tail -c 5 filename 默认查看后5个字符
8·less
less filename 进行文件内容的查看(适合查看大文件,先比于more,它的功能更全)
enter:逐行向下翻看
空格键:逐行向上翻看
ctrl+f:逐行页下翻看
ctrl+b:逐行页上翻看
less+/str filename
n:基于查询到的关键字符 向下翻
N:基于查询到的关键字符 向上翻
less+n filename 从第n行开始进行文件内容的查看
less -N filename 查看每一行并添加行号
less +/enable *.txt *.* find -iname "[a-c]*" find -iname "[1-9]*"
less -M filename 进行文件内容的查看显示百分比 man find info man 查看帮助 find --help
less +/apple filename 查看指定文件中的指定内容(apple)
N/n查看关键字
less+上/小健
退出查看 ctrl+c,q
查看文件基本信息:
ls
ls -l
stat查看单个文件
查看文件内容:
vi,vim
cat
more
less
head
tail
info
man
创建压缩文件:
1.tar -zcvf 原文件名.tgz 原文件名
2.compress filename (.z为后缀名)
3.gzip filename (.gz为后缀名)
4.bzip2 filename (.bz2为后缀名)
还有很多
解压:
1·tar -zxvf 压缩包filename
2.uncompress filename
3.gunzip filename
4.bzip2 filename
词云图
wc:
wc filename展示(行数,词数,字符数,文件名)信息
wc ./test/a.txt
wc ./test/{a.txt,b..txt}
grep
grep net test(grep 关键词 文件名)只展示有关键词的行数
grep -c net test(grep 关键词 文件名 统计关键词出现的次数)只展示有关键词的行数
grep -i net test 不区分大小写
grep -i -c net test
grep -i -c net ./home/a.txt
grep -i -c net ./home/*.txt
grep -i -c net ./home/*
grep -i -c net ./home/*.*
grep -i -n net test 展示行数(路径,行数,内容)按行显示
grep -v -n net test 反向显示
wc:
wc filename 展示文件的对应的的行数,词数,字符数,文件名
wc {filename1,filename2...}
wc /some_dir{filename1,filename2...}
grep:
把匹配到的文件以行为单位,从每一行当中查找需要匹配的字符串,当匹配到文件有多个时,
会在前面显示相关文件信息(文件路径与文件名)
grep str filename
grep -c str filename 统计指定字符串在匹配到的文件中,出现的次数
grep -i str filename 从匹配到的文件中,查找指定字符串(不去分大小写)
grep -n str filename 将查询到的行的结果增加行在对应文件
grep -v str filename 反向匹配(把没有匹配到的行结果显示出来)
sort:
排序:是对文件的每一行进行排序(依据ASCII值)
sort a.py
cut:
展现文件的局部范围的内容
cut -b 2-5,8,10 a.py
uniq:
在进行去重显示的时候,去重的规则是:连续重复出现
unip filename 进行文件去重展示
unip -c filename 针对文件中出现的重复行进行计数
unip -u filename 将没有连续重复出现的行显示出来
unip -i filename 在连续重复出现的行不计大小写,作为重复行,来进行去重显示
rpm:
1.按照包
2.查询(查询一个包是否安装)rpm -qa | grep telnet ( rpm -qa查询所有 = yum list installed) rpm -qa | grep 包名
3.校验:校验包安装的正确姓
4.升级:更新
5.删除
yum:
yum install (-y) package
y:下载并安装
d:下载,并不安装
N:增加退出
yum repolist 用于列出系统中已配置的yum资源
yumex 软件包 yum list yumex=yum list installed
vi:
vi filename(文件可以存在,也可以不存在)
命令模式,文本编辑模式,行编辑模式
命令模式:
vi filename
i,a,s,o可以进入文本编辑状态
esc+shift+q wq 保存
光标在每一行的开始安esc+yy 对光标所在行复制
esc+p 对复制的内容进行张贴
esc+gg 光标跳到首行
esc+dd 删除光标所在行
在xshell中
ctrl+insert 对选中的内容进行复制
shift+insert 对已经复制的内容进行张贴
文本编辑模式:内容编辑
行编辑模式:
1.q,q!,wq,w,wq!
2. /内容 /[0-9 ] 光标以下进行可以查找
3. ?内容 光标以上进行可以查找