Linux

Linux

Linux的简介

Linux 是一种开源的类 Unix 操作系统。它的历史可以追溯到 20 世纪 60 年代。

Unix 操作系统:一个多用户、多任务的分时操作系统。
允许多个用户同时使用系统,并且可以同时运行多个任务。
分时操作系统的意思是:主机可以同时被多个终端控制,把cpu时间片分给各个终端使用,因为时间片很短,所以各个终端用户以为自己在独占主机。

Linux 有多种发行版本,如 CentOS、Debian、Ubuntu 等。它具有高安全性、高稳定性、易于维护、可在多种硬件上运行、免费开源、保密性好等优点,能很好地运行在多种硬件平台上,并且对硬件的要求很低,功能强大而且架构开放,因此被广泛应用于数据库、桌面应用、云计算、网络服务器、嵌入式系统等多个领域。

为什么不用Windows部署程序,而选择Linux?

  1. 它比Windows安全,只有root用户才能更改系统设置和配置。并且因为它是开源的,大量人员参与了开发,它的大部分漏洞都已被修复。
  2. 它很稳定,Windows在使用一段时间后会变慢,但linux不会。
  3. 完全免费,不用担心闭源的风险。

Linux文件系统

linux的文件系统是树状目录结构,最上面的一层是根目录“/”,在此目录下在创建其他目录。有一句很经典的话,在linux中,一切皆文件。

  • /bin,放着最经常使用的命令。
  • /sbin,s就是super user,放着系统管理员使用的系统管理程序
  • /home,普通用户的主目录
  • /root,系统管理员的主目录
  • /lib,应用程序的运行要用的动态链接共享库。
  • /etc,放配置文件
  • /usr,存放系统自带的应用程序
  • /opt,存放用户安装的第三方软件
  • /var,存放经常被修改的目录,比如日志等
  • /boot,存放启动linux所需要的一些核心文件
  • /proc,系统内存的映射目录,可以访问这个目录来获取系统信息
  • /srv,service的缩写,该目录存放一些服务启动之后需要提取的数据
  • /sys,用于用户空间和内核之间的交互
  • /dev,把所有的硬件用文件的形式存储
  • /media,把识别到的设备挂载到这个目录下
  • /mnt,让用户临时挂载别的文件系统,然后进入目录就可以查看里面的内容了

常用命令

查询IP:ip address

​ ifconfig命令是net-tools工具中的,需要安装。

退出登录:exit
清空屏幕:clear
关机(需要root权限):halt
重启(需要root权限):reboot
切换用户:su - 用户名
查看历史命令:history
查看操作系统的相关信息:cat /etc/os-release
查看系统内核:uname -r
对单个软件包的处理:rpm
对软件包集合及其依赖关系的处理:yum(基于rpm)
管理系统服务:systemctl

文本编辑器

三种模式:
一般模式【默认】:删除(dd:删除当前行,5dd删除5行)、复制(yy:复制当前行,5yy:复制五行)、粘贴§、查找(/关键字,回车查找,n下一个)、到最后一行和最首行(GG和gg),撤销(u)。

编辑模式:一般模式下按i进入,ESC进入一般模式。

命令模式:一般模式下按:进入,ESC进入一般模式。可以执行一些命令:
:wq(保存退出),:q(退出),:q!(强制退出),设置和取消行号(:set nu和:set nonu)。

用户管理

添加用户:useradd 用户名
指定密码:passwd 用户名
删除用户(会保留家目录):userdel 用户名
删除用户(不会保留家目录):userdel -r 用户名
查询用户信息:id 用户名
切换用户:su - 用户名
查看当前用户:who am i
新增组:groupadd 组名
删除组:groupdel 组名
增加用户并指定组:useradd -g 组名 用户名
修改用户的组:usermod -g 组名 用户名
用户和组相关文件:
用户的配置文件:/etc/passwd
密码的配置文件:/etc/shadow
组的配置文件:/etc/group

帮助指令

