快速上手路线
1、Linux系统结构,常用的目录
2、目录管理CRUD
3、文件管理
4、vim编辑器
5、用户和用户组
6、操作进程
守护进程
linux开机会启动很多程序,在windows叫做服务service,linux叫做守护进程daemon
用户登录的三种方式:
- 命令行登录 root 123456 ,linux上,输入密码,是不会提示的,你就正常输入回车即可!
- ssh 登录,远程连接使用,工具如xshell、SecureCRT
- 图型界面登录,和windows一样
linux的最高账户权限为root,可以操作一切,包括 rm -rf /* ,该命令会把所有一切都摧毁。
关机重启
# 关机前的良好习惯,就是先将数据从内存同步到硬盘上
sync
# 关机指令
shutdown
# 帮助命令,可以查看这个命令的帮助信息,不回某个命令用man查看
man shutdown
shutdown -h 10 # 10分钟后关机
shutdown -h now # 立马关机
shutdown -h 22:00 # 晚上10点关机
shutdown -r now # 立马重启 等同reboot
shutdown -r 10 # 10分钟后重启
shutdown -c # 取消触发的shutdown命令,不包括 shutdown +0 shutdown now
1、目录结构
linux的目录结构是树,最高的节点是 /
ls命令,查看根目录下的所有文件
基本的目录结构
/ 下各目录的作用:
- /bin:这里存放我们经常使用的命令
- /boot:这里存放启动linux使用的一些核心文件,类似window C盘下的system32
- /dev:存放linux的外部设备,如鼠标、键盘,本质上它们都是文件
- /etc:所有的配置文件,我们都放这里
- /home:用户的主目录,在linux中,每个用户都会有自己的主目录,windows也是一样的
- /lib:动态链接库,好比windows的DLL文件
- /lost+found:假设系统非法关机,这里就会存放一些文件,默认空的。
- /media:存放一些设备,如U盘,光驱,Linux识别后,就会放到media目录下
- /mnt:临时挂载目录,将硬盘挂载在这个目录下,硬盘才可被根目录识别,使用。
- /opt:让电脑安装的一些额外软件使用,如redis,mq
- /root:系统管理员目录
- /sbin:存放管理员才能使用的程序
- /tmp:临时文件
- /usr:这是一很重要的目录,很多程序和文件都放在这个目录下
- /usr/bin:普通用户的程序
- /usr/sbin:管理员的程序
- /var:进程修改的文件目录一般放在这里,包括日志文件,
- /www:存放一些网站程序,如论坛、博客、项目之类
- /www/server:存放一些服务器的环境 nginx,tomcat,mysql,redis,php
Linux中,用户的权限很重要,通过这个目录结构可以看出来,管理员和普通用户是分开放置的。
cd 命令
cd .. 上一级目录
cd / 回到根目录
cd ~ 回到用户目录
2、处理文件常用命令
-
ls 列出文件
-a 全部文件 ,包括隐藏文件都会显示 -l 列表格式化输出 # 参数都是使用 -xxx拼接 [root@iZwz996g0zi82g3p8a5i9mZ ~]# ls -al total 2000 dr-xr-x---. 6 root root 4096 Feb 27 23:01 . dr-xr-xr-x. 18 root root 4096 Jan 27 15:29 .. -rw------- 1 root root 11227 May 13 15:45 .bash_history -rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout -rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile -rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc drwxr-xr-x 3 root root 4096 Jul 11 2019 .cache -rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc drwxr-xr-x 2 root root 4096 Jul 11 2019 .pip
-
pwd 显示当前目录
# 如果是链接,要显示它的真实位置,使用 -P 参数 [root@kuangshen tmp]# pwd -P /var/tmp
-
mkdir 创建目录
# 创建单个目录 [root@kuangshen home]# mkdir test # 递归创建目录 [root@kuangshen home]# mkdir -p test1/test2/test3
-
rmdir 删除一个目录
# 移除单个目录 [root@kuangshen home]# rmdir test # 递归删除目录,一定要是空的。如果不是空的,就需要使用rm 命令 [root@kuangshen home]# rmdir -p test1/test2/test3
-
mv 移动文件或目录
# 移动一个文件到test目录 [root@kuangshen home]# mv install.sh test # 将源文件名 source_file 改为目标文件名 dest_file mv source_file(文件) dest_file(文件) # 目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory mv source_directory(目录) dest_directory(目录) sudo mv mongodb-macos-x86_64-6.0.0 /usr/local
-
rm 移除文件或目录
-f: force 强制删除,忽略不存在的文件,不会出现任何警告 -r: 递归删除 -i: 互动,删除前会提问你是否进行删除 [root@kuangshen home]# rm -i install.sh [root@kuangshen home]# rm -rf test
-
cp 复制文件或目录
# cp -[参数] 复制源文件地址,复制目标地址 -r 递归 -i 询问 [root@kuangshen home]# cp -r /root/test2 /home
-
man 万能帮助命令
3、文件基本属性
Linux 是一个多用户系统,不同用户就处于不同的地位,拥有不同的权限
ll 可以显示一个文件的属性和这个文件x所属的用户(属主)和用户组(属组):
第一个字符告诉你这个文件是目录、文件、链接地址?
- [d] 目录
- [-] 文件
- [l] link链接
- [b] 存储设备
- [c] 鼠标键盘之类的,一次性读取装置
接下来的字符,如 rwxr-xr-x , 每个三个一组,代表权限。
- r : read 可读
- w: write 可写
- x: execute 可执行
- -:代表没有权限
位置1 4 7 表示读的权限
位置2 5 8 表示写的权限
位置3 6 9 表示执行的权限
修改文件的属性
# 更改文件的属组
[root@kuangshen home]# chgrp rwx test2
chgrp: invalid group: 'rwx'
# 更改文件的属主
[root@kuangshen home]# chown hhzz test2
chown: invalid user: 'hhzz'
# 更改文件的九个属性,就是上面的属主、属组、其他用户的rwx权限
[root@kuangshen home]# chmod 777 test2
[root@kuangshen home]# ll
total 8
drwxrwxrwx 2 root root 4096 May 9 21:46 test2
drwxr-xr-x 2 root root 4096 May 9 21:46 test-root
own(属主) grp(属组) other(其他用户)
rwx r-x r-x
7 5 5
# 其中 rwx=4+2+1=7,r-x=4+1=5
r 4
w 2
x 1
我们平时使用这个进行快捷操作!
4、文件查看
[root@iZwz996g network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@iZwz996g network-scripts]#
# 1、cat 从第一行展示我们的文件内容(常用)
[root@iZwz996g network-scripts]# cat ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
# 2、tac 从最后一行逆向展示我们的文件内容
[root@iZwz996g network-scripts]# tac ifcfg-eth0
ONBOOT=yes
BOOTPROTO=dhcp
DEVICE=eth0
# 3、显示行号
[root@iZwz996g network-scripts]# nl ifcfg-eth0
1 DEVICE=eth0
2 BOOTPROTO=dhcp
3 ONBOOT=yes
# 4、more 一页一页的翻动
more /etc/profile # 环境变量
# 查看的时候的指令说明
空格 代表向下面翻页
回车 代表翻一行
/字符串 要搜索这个字符串
q 立刻离开more,不再显示
b 往回翻页
# 5、less 一页一页的翻动
less /etc/profile
# 查看的时候的指令说明
空格 代表向下面翻页
/字符串 要搜索这个字符串(向下搜索)
?字符串 要搜索这个字符串(向上搜索)
n 向下重复搜索
N 向上重复搜索
q 退出
# 6、whereis 文件 全局搜索!
# | 管道符,将第一个命令的结果给第二个命令
cat 文件名 | grep '内容'
# -n 返回行号
cat -n mobileR_debug_2021-03-10-10.log | grep 'CIMS 开票信息:'
# 直接查看tar.gz压缩包里的内容可以使用
zcat xxx.tar.gz
# 加上管道符,过滤内容
zcat vsftpd.tar.gz|grep --binary-files=text 'footbar.js'
# 或者
zgrep -a 'footbar.js' vsftpd.tar.gz
# 或者
zcat /home/downfile/test.tar.gz | grep -a 'key_name'
# 7、head 只看文件的前几行
head -n 20 profile # 只显示文件的前20行
# 8、tail 只看文件的后面几行,-f 刷新输出
tail -n -f 100 profile # 只显示文件的后面100行
# 9、输出第70行到第75行的内容
sed -n '70,75p' date.log
# 输出第6行 和 260到400行
sed -n '6p;260,400p; ' 文件名
# 输出第5行
sed -n 5p 文件名
5、Link 链接
link链接,分硬链接和软链接
-
硬链接:
相当于对源文件copy,Linux中,保存在磁盘分区中文件,不管是什么类型,都会给他分配一个编号,索引节点。多个文件名可以指向同一个索引节点
A 是 B的硬链接,代表A和B指向同一个索引节点。通过A或B都可以访问到这个文件,删除了A,B依旧可以访问。
作用:允许一个文件有多个有效的路径名,可以建立硬链接,保护重要文件,防止误删! -
软链接
符号链接,相当于快捷方式,删除源文件后,软链接就会失效
# 创建一个文件
[root@iZwz996g home]# touch f1
# 给f1创建一个硬链接f2
[root@iZwz996g home]# ln f1 f2
# 给f1创建一个软链接f3
[root@iZwz996g home]# ln -s f1 f3
[root@iZwz996g home]# ls
f1 f2 f3
[root@iZwz996g0zi82g3p8a5i9mZ home]# ll
-rw-r--r-- 2 root root 0 May 13 18:19 f1
-rw-r--r-- 2 root root 0 May 13 18:19 f2
lrwxrwxrwx 1 root root 2 May 13 18:20 f3 -> f1
[root@iZwz996g0zi82g3p8a5i9mZ home]# ls -li
total 4
664705 -rw-r--r-- 2 root root 0 May 13 18:19 f1
664705 -rw-r--r-- 2 root root 0 May 13 18:19 f2
664706 lrwxrwxrwx 1 root root 2 May 13 18:20 f3 -> f1
# 向f1中写入内容
[root@iZwz996g home]# echo "hello world" >> f1
[root@iZwz996g home]# cat f1
hello world
[root@iZwz996g home]# cat f2
hello world
[root@iZwz996g home]# cat f3
hello world
# 删除源文件f1
[root@iZwz996g home]# rm f1
rm: remove regular file ‘f1’? y
# 软链接f3失效
[root@iZwz996g home]# cat f3
cat: f3: No such file or directory
# 硬链接f2正常
[root@iZwz996g home]# cat f2
hello world
如果创建了硬链接,所有都删除了,才算是真正的删除
6、VIM编辑器
vim核心,三种模式:
-
命令模式
vi f2 vim f2
-
输入模式
在命令模式下输入i,进入输入模式,开始编辑
在输入模式下,按esc键退出输入模式,回到命令模式
-
底线模式
命令模式下,输入:
:wq
7、常用命令
# 验证服务器的应用端口是否能连接
# 默认的https端口是443,telnet一下看是否能访问
telnet msign.midea.com 443
# 看9001端口是否能连接
telnet 10.18.31.26 9001
# 1、lsof 查看端口占有
lsof -i tcp:6379
# 安装lsof 支持
yum install -y lsof
# 2、wget 远程文件下载命令
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz # 下载到当前目录
# 3、rz命令上传
当我们使用虚拟终端软件,如Xshell、SecureCRT或PuTTY来连接远程服务器后,使用rz命令可以上传本地文件到远程服务器。输入rz回车后,会出现文件选择对话框,选择需要上传文件,一次可以指定多个文件,上传到服务器的路径为当前执行rz命令的目录。
# 4、sz命令下载
sz命令刚好相反,是将多个文件从远程服务器下载到本地,如
sz file1 file2 file3
# 不能使用rz/sz命令时,需要安装lrzsz
yum install lrzsz -y
# 5、修改显示的hostname
[root@VM_0_3_centos local]
怎么把VM_0_3_centos 修改为自定义的名称
vi /etc/hostname
SecureCRT重新连接
[root@helloworld ~]#
# 6、结合 cat 命令用重定向 > 实现创建一个多行文件
[root@alibaba ~]# cat << EOF > test.txt
> mac 2000 500
> win 2000 400
> bsd 1000 300
> EOF
[root@alibaba ~]# cat test.txt
mac 2000 500
win 2000 400
bsd 1000 300
# 7、wget命令下载
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
# 查看当前登录的用户
whoami
# 增加用户jude
adduser jude
# 切换到jude用户
su jude
# 8、kill命令的三种方式
# -1.从容停止
ps -ef|grep nginx
kill -QUIT master进程ID
# -2.快速停止
kill -TERM master进程ID
# 或者
kill -INT master进程ID
# -3.强制停止
pkill -9 nginx
# 9、环境变量配置文件
vi /etc/profile
export KE_HOME=/usr/local/kafka-eagle
export PATH=$KE_HOME/bin:$JAVA_HOME/bin:$PATH
# 让配置生效
source /etc/profile
# 10、设置服务开机启动
# mysql服务开机启动
systemctl enable mysqld;
# nginx服务开机启动
systemctl enable nginx;
# 查看开机启动的服务
systemctl list-unit-files
# 过滤,查看已启动的
systemctl list-unit-files | grep enable
# enabled是开机启动,disabled是开机不启动
# 11、设置开机执行脚本
参考搭建jekyll博客的文章,自己百度
# 12、查看linux打开的文件句柄数限制
ulimit -n
1024 # 默认
ulimit -n 20000 # 把限制提升到20000
# 帮助命令man,不会用某个命令,用它查看一下就好
man shutdown
ulimit -a 查看shell的资源限制信息
ulimit -a
free查看内存使用情况
total:表示实际物理内存的大小。可以看到约为32GiB。实际换算下来,内存大小其实是31.19GiB,略小于 本该有的32GiB。这是因为内核在启动时要永久占用一部分。 used:表示正在使用的内存大小,used=total-free-buffer-cache。 free:表示未被使用的内存大小。 shared:多数时候是被临时文件系统(tmpfs)所占用的内存。tmpfs是一种基于内存的文件系统。 buffer:被内核缓冲区所占用的内存。 cache:被page cache和slab所占用的内存。 buff/cache:buffer+cache available:系统估计的可以用于启动新应用程序的内存大小,是一个估计值。available计算时考虑了page cache和slab,虽然这两者是可回收的,但如果正在使用的话,系统是无法回收的。因此available所展示的内存,并不是全部都可以回收使用的。available本身并没有很大的参考价值。 swap:交换分区,是Linux系统中的第二类内存。交换空间的主要功能是在真正的RAM满了之后,系统需要更多内存,将磁盘空间替换为RAM内存。速度比真正的内存要慢。
8、web服务的默认端口
1、HTTP服务器,默认端口号为80/tcp(木马Executor开放此端口) |
---|
2、HTTPS(securely transferring web pages)服务器,默认端口号为443/tcp 443/udp |
3、SOCKS代理协议服务器常用端口号:1080 |
4、FTP(文件传输)协议代理服务器常用端口号:21,远程连接服务器SSH端口号:22 |
5、Telnet(远程登录)协议代理服务器常用端口号:23 |
6、SSH(安全登录)、SCP(文件传输)、端口号重定向,默认的端口号为22/tcp |
7、SMTP Simple Mail Transfer Protocol(E-mail),默认端口号为25/tcp(木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口) |
8、POP3 Post Office Protocol(E-mail),默认端口号为110/tcp |
9、webshpere应用程序,默认端口号为9080 |
10、webshpere管理工具,默认端口号9090 |
11、TOMCAT,默认端口号为8080 |
12、Oracle 数据库,默认的端口号为1521 |
13、Mysql数据库,默认的端口号为3306 |
14、RabbitMQ,server端口5672,控制台端口15672 |
15、Redis默认端口6379 |
16、zookeeper 默认端口2181 |
17、RocketMQ的默认server端口9876,默认borker端口10911 |
9、常见错误
E325:ATTENTION错误解决
当用vim打开一个文件的时候,系统提示: E325:ATTENTION Found a swap by the name “.a.swp”
owned by:……
到所在目录删除swp文件