-
127.0.0.1:80 此地址只有本机可以访问
192.168.0.240:80 同一局域网的其他主机可以通过此IP地址加端口访问
192.168.0.150:80 同一局域网的其他主机可以通过此IP地址加端口访问
0.0.0.0:80 其他主机可以通过本机网卡绑定的所有IP地址(回环地址除外)加端口号进行访问
-
baidu.com
taobao.com
bilibili.com
www.qq.com
blog.csdn.com
mail.163.com
-
解决思路:
1. 根据情况描述,机器可以通过客户端程序上网, 但无法通过浏览器上网,由此判断是DNS解析故障
2. 首先使用ping命令测试:ping IP地址(可以访问的公网IP地址),如果可以ping通,证实DNS故障
3. 配置本机DNS解析文件
Linux系统 /etc/resolv.conf 添加正确的DNS服务器地址如nameserver 223.5.5.5
-
1. 端口就是本机上的程序对外提供服务的窗口口,其他计算机可以通过端口,访问本机对外提供的服务
2. 端口的特点,在Linux系统中一共有65535个端口,并且部分端口为系统定义好的端口,不要使用,容易与其他服务冲突,建议个人配置端口设置的5000以上
3.
21端口 FTP文件传输
22端口 ssh加密远程连接
23端口 telnet不加密远程连接
80端口 http服务端口
443端口 https加密的web服务端口
3306端口 mysql数据库
123端口 ntp服务端口
-
65535
netstat -lntup
ss -lntup
-
1. 作用:用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
2. 将磁盘的数据读写到内存中,可以加速数据在设备之间的传输速度
3. 内存是临时存储,读写速度块,但是断电之后,所有数据清空;磁盘为永久存储,断电之后,数据依然保留,但是读取速度慢
4.
free -h
top
-
1. 用于存储数据
2. 可以永久保存数据
3. SASI SAS IDE M2
4. df -h
5. df -i
➜ ~ fdisk -l /dev/sda
根据分区文件系统不同查看方法:
➜ ~ xfs_info /dev/sda1
[autox@ubuntu ~]$sudo dumpe2fs /dev/sda1 | grep -i '^block'
-
1. 终端就是系统提供给用户操作的窗口
2. Linux系统自带终端 远程连接软件Xshell Mac或windows自带Terminal
3. 使用终端可以直接对操作系统进行操作使用
4. 7个终端 ctrl + alt + F1~F7
-
Linux系统:
ssh bigdata@123.206.16.61 -p 27717
Windows系统
ssh bigdata@123.206.16.61 27717
-
1. exit
2. logout
-
/dev/sda
/etc/nginx/nginx.conf
/usr/bin/nginx
.nginx
../nginx/nginx.conf
~/test.txt
-
1. su -
2. sudo
-
➜ ~ hostnamectl set-hostname yuchao-linux-class01
➜ ~ hostname yuchao-linux-class01
-
➜ ~ uname -r
3.10.0-862.el7.x86_64
-
➜ ~ cat /etc/os-release
➜ ~ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
-
➜ pwd
/data/nginx/logs
➜ touch ../html/index.php
➜ ll ../html/index.php
-rw-r--r-- 1 root root 0 Apr 15 09:59 ../html/index.php
-
[autox@ubuntu ~]$man lsof
[autox@ubuntu ~]$lsof --help
-
1. 可以在任意目录使用非全路径的形式启动程序
2.
➜ ~ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
3.
➜ ~ echo 'export PATH=$PATH:/root/tree/' >> /etc/profile && source /etc/profile
➜ ~ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/tree/
-
单引号所见即所得,不会对特殊符号作解析处理,而双引号则不同,它会解析变量以及特殊符号的特殊含义
-
Linux系统中的隐藏文件都是以.开头
➜ ~ find /root -type f -name '.*'
-
ctrl + c
-
➜ ~ w
➜ ~ who
➜ ~ uptime
10:09:18 up 6 days, 1:34, 3 users, load average: 0.00, 0.01, 0.05
-
➜ ~ tail -1 /etc/hosts
192.168.0.89 www.chaoge-linux.cc
➜ ~ ping www.chaoge-linux.cc
PING www.chaoge-linux.cc (192.168.0.89) 56(84) bytes of data.
-
➜ ~ tar -xvf yuchao01.tar.gz -C /tmp/yuchao01
-
➜ ~ alias sshjump01='ssh root@192.168.0.21'
➜ ~ alias | grep ssh
sshjump01='ssh root@192.168.0.21'
-
1. 文件传输工具如xftp等类似工具
2. Xshell登陆阿里云服务器后使用rz命令
-
根据文件上传后下载前提供的MD5值,下载或者上传完成之后,进行比对即可验证完整性
➜ ~ md5sum access.log
73f153417f43691d4b64379e96dbbaa2 access.log
-
wgte -c 下载链接
curl -o 链接地址
-
a A i I o O
-
命令模式输入/mysql_database
-
命令模式输入 :356 或者356gg
-
命令模式输入7dd
-
命令模式输入noh
-
:s#DuDu#大黄#
-
:s#DuDu#大黄#g
-
:%s
-
命令模式按下Ctrl + v 进入可视化模式,选取操作的对象
-
1. 多人编辑同一个文件,以及系统意外关闭等
2. 删除编辑文件所在目录的同名以.开头以swap结尾的隐藏文件即可
-
[root@server ~]#cat >> test.sh <<EOF
> #!/bin/bash
>
> if badcommand
> then
> echo "It worked."
> fi
> EOF
-
[root@server ~]
15 dbus:x:81:81:System message bus:/:/sbin/nologin
16 polkitd:x:999:998:User for polkitd:/:/sbin/nologin
17 tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
18 abrt:x:173:173::/etc/abrt:/sbin/nologin
19 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
20 postfix:x:89:89::/var/spool/postfix:/sbin/nologin
21 jack:x:1000:1000::/home/jack:/bin/zsh
22 nginx:x:998:996:Nginx web server:/var/lib/nginx:/sbin/nologin
23 andy:x:1004:1004::/home/andy:/bin/bash
24 mike:x:1005:1005::/home/mike:/bin/bash
-
➜ ~ tail -f /var/log/nginx/access.log
-
➜ ~ wc -l < /var/log/nginx/access.log
92
-
➜ nginx du -sh /var/log/nginx
1.4M /var/log/nginx
-
➜ ~ find / -type f | grep -E '.*.(cnf|conf)$' | wc -l
470
➜ ~ find / -type f -name '*.conf' -or -name '*.cnf' | wc -l
470
-
➜ ~ find /var -type f -name '*.log'
-
➜ ~ find /var -type f -name '*[0-9]' | wc -l
60
➜ ~ find /var -type f | grep -E '.*[0-9]$' | wc -l
60
-
➜ ~ find / -type f -name 'yuchao_secret.tgz'
/root/yuchao_secret.tgz
-
➜ ~ find / -type f -size +20M -name '*.tgz'
-
➜ ~ find / -type f -name '*.txt' -or -name '*.log' -or -name '*.png'
➜ ~ find / -type f | grep -E '.*.(txt|log|png)$'
-
➜ ~ find / -type f -name '*.txt' -or -name '*.log' -or -name '*.png' -ls
-
➜ ~ getent passwd root
root:x:0:0:root:/root:/bin/zsh
➜ ~ id root
uid=0(root) gid=0(root) groups=0(root)
➜ ~ grep '^root' /etc/passwd
root:x:0:0:root:/root:/bin/zsh
-
➜ ~ grep -l 'password' /var/log/*
/var/log/secure
/var/log/secure-20220306
/var/log/secure-20220313
/var/log/secure-20220409
-
➜ ~ ps -ef | grep ssh
➜ ~ netstat -lntup | grep ssh
➜ ~ lsof | grep ssh
-
➜ ~ stat /var/log/nginx/access.log
File: ‘/var/log/nginx/access.log’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 1163661 Links: 1
Access: (0640/-rw-r-----) Uid: ( 998/ nginx) Gid: ( 0/ root)
Access: 2022-04-15 10:44:00.211160745 +0800
Modify: 2022-03-11 09:11:01.532281121 +0800
Change: 2022-03-11 09:11:01.532281121 +0800
Birth: -
➜ ~ chown nginx. /var/log/nginx/access.log
➜ ~ stat /var/log/nginx/access.log
File: ‘/var/log/nginx/access.log’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 1163661 Links: 1
Access: (0640/-rw-r-----) Uid: ( 998/ nginx) Gid: ( 996/ nginx)
Access: 2022-04-15 10:44:00.211160745 +0800
Modify: 2022-03-11 09:11:01.532281121 +0800
Change: 2022-04-15 11:23:40.522541181 +0800
Birth: -
-
➜ ~ find /var/log -type f -mtime +7 -delete
-
➜ ~ find / -type f -size +100k -size -2M | xargs du -h | sort
-
➜ ~ useradd yuchao01 -G root -s /bin/bash -c '努力学习linux' -u 1500
➜ ~ id yuchao01
uid=1500(yuchao01) gid=1500(yuchao01) groups=1500(yuchao01),0(root)
➜ ~ getent passwd yuchao01
yuchao01:x:1500:1500:努力学习linux:/home/yuchao01:/bin/bash
-
➜ ~ chage -d 0 yuchao01
-
➜ ~ chage -E 2022-08-08 yuchao01
➜ ~ chage -l yuchao01
Last password change : password must be changed
Password expires : password must be changed
Password inactive : password must be changed
Account expires : Aug 08, 2022
Minimum number of days between password change : 7
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
-
➜ ~ useradd chaoge01 -u 1200 -M -s /sbin/nologin -g chaoge01
➜ ~ id chaoge01
uid=1200(chaoge01) gid=2000(chaoge01) groups=2000(chaoge01)
➜ ~ getent passwd chaoge01
chaoge01:x:1200:2000::/home/chaoge01:/sbin/nologin
-
➜ ~ mkdir /yuchao_linux
➜ ~ chmod 664 /yuchao_linux
➜ ~ ll -d /yuchao_linux
drw-rw-r-- 2 root root 6 Apr 15 11:46 /yuchao_linux
-
➜ ~ chmod +x yuchao.sh
➜ ~ ./yuchao.sh
Hello
-
mkdir /home/jack01
cp /etc/skel/.* /home/jack01/ -a
chown jack01. /home/jack01
➜ ~ su - jack01
Last login: Fri Apr 15 11:54:31 CST 2022 on pts/0
[jack01@server ~]$
-
➜ ~ mkdir -p /my_tmp
➜ ~ chmod +t /my_tmp
➜ ~ ll -d /my_tmp
drwxr-xr-t 2 root root 6 Apr 15 11:56 /my_tmp
-
文件为644
目录为755
系统为了管理权限,将默认创建目录及文件的权限位由umask码控制
-
➜ ~ find / -maxdepth 2 -type f -perm 644 | wc -l
138
-
➜ ~ date '+%T %F'
12:01:30 2022-04-15
-
file 命令接文件名称
-
➜ ~ systemctl start nginx && systemctl enable nginx.service
-
➜ ~ timedatectl set-time '2021-12-12 05:30:00'
➜ ~ date '+%F %T'
2021-12-12 05:30:17
# 备注:如果系统配置了ntp时间同步,进行如上配置需提前关闭ntp服务,并禁用ntp同步(timedatectl set-ntp off)
-
➜ ~ ntpdate ntp.aliyun.com
➜ ~ date '+%F %T'
2022-04-15 12:09:30
-
➜ ~ ping yuchaoit.cn
PING yuchaoit.cn (123.206.16.61) 56(84) bytes of data.
➜ ~ dig yuchaoit.cn
-
1. 启动crond服务并开机自启
➜ ~ systemctl start crond.service && systemctl enable crond.service
➜ ~ systemctl status crond
2. 创建备份目录
➜ ~ mkdir -p /opt/mysql_back
3. 命令行测试
➜ / /usr/bin/cd / ; /usr/bin/tar -zcvf /opt/mysql_back/mysql_all_$(date '+%F').tgz ./var/lib/mysql
➜ / ll /opt/mysql_back
total 4.0K
-rw-r--r-- 1 root root 966 Apr 15 12:24 mysql_all_2022-04-15.tgz
4. 测试成功开始配置定时任务
➜ ~ crontab -l
15 3 1 * * /usr/bin/cd / ; /usr/bin/tar -zcf /opt/mysql_back/mysql_all_$(date '+%F').tgz ./var/lib/mysql &>/dev/null
-
➜ ~ ps -ef | grep -E 'ssh|python'
➜ ~ lsof | grep -E 'ssh|python'
➜ ~ ps -ef | awk '$8~/ssh|python/{print $0}'
htop 按下F3搜索ssh python
-
➜ ~ fuser -v /var/lib/mysql
➜ ~ lsof /var/lib/mysql
-
➜ ~ nohup python3 manage.py runserver 0.0.0.0:8081>/var/log/my_django.log 2>&1 &
-
➜ ~ df -h | awk 'NR>1{print $1,$(NF-1)}' | column -t
/dev/sda2 24
devtmpfs 0
tmpfs 0
tmpfs 3
tmpfs 0
/dev/sda1 13
tmpfs 0
-
1. rpm
获取rpm包(推荐官网或者可靠的yum仓库)
↓
解决所安装rpm包的依赖关系
↓
确认解决依赖关系后使用rpm命令安装
2. yum
获取安全可靠yum仓库地址
↓
编写repo文件(配置仓库地址)
↓
使用yum install 软件名称 安装软件(yum自动解决依赖关系,前提仓库包含所需依赖软件)
3. 源码编译
获取安全可靠的源代码(推荐官网获取)
↓
配置编译环境,安装编译所需软件
↓
安装解决编译源码的依赖关系
↓
配置编译脚本configure(配置编译安装的路径、功能扩展等)生成make.file
↓
执行编译并安装 make && make install
-
1. /etc/yum.repos.d
2. 本地安装光盘源 → 本地私有仓库 → 公网公共仓库
3. 根据系统版本选择阿里云yum源
备份原有yum源
↓
配置Base源
CentOS7:wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
↓
配置epel源
CentOS7: wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
4. yum clean all && yum makecache
-
➜ ~ ls /dev/sd[a-z] | wc -l
5
➜ ~ fdisk -l | grep 'sd[a-z]\b' | wc -l
5
-
1.添加1T磁盘
↓
2.分区操作(2T以下使用fdisk分区即可;超过2T使用gdisk)
↓
3.格式化文件系统(根据业务需要创建所需的文件系统,Linux系统主流文件系统为xfs ext4)
↓
4.创建挂载点,挂载使用(使用mount命令进行挂载使用)
↓
5.配置开机自动挂载(编辑配置文件/etc/fstab)
-
1. 创建文件系统
[root@mini ~]#mkfs.xfs /dev/sdb1
2. 创建挂载点,并挂载分区
[root@mini ~]#mkdir /data_test
[root@mini ~]#mount /dev/sdb1 /data_test/
3. 测试使用
[root@mini ~]#cp /etc/passwd /data_test/f1.txt
[root@mini ~]#ll /data_test/f1.txt
-rw-r--r-- 1 root root 1237 Apr 15 14:09 /data_test/f1.txt
-
➜ ~ blkid
-
1. 查询使用挂载点的进程
[root@mini ~]
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 39528 root cwd DIR 8,17 20 64 /data
2. 通知用户退出或者kill掉进程
[root@mini ~]
3. 成功卸载
[root@mini ~]
-
➜ ~ dd if=/dev/zero of=1G.txt bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 1.50824 s, 712 MB/s
➜ ~ du -sh 1G.txt
1.0G 1G.txt
-
方法1:
➜ ~ find / -type f -name "*.log" -exec basename {} ;
方法2:
➜ ~ find / -type f -name "*.log" | awk -F '/' '{print $NF}'
方法3:
➜ ~ find / -type f -name '*.log' | sed -nr 's#.*/##p'
-
➜ ~ find /etc -type f -name '[^[:alpha:]][0-9]*'
-
➜ ~ find / -type f -name '*.a' -or -name '*.b'
-
方法1:
➜ ~ ifconfig ens33 | awk 'NR==2{print $2}'
10.0.0.10
方法2:
➜ ~ ifconfig ens33 | sed -nr '2s
10.0.0.10
方法3:
➜ ~ ifconfig ens33 | grep -Eo '([0-9]{1,3}.){3}[0-9]{1,3}' | head -1
10.0.0.10
-
方法1:
➜ ~ grep -Ev '^($|#)' /etc/nginx/nginx.conf
方法2:
➜ ~ sed -nr 's/^($|#)//p' /etc/nginx/nginx.conf
-
1. grep命令
➜ ~ grep 'nologin' /etc/passwd | grep -Eo '^[[:alnum:]]+'
2. sed命令
➜ ~ sed -nr '/nologin/s#^([[:alnum:]]+):.*#\1#p' /etc/passwd
➜ ~ sed -nr '/nologin/s#:.*##p' /etc/passwd
3. awk命令
➜ ~ awk -F ':' '/nologin/{print $1}' /etc/passwd
-
1. grep命令
➜ ~ grep -E '[[:digit:]]{4,}' /etc/passwd
2. sed命令
➜ ~ sed -nr 's#([0-9]{4,})#\1#p' /etc/passwd
3. awk命令
➜ ~ awk -F ':' '$3>=1000' /etc/passwd
-
1. grep命令
➜ ~ grep -Eo '^([0-9]{1,3}.){3}[0-9]{1,3}' /var/log/nginx/access.log
2. sed命令
➜ ~ sed -nr 's#-\s-\s.*$##p' /var/log/nginx/access.log
➜ ~ sed -nr 's#^(([0-9]{1,3}.){3}[0-9]{1,3}).*$#\1#p' /var/log/nginx/access.log
3. awk命令
➜ ~ awk '{print $1}' /var/log/nginx/access.log
-
1. grep命令
➜ ~ grep -Eo '[[:alnum:]]+' dog.txt | sort | uniq -c | sort -nr
2. sed命令
➜ ~ sed -nr 's#[^[:alnum:]]+#\n#gp' dog.txt | sort | uniq -c | sort -nr
3. awk命令
➜ ~ awk -v RS='[^[:alnum:]]+' '{print $0}' dog.txt | sort | uniq -c | sort -nr
-
➜ ~ awk 'NR>=3&&NR<=11{print NR,$0}' /etc/passwd
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
11 games:x:12:100:games:/usr/games:/sbin/nologin
-
➜ ~ awk '/^root/,/^nobody/{print NR,$0}' /etc/passwd
1 root:x:0:0:root:/root:/bin/zsh
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 operator:x:11:0:operator:/root:/sbin/nologin
11 games:x:12:100:games:/usr/games:/sbin/nologin
12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13 nobody:x:99:99:Nobody:/:/sbin/nologin
-
➜ ~ awk -F ':' -v OFS='---' 'BEGIN{print "用户名","uid","gid","home","login shell"}/^root/{print $1,$3,$4,$(NF-1),$NF}' /etc/passwd | column -t
用户名---uid---gid---home---login shell
root---0---0---/root---/bin/zsh
-
➜ ~ awk -F ':' -v OFS='---' 'BEGIN{print "行号","用户名","用户注释","用户登陆解释器"}/nologin$/{print NR,$1,$5,$NF}' /etc/passwd | column -t
行号---用户名---用户注释---用户登陆解释器
2---bin---bin---/sbin/nologin
3---daemon---daemon---/sbin/nologin
-
➜ ~ awk -F ':' 'BEGIN{print "用户名","用户id","用户家目录"}$3>=1000{num+=1;print $1,$3,$(NF-1)}END{print "自建用户数量是:" num}' /etc/passwd | column -t
用户名 用户id 用户家目录
jack 1000 /home/jack
andy 1004 /home/andy
mike 1005 /home/mike
pyyu 1007 /home/pyyu
t1 1008 /home/t1
t2 1009 /home/t2
t3 1010 /home/t3
t4 1011 /home/t4
t5 1012 /home/t5
t6 1013 /home/t6
t7 1014 /home/t7
t8 1015 /home/t8
t9 1016 /home/t9
t10 1017 /home/t10
yuchao01 1500 /home/yuchao01
chaoge01 1200 /home/chaoge01
jack01 1501 /home/jack01
自建用户数量是:17