获取帮助信息:man 命令
获取shell内置命令的帮助信息:help 内置命令

文件目录指令

显示当前所在目录:pwd
列出当前目录下的文件:ls [options] [files]
切换到指定目录:cd [directory]
创建目录:mkdir [options] [directoryName]
创建多级目录:mkdir -p [directoryName]
删除目录:rmdir [options] [directoryName]
删除非空目录 rm -rf [directoryName]
创建文件:touch [fileName]
复制文件:cp [options] [source] [dest]
递归复制整个文件夹 :cp -r [source] [dest]
删除文件:rm [options] [dest]
-r:递归删除
-f:不提示
文件重命名:mv oldNameFile newNameFile
文件移动:mv source target
查看文件内容:
cat [-n] file
more file
less file【推荐】:空格向下翻页,/keyword查找关键词,n向下一个 ,N向上一个,q退出。
head file:查看文件的前10行内容(参数-n 5:查看前5行)
tail file:查看文件的后10行内容
输出内容到控制台(能输出环境变量):echo [options] [content]
输出内容到指定的文件:>(覆盖写入)、>>(追加写入)
eg:
ls -l > file :列表的内容覆盖写入文件中
cat file1 > file2 :文件1的内容覆盖写入到文件2
echo “abc” >> file :将abc追加到文件内容的末尾
创建一个软链接(Windows中的快捷方式):ln -s [原文件或目录] [软连接名]

日期时间

当前时间:date
日历:cal

搜索查找命令

查文件或目录:find [range] [options]
-name
-user
-size
查命令:which [name]
过滤查找:grep [options] 查找内容 源文件。
写法1:cat 1.txt | grep “yes”
写法2: grep “yes” 1.txt
|是管道符,表示将前一个命令的处理结果交给后面的命令处理。

解压缩

对*.gz进行解压缩:gzip/gunzip
对*.zip进行解压缩:zip/unzip
zip [-r:递归压缩] xxx.zip 将要压缩的内容
unzip [-d:存放目录] xxx.zip
打.tar.gz包:tar [options] xxx.tar.gz 打包的内容
-c:产生.tar打包文件
-v:显示详细信息
-f:指定压缩后的文件名
-z:打包同时压缩
-x:解包.tar文件
压缩多个文件:
tar -zcvf 1.tar.gz 1.txt 2.txt 3.txt
将1.tar.gz解压到当前目录:
tar -zxvf 1.tar.gz
将1.tar.gz解压到/jasmin/app目录
tar -zxvf 1.tar.gz -C /jasmin/app

组管理和权限管理

组管理

谁创建了文件,谁就是这个文件的所有者,文件的所在组默认是该用户的所在组。

查看文件的所有者:ls -ahl

修改文件的权限:chmod 权限 文件名

改变文件的所有者:chown 用户 文件名

修改文件的所在组:chgrp 组名 文件名

改变用户的组:usermod -g 组名 用户名

权限管理

ls -l会有下面结果:

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

0~9位说明:

​ 第0位确定文件类型:l是链接(类似于windows的快捷方式),d是目录,c是字符设备文件(鼠标键盘),b是块设备(比如硬盘)

​ 第1~3位所有者拥有该文件的权限,

​ 第4~6位是所属组(同组的其他成员)拥有该文件的权限,

​ 第7~9位是其他用户(非同组)拥有该文件的权限。

其他说明:

​ 1 文件:硬连接数 。 目录:子目录数

​ root 用户

​ root 组

​ 1213 文件大小(字节)

​ Feb 2 09:39 最后修改日期

​ abc 文件名

rwx权限详解:

​ rwx作用到文件:

​ r:读取查看

​ w:可写文件内容,但不代表可删,删除一个文件的前提是对这个文件所在的目录有可写权限。

​ x:可以执行该文件

​ rwx作用于目录:

​ r:可以读取,ls查看目录内容

​ w:可以修改,对目录中的文件进行创建、删除和重命名

