千锋教育2023新版Linux教程,保姆级零基础Linux入门到精通全套视频

Linux系统
基本命令
ip a 查看机器ip
ssh root@IP ##登录命令
exit ##退出当前登录状态
su - 用户名称 ##切换当前用户
ctrl + l ##快捷命令,
ctrl + c ##换行,不执行当前命令行的操作
hostnamectl set-hostname yangge666 #更改主机名
cd / ##切换当前目录位置
pwd ##查看当前所在目录位置
cd ~ ##切换到当前用户家目录
cd - ##切换到原来的位置
init 0 #关机
init6 #重启
history #查看历史命令
cat---查看一个文件的全部内容---#注意文件大小,不能直接cat大文件
cat /etc/passwd
head /etc/passwd //默查看前十行
head -2 /etc/passwd //默认查看前两行
tail /etc/passwd //默认查看文件的后十行
tail -1 /etc/passwd //查看文件最后一行
tail -f /var/log/secure //-f 动态查看文件的尾部
grep过滤关键字 //grep 针对文件内容进行过滤
过滤文件中带有root的内容:
grep 'root' /etc/passwd ##过滤以root开头的行:^ --以什么开头
grep '^root' /etc/passwd ##过滤以bash结尾的行
grep 'bash$' /etc/passwd ##过滤以什么结尾
——-——————————————
less --分页显示
空格键是翻页 回车键是翻行
上下箭头可以来回翻
/关键字 #搜索 (n按关键字往下翻 N按关键字往上翻)
快捷键:q -quit 退出
————
查看服务器时间
date #查看时间
date +%F #只显示当前年月日
date +%X #只显示当前时间到秒
pwd #显示当前工作路径
查看复制删除创建移动文件目录
ls #查看当前目录下的所有文件
ls /root/a.txt //单独列出文件
ls /home //查看指定目录下的文件
ls -l //长格式显示(显示文件的详细信息)
文件类型\权限 硬链接个数 所有者 所属组 大小 修改时间 名字
ll -d /home/ #显示目录的详细信息
ls -lh //-h 人性化显示 (显示文件大小单位)
ls -a //all 显示所有文件 (包括隐藏文件)
ll -d /home/ #查看目录详细信息
ll /home/ #查看目录下面文件的详细信息
touch 文件名 ##创建普通文件
touch /home/{zhuzhu,gougou} //{}集合
touch /home/file{1..20} //批量创建
touch file{1..20}.txt #创建file1-10的txt文件
mkdir 文件名 ##创建目录文件
mkdir /home/dir2 /etc/dir3 #创建两个目录
mkdir -p /home/dir8/111/222 #-p 连级创建目录,一级一级的创建
touch .文件名 ##创建隐藏文件
mv 文件名 新文件名 ##剪切文件并改名字
rm -f 文件名 ##只能删除普通文件
rm -rf 文件名 ##可以删除任意文件包括目录
rm -rf /home/dir10/* //不包括隐藏文件
cp 666.txt /home/dir1/777.txt #复制并改文件名
cp -r /etc /home/dir1 #-r 拷贝目录,连同目录里面的文件一块拷贝
————————————————————
关闭防火墙与selinux
systemctl stop firewalld ##关闭防火墙
systemctl status firewalld ##查看防火墙状态
systemctl disable firewalld ##永久关闭防火墙
systemctl start firewalld ##启动防火墙
setenforce 0 ##临时关闭Selinux
vi /etc/sysconfig/selinux ##永久关闭selinux,将文件中的SELINUX=enforcing改为disabled
cat /etc/sysconfig/selinux ##查看更改是否有误
getenforce ##查看selinux开启状态
————————————————————
正常写入数据
vi 某个文件 --> 点击 i ,进入编辑模式-->调整光标到需要更改的位置-->改数据-->点击 Esc,退出编辑模式-->shift+: ,并输入wq(保存并退出)
#如果改错了,又忘了原始参数是啥,点击 Esc,退出编辑模式-->shift+: ,并输入q!(强制退出)
————————————————————
ifup ens33 #启动网卡
vi /etc/sysconfig/network-scripts/ifcfg-ens33 #网卡路径
把 ONBOOT="no" 改为 ONBOOT="yes"
systemctl restart network #重启网络
文件类型
- 普通文件
d 目录文件
b 设备文件
c 设备文件 字符设备文件,比如我们的终端tty1,打印机。
l symbolic link 即符号链接文件,又称软链接文件 (浅蓝色)
s socket 即套接字文件,用于实现两个进程进行通信
p 管道文件
————
echo 加内容 > 加文件名 #覆盖:把之前的内容替换掉
echo 加内容 >> 加文件名 #追加:保留之前的内容,在后面添加新内容
当使用echo 123 >> a.txt 这个命令的时候在文件不存在的时候会创建该文件并将内容追加到改文件中
————————————————
Linux文件管理
文件编辑
编辑模式
i #在光标所在处进入编辑模式
a #在当前光标后面进入编辑模式
A #在行尾进入编辑模式
o #在光标的下一行进入编辑模式
大O #在光标的上一行进入编辑模式
# 从编辑模式进入命令模式:ESC
命令模式
光标定位键盘:
hjkl #上下左右
0 $ #行首行尾
gg #页首--文本顶端
G(shift+g) #页尾--文本底部
3G #进入第三行
/关键词 #查找字符,n下一个,N上一个 (n N 可以循环的)
尾行模式
shift+: #进入尾行模式(扩展命令模式)
:10 #进入第10行
:w #保存
:q #退出
:wq #保存并退出
:q! #不保存并退出
:wq! 强制保存退出
可视模式
ctrl+v #进入可视块模式
shift+v #进入可视行模式
文本编辑
yy #复制
3yy #从光标开始复制3行。在最后粘贴
ygg #从当前光标复制到页首
yG #从光标开始复制到页尾
dd #删除一行
3dd #从光标开始删除3行
dgg #从光标开始删除到页首
dG #从光标开始删除到页尾
d^ #删除当前光标之前的内容
p #粘贴到本行的下一行
大P #粘贴到本行的上一行
x #删除光标所在的字符
D #从光标处删除到行尾
u #undo撤销
r #可以用来修改一个字符
查找替换
语法----> :范围 s/old/new/选项
:s/world/nice/ #替换当前光标所在行
:3s/sbin/nice/ #替换指定行
:1,5 s/nologin/soso/ #从1-5行的nologin 替换为soso
:%s/bin/soso/ #替换所有行
:%s/sbin/nice/g #替换行内所有关键字
——
:set nu #设置行号
:set list #显示控制字符
:set nonu #取消设置行号
访问时间:atime,查看内容
修改时间:mtime,修改内容
改变时间:ctime,文件属性,比如权限,mv改名
用户管理
创建组
groupadd hr //创建一个用户组叫hr
groupadd market //创建一个用户组叫market
groupadd net01 -g 2000 //创建组叫net01,并指定gid为2000
grep 'net01' /etc/group //查看/etc/group中组net01信息
net01:x:2000:
修改组
[root@linux-server ~]#groupmod 参数 组名
-g:修改组的gid
-n:修改组名
[root@linux-server ~]#groupmod -g 2000 grp1
[root@linux-server ~]#groupmod -n 新组名 grp1
删除组
[root@linux-server ~]# groupdel net01 #删除组net01
注意:用户的主属组不能删除
useradd user01 //创建用户
/etc/passwd ---->查看账户是否存在的文件
/home/ ---->用户的家目录,每创建一个用户会在/home目录下面创建对应的家目录
/etc/shadow --->用户的密码文件
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
分隔符::
第一列:用户名
第二列:密码
第三列:用户标识号--->(uid)是一个整数,系统内部用它来标识用户。通常用户标识号的取值范围是0~65535。0是超级用户root的标识号
第四列:gid
第五列:描述信息。
第六列:家目录
第七列:是用户登陆到界面的第一个命令,开启一个shell。登陆shell
id user01 //查看用户的uid、gid、和所在组
whoami 查看我现在所使用的账户
useradd user02 -u 503 //指定uid为503
useradd user05 -s /sbin/nologin //创建用户并指定shell
useradd user07 -G it,fd //创建用户,指定附加组
useradd -g 1003 user8 #指定用户的主属组为1003组。
useradd user10 -u 4000 -s /sbin/nologin
userdel -r user02 //删除用户user2,同时删除用户家目录
passwd alice #root用户可以给任何用户设置密码
1.修改用户名:
-l
usermod -l NEW_name user8
id user8
id: user8:无此用户
2.修改GID:
-g
id user10
uid=1000(user10) gid=1000(tom) groups=1000(tom)
usermod user10 -g new_gid #gid需要提前存在
3.修改UID
-u
usermod -u new_id jack
id jack
uid=1005(jack) gid=1004(jack) groups=1004(jack)
4.修改用户的登录shell
-s
usermod -s /sbin/nologin user07 #修改用户的登录shell
给组添加账户
-a
gpasswd -a user10 grp2
Adding user user10 to group grp2
同时添加多个用户到组
-M:members成员的缩写 (把组员替换掉了)
gpasswd -M tom,alice it
从组删除用户
-d
gpasswd -d user07 hr
useradd #添加用户
usermod #更改用户名
su #su - 用户名 //切换用户
userdel #删除用户 # userdel -r 用户名 (删除用户的同时删除家目录)
文件权限
权限对象:
属主------->u
属组------->g
其他人------>o
基本权限类型:
读(read):r ---->4
写(write):w ---->2
执行: x----->1
chown
chown alice.hr file1.txt //修改属主、属组
chown tom file1.txt //修改属主
chown .it file1.txt //只改属组
chown -R alice.hr dir1 //递归修改---针对目录及目录下的所有文件
改权限
符号
chmod u+x file1.txt //属主增加执行
chmod a=rwx file1.txt //所有人等于读写执行
chmod a=- file1.txt //所有人都没有权限
chmod ug=rw,o=r file1.txt //属主属组等于读写,其他人只读
数字
chmod 644 file1.txt
ll file1.txt
-rw-r--r--. 1 tom it 0 Nov 1 15:30 file1.txt
chmod 755 file1.txt
ll
-rwxr-xr-x 1 root root 0 Jul 23 22:40 file1.txt
chmod 521 file1.txt
ll
-r-x-w---x 1 root root 0 Jul 23 22:40 file1.txt
————
groupadd hr //创建一个用户组
useradd hr01 -G hr //创建hr01用户添加到hr组里
useradd hr02 -G hr //创建hr02用户添加到hr组里
mkdir /home/hr //在/home创建一个hr目录
chown .hr /home/hr //将/home/hr目录的所属组设置为hr
chmod 770 /home/hr //将/home/hr目录的权限设置为770
ll -d /home/hr //查看/home/hr目录本身的权限
drwxrwx---. 2 root hr 6 Nov 1 17:11 /home/hr
管道与重定向
> ----覆盖
>> ----追加
正确输出: 1> 1>> 等价于 > >>
错误输出: 2> 2>>
ls /home/ /aaaaaaaaa &>list.txt #混合输出到相同文件
date 1> date.txt #正确输出--覆盖
# 注意:如果 > 前面什么都不加默认为1,标准正确输出
date >> date.txt #正确输出--追加
(cat > file << EOF )是用来创建文件或者在脚本中使用,并向文件中输入信息输入的任何东西会被写入文件中,EOF命令结束。
语法:cat >> file5 <
EOF:开始和结束的标记。
成对使用
结尾的另一个必须定格写。
例 cat >file4 <
> 111
> 222
> 333
> 444
> EOF
cat file4
111
222
333
444
管道
ls /etc |grep 'sys' #查询目录内符合要求的文件
将/etc/passwd中的用户按UID大小排序
sort -t":" -k3 -n /etc/passwd #以: 分隔,将第三列按字数升序
sort -t":" -k3 -n /etc/passwd -r #以: 分隔,将第三列按字数降序
sort -t":" -k3 -n /etc/passwd |head #以: 分隔,将第三列按字数升序看前十行
sort -t":" -k3 -n /etc/passwd |tail #以: 分隔,将第三列按字数升序看后十行
参数详解:
sort 排序,默认升序
-t 指定分隔符
-k 指定列
-n 按数值
-r 降序
参数传递
cat a.txt | xargs -i cp {} /目录
目录时 -r
软件管理
语法 rpm -ivh 软件包名称
rpm -qa | grep 软件名 # 查找软件是否安装
rpm -ql httpd #查询安装的http文件及其路径
rpm -qf /usr/share/httpd/noindex #查询该文件属于哪个包
rpm -qf /etc/passwd #查询某一个文件是哪个软件产生的:只能查询已经安装好的软件
语法:# rpm -e 软件名称 #卸载
rpm工具管理软件包总结:
1. 很难解决包依赖关系
2. 如果某个文件没有,很难知道它由哪个rpm包提供
语法 yum -y install 软件名 下载安装应用命令
yum remove 软件名 -y 卸载删除应用命令
#可以自动解决rpm软件依赖关系,虽然是通过yum安装的但是最后执行的还是rpm,也就是说没有rpm命令yum也就不能用了。
安装nginx
编译安装
yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel #编译环境的准备
[root@linux-server ~]# wget http://nginx.org/download/nginx-1.16.1.tar.gz
[root@linux-server ~]# tar xzf nginx-1.16.1.tar.gz
[root@linux-server ~]# cd nginx-1.16.1
[root@linux-server nginx-1.16.1]# ./configure --user=www --group=www --prefix=/usr/local/nginx
[root@linux-server nginx-1.16.1]# make #编译文件
[root@linux-server nginx-1.16.1]# make install #安装文件
[root@linux-server ~]# useradd www #创建nginx用户
[root@linux-server ~]# /usr/local/nginx/sbin/nginx #启动nginx
[root@linux-server ~]# systemctl stop firewalld #关闭防火墙
——
停止nginx
/usr/local/nginx/sbin/nginx -s stop
yum安装
yum install yum-utils
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
:wq
yum install -y nginx
systemctl start nginx
进程管理
静态查看进程
ps aux
ps -ef
查看端口
yum install lsof #安装软件包
lsof -i:80 #端口号,这能查看带端口的进程
查网络进程和正在监听的端口
netstat -lntp (该命令对应的包名:net-tools)
杀死进程
kill 信号参数 PID #kill -9 12345
pkill 信号参数 进程名称 #pkill -9 nginx
上传下载
yum install -y lrzsz
rz #上传
sz 文件 #下载
计划任务
一次性调度执行 at
例1:
[root@linux-server ~ ]# yum -y install at
[root@linux-server ~]# systemctl status atd #查看启动状态
[root@linux-server ~ ]# systemctl start atd #首先要启动服务
例: at now +1min #一分钟后开始执行
at> useradd uuuu 回车
at> #Ctrl+D
id uuuu
例2:
vim at.jobs
useradd u00
touch /a.txt
at 20:33 < at.jobs
——
查看一次性任务 atq
删除一次性任务 atrm 序号