首页 > 系统相关 >Linux

Linux

时间:2024-10-01 10:23:30浏览次数:8  
标签:文件 grep 查看 Linux 软件包 rpm 目录

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 软件名

标签:文件,grep,查看,Linux,软件包,rpm,目录
From: https://blog.csdn.net/weixin_66331270/article/details/142668272

相关文章

  • Linux: network: /proc/net/sockstat 解读
    怎么解读:sockets:used333833TCP:inuse18017orphan0tw2alloc333609mem232518ChatGPT这些数据是关于系统网络套接字使用情况的统计信息。下面是各项的解释:sockets:used333833:当前系统正在使用的套接字总数为333,833。TCP:inuse18017:表示当前有18,017......
  • linux内核双向链表使用list klist
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、list和klist是什么?二、代码示例1.list2.klist总结前言提示:这里可以添加本文要记录的大概内容:linux内核中大量使用了链表数据结构来存储各种数据,比如device和driver使用klist存储,下......
  • c# - - - .net core 判断程序运行的环境,Windows环境或Linux环境或MacOs环境
    c#.netcore判断程序运行的环境,Windows环境或Linux环境或MacOs环境Codeif(RuntimeInformation.IsOSPlatform(OSPlatform.Linux)){//Linux}elseif(RuntimeInformation.IsOSPlatform(OSPlatform.Windows)){//Windows}elseif(RuntimeInformation.IsOSPlatform(OSPlatfo......
  • LInux基础——裸金属主机重装系统进入kernel Panic
    裸金属主机重装系统进入kernelPanic1、问题描述       租户裸金属主机重装系统,重启后进入”endKernelpanic–notsyncing:Fatalexception”; 2、问题分析  i.内存问题(非此类问题,忽略)     按照问题描述内核回退Calltrace是__pte_alloc内核物理内存调......
  • linux 上安装gitlab代码仓库
    作者:程序那点事儿日期:2024/02/0804:06安装过程安装节点:192.168.43.106wgethttps://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.9.1-ce.0.el7.x86_64.rpmrpm-igitlab-ce-15.9.1-ce.0.el7.x86_64.rpmvim/etc/gitlab/gitlab.rbgitlab-ctl......
  • 安全:linux:列出所有定时运行的任务
    一,用systemctl列出所有timer不加-all参数时,只列出状态active的timer[root@web2314699]#systemctllist-timers-all:列出所有timer,不管是否active[root@web2314699]#systemctllist-timers--all 二,列出所有的crontab中的定时任务1,用脚本列出所有用户的定时任务#!/......
  • Linux-基础篇-磁盘分区,挂载
    Linux分区原理介绍Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录......
  • FME Desktop/Form for Linux快速安装
    太长不看:  FMEFlexnetServer许可证管理器快速安装包,适用于FMEDesktop/Form/Engine/Server:com.safe.fme-flexnet-bbs-20240923.zip  小问题1:由于ArcGIS的一些函数库是Windows下专有的,所以ArcGIS的一些专有格式,FMEforLinux是无法处理的。  小问题2:FMEforLinux......
  • linux: top: 改变排序标准
    一,top的默认排序标准:点击shift+f,会打开选择排序依据的界面,从这个界面可以看到,默认的排序标准是:%CPU二,改变排序标准1,第一种方法:shift+f在打开的界面中用上下左右箭头选择一个标准即可2,快捷键大写M:根据内存排序,默认从大到小,大写R更改为从小到大排序大写P:根据CPU使用排......
  • linux中的信号处理器函数
    信号处理器函数的设计常见的两种信号处理器函数设置全局性标志变量并退出。主程序对此标志进行周期性检查,一旦置位随即采取相应动作。信号处理器函数执行某种类型的清理动作,接着终止进程或者使用非本地跳转将栈解开并将控制返回到主程序中的预定位置。设计原则简洁性......