​ x:可以进入该目录

修改权限

修改文件和目录的权限(两种方式):

u:所有者、g:所有组、o:其他人 、a:所有人(u、g、o总和)

​ 第一种:通过±=

​ 1):chmod u=rwx,g=rx,o=r 文件名

​ 2):chmod u-x 文件名

​ 3):chmod o+w 文件名

​ 第二种:通过数字变更权限

​ r=4 w=2 x=1 rwx=4+2+1=7 rw=6 rx=5

​ eg:把abc.txt文件的权限修改为rwxr-xr-x,使用数字的方式实现。

​ chmod 755 abc.txt

修改文件的所有者:chown 所有者 文件

-R 如果是目录,则使其下面的所有子文件和子目录递归生效。

eg:将/home/test下的所有文件和目录的所有者都修改为tom

chown -R tom /home/test

修改文件的所在组:chgrp 所在组 文件

eg:将/home/test下的所有文件和目录的所在组都修改为shaoling

chgrp -R shaoling /home/test

修改文件的所有者和所在组:chown 所有者:所在组 文件

定时任务调度

crond定时调度

crontab [选项]

-e :编辑crontab定时任务

-l :查询crontab任务

-r :终止任务调度

重启任务调度:service crond restart

任务调度文件:/etc/crontab

设置个人任务调度:

  1. 执行crontab -e 命令

  2. 输入任务到调度文件
    eg:*/1 * * * * ls -l /etc > /tmp/to.txt

    每小时的每分钟执行ls -l /etc > /tmp/to.txt这个命令。

参数细节说明:

在这里插入图片描述
在这里插入图片描述

at定时任务

at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行,所以在使用at命令时,一定要保证atd进程的启动。

检查atd进程是否启动:ps -ef | grep atd

设置定时任务:at [选项] [时间]

ctrl + D结束at命令的输入,输出两次

查看未执行的定时任务:atq

删除已经设置的任务:atrm 编号

在这里插入图片描述

在这里插入图片描述

是“End of transmission”表示传输结束的意思。

磁盘分区、挂载

查看系统整体磁盘的使用情况: df -h

查看指定目录的磁盘占用情况(默认为当前目录):du -h

​ 参数:-h:带计量单位、-a:含文件、-c:列出明细的同时增加汇总值、–max-depth=1 子目录深度为1

工作实用指令(以/opt文件夹举例):

wc -l 文件:统计文件中的行数

  1. 统计文件个数:ls -l /opt | grep “^-” | wc -l
  2. 统计目录个数:ls -l /opt | grep “^d” | wc -l
  3. 统计文件个数,包括子文件夹里的:ls -lR | grep “^-” | wc -l
  4. 统计目录个数,包括子文件夹里的:ls -lR | grep “^d” | wc -l
  5. 以树状显示目录结构:tree 目录,(如果没有tree命令,使用yum install tree安装)

网络

查看网络配置:ifconfig

查看和目的主机的网络是否连通:ping 目的主机

主机名解析过程分析:

hosts文件:用来记录IP(10.15.131.08)和主机名(www.baidu.com)映射关系的文本文件。

DNS(域名系统):是互联网上记录域名和IP地址映射的一个分布式数据库。

eg:用户在浏览器输入了www.baidu.com

在这里插入图片描述

在这里插入图片描述

监控网络状态:netstat [选项]

​ -an:按一定顺序排列输出

​ -p:显示哪个进程在调用

eg:查看服务名为sshd的服务的网络使用信息

netstat -anp |grep sshd

进程管理

每个执行的程序都称为一个进程,每个进程都会分配一个ID号。

查看系统中正在执行的进程:ps 参数

​ -a :显示当前终端的所有进程信息

​ -u :以用户的格式显示进程信息

​ -x :显示后台进程运行的参数

在这里插入图片描述

以全格式显示当前所有的进程:ps -ef

​ -e:显示所有进程

​ -f:全格式

ps -ef | grep sshd

杀死进程:

​ kill [选项] 进程号

​ -9:强迫进程立即停止

​ killall 进程名称(支持通配符,这在系统因负载过大而变得很慢时很有用)

查看进程树:pstree [选项]

​ -p:显示进程的PID

​ -u:显示进程的所属用户

动态显示进程:top [选项]

​ -d 秒数:指定每隔几秒更新,默认是3秒

​ -i:不显示任何闲置或者僵死进程

​ -p:通过指定监控进程ID来仅仅监控某个进程的状态

交互:

​ P:以CPU使用率排序(默认)

​ M:以内存使用率排序

​ N:以PID排序

​ q:退出top

服务管理

service的本质就是运行在后台的进程,通常会监听某个端口,等待其他程序的请求,比如(mysqld,sshd,防火墙等)。

service管理指令:

​ service 服务名 [start|stop|restart|reload|status]

查看service指令管理的服务:ls -l /etc/init.d

CentOS7.0以后,很多服务是通过systemctl来管理的。

systemctl管理指令:

systemctl [start|stop|restart|status] 服务名

查看systemctl指令管理的服务:ls -l /usr/lib/systemd/system

systemctl设置服务的自启动状态:

查看服务的开启启动状态:systemctl list-unit-files [|grep 服务名]

设置开机启动:systemctl enable 服务名

关闭开机启动:systemctl disable 服务名

查询某个服务是否是自启动的:systemctl is-enabled 服务名

eg:

查看当前防火墙的状态:systemctl status firewalld

关闭防火墙:systemctl stop firewalld

开启防火墙:systemctl start firewalld

在真实生产环境中,防火墙打开后,外部请求的数据包就不能跟服务器监听端口通讯,这是需要防火墙打开指定的端口。

打开端口:firewall-cmd --permanent --add-port=端口号/协议

关闭端口:firewall-cmd --permanent --remove-port=端口号/协议

重新载入,才能生效:firewall-cmd --reload

查询端口是否开放:firewall-cmd --query-port=端口号/协议

RPM和YUM

rpm

查询安装的所有rpm软件包:rpm -qa

查询是否安装了某个软件:rpm -qa|grep 软件名

查询软件包信息:rpm -qi 软件包名

查询软件包中的文件: rpm -ql 软件包名

查询文件所属的软件包:npm -qf 文件全路径名

卸载rpm包:rpm -e 软件包名

安装rpm包:rpm -ivh RPM包全路径名称

​ 参数说明:-i(install):安装、-v(verbose):提示、-h(hash):进度条

rpm包名的基本格式:firefox-60.2.2-1.el7.centos.x86_64

名称:firefox

版本号:60.2.2-1

适用操作系统:el7.centos.x86_64(CentOS7的64位)

如果是i686、i386表示的是32位系统、noarch表示通用。

yum

yum基于npm,能够管理软件包集合及其依赖关系。

查看yum服务器是否有需要安装的软件:yum list|grep 软件名

安装指定的yum包:yum install 软件名
协议

RPM和YUM

rpm

查询安装的所有rpm软件包:rpm -qa

查询是否安装了某个软件:rpm -qa|grep 软件名

查询软件包信息:rpm -qi 软件包名

查询软件包中的文件: rpm -ql 软件包名

查询文件所属的软件包:npm -qf 文件全路径名

卸载rpm包:rpm -e 软件包名

安装rpm包:rpm -ivh RPM包全路径名称

​ 参数说明:-i(install):安装、-v(verbose):提示、-h(hash):进度条

rpm包名的基本格式:firefox-60.2.2-1.el7.centos.x86_64

名称:firefox

版本号:60.2.2-1

适用操作系统:el7.centos.x86_64(CentOS7的64位)

如果是i686、i386表示的是32位系统、noarch表示通用。

yum

yum基于npm,能够管理软件包集合及其依赖关系。

查看yum服务器是否有需要安装的软件:yum list|grep 软件名

安装指定的yum包:yum install 软件名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值