Linux
2022/2/23 7:22:09
本文主要是介绍Linux,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1 Linux入门
1.1 概述
- 类Unix操作系统
- 常用版本:Ubutun、RedHat、CentOS
1.2 Linux和Windows的区别
Windows:收费、封闭、安全性差、PC主流
Linux:免费、开源、安全性较好、服务器主流
2 Linux文件与目录结构
2.1 Linux文件
- Linux系统一切皆文件
2.2 Linux目录结构
/home
/root
/etc
/tmp
/mnt
/opt
3 网络配置和系统管理操作
3.0 原理图
3.1 修改IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
#修改下面两个: BOOTPROTO=static ONBOOT=yes #添加下面的内容: #IP地址 IPADDR=192.168.1.100 #网关 GATEWAY=192.168.20.2 #域名解析器 DNS1=114.114.114.114 DNS2=8.8.8.8
3.2 配置网络接口:ifconfig
ifconfig
3.3测试主机之间网络连通:ping
ping www.baidu.com
3.4 显示和修改系统主机名称
#显示主机名称 hostname #修改hostname文件 vim /etc/hostname
3.5 临时后台服务管理
#功能描述:开启服务 systemctl start 服务名 #功能描述:关闭服务 systemctl stop 服务名 #功能描述:重新启动服务 systemctl restart 服务名 #功能描述:查看服务状态 systemctl status 服务名 #功能描述:查看正在运行的服务 systemctl --type service
3.6 设置后台服务的自启配置
systemctl list-unit-files (功能描述:查看所有服务器自启配置) systemctl disable 服务名 (功能描述:关掉指定服务的自动启动) systemctl enable 服务名 (功能描述:开启指定服务的自动启动) systemctl is-enabled 服务名 (功能描述:查看服务开机启动状态)
3.7 进程运行级别
vim /etc/inittab
3.8 关机重启命令
sync #(功能描述:将数据由内存同步到硬盘中) poweroff #(功能描述:关闭系统,等同于shutdown -h now) reboot #(功能描述:就是重启,等同于 shutdown -r now) #语法:shutdown [选项] [时间] shutdown -h #关机后停机 shutdown -r #关机后重启
4 VI/VIM编辑器
4.1 什么是VI/VIM编辑器
- Linux系统的文本编辑器,VIM由VI发展而来
4.2 一般模式
- 复制、粘贴、删除、撤销、移动
复制: y 复制一个字母 yw 复制一个单词(光标选到首字母) yy 复制整行 2yy 复制2行 粘贴: p 粘贴到光标后 P 粘贴到光标前 删除或剪切: x 往后删除1一个字母 10x 往后删除n个字母 X 往前删除 dd 删除整行 2dd 删除2行 dG 从光标行删到文件尾 替换: r 替换当前字母 R 进入替换模式,ESC结束 撤销: u Ctrl + r 反撤销 移动: ^ 移动到行首 $ 移动到行尾 gg 移动到文件首 G 移动到文件尾 20G 移动到20页
4.3 编辑模式
a 光标后插入 o 另起一行插入 A 行尾插入 i 光标前插入 O 上一行插入 I 行首插入
4.4 命令模式
:w 保存 :q 退出 :! 强制执行 :wq 保存并退出 :wq! 强制保存并推出 ? 查找内容 / 查找内容 :%?/ x/y 将x替换为y ZZ 保存并退出 :syntax on 开启颜色 :syntax off 关闭颜色 :set操作: :set nu 显示行号 :set nonu 不显示行号 :set nohlsearch 取消高亮高亮搜索内容 :set hlsearch 高亮搜索内容 :set ruler 开启右下角状态栏 :set noruler 关闭右下角状态栏 :set showmode 开启左下角状态栏 :set noshowmode 关闭左下角状态栏 :set list 显示隐藏字符 :set nolist 不显示隐藏字符
4.5 模式间转换
5 常用基本命令
5.1 帮助命令
#功能描述:获得帮助信息 #语法:man [命令或配置文件] man ls #功能描述:获得shell内置命令的帮助信息 #语法:help [命令] help cd
#常用快捷键 Ctrl + c #停止进程 Ctrl + l #清屏 Ctrl + q #退出
5.2 文件目录类
#pwd:print working directory 打印工作目录 #功能描述:显示当前工作目录的绝对路径 pwd /root/test #输出结果
#ls:list 列出目录内容 #语法:ls [选项] [目录/文件] -a #显示所有文件及目录 (. 开头的隐藏文件也会列出) -l #除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 #常用命令: ls #列出文件/目录内容 ls -l #长数据串列出,包含文件的属性与权限等等数据;(常用,等于ll) ls -al #长数据串列出全部文件
#cd:Change Directory 切换路径 #语法:cd [参数/路径] cd #回到根目录 cd ~ #回到根目录 cd / #进入根目录 cd - #回到上次所在目录 cd .. #返回上一级目录 #绝对路径和相对路径(重点) / #根目录 ./或. #当前目录 ..或../ #上一级目录
#mkdir:Make directory 建立目录 #语法:mkdir [-p] [目录] mkdir /temp #在当前目录下创建temp目录 mkdir -p /opt/temp #创建多级目录(常用)
#rmdir:Remove directory 移动目录 #rmdir [-p] [目录] rmdir aaa #删除空目录aaa
#rm remove移除文件或目录 #功能描述:递归删除目录中所有内容 #语法:rm [选项] [目录] -i #删除前逐一询问确认。 -f #即使原档案属性设为唯读,亦直接删除,无需逐一确认。 -r #将目录及以下之档案亦逐一删除。 rm -r aaa #删除aaa目录中所有的内容 rm -f aaa #强制删除 rm -rf aaa #强制删除目录及内容并不提示(常用)
#touch 创建空文件(重点) #touch [文件/目录] touch abc.txt #创建abc.txt vim def.txt #创建def.txt并编辑
#cp copy复制文件或目录 #功能描述:复制source文件到dest #cp [选项] [文件] [目录] -d #复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。 -r #若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。 cp -r animal /root #复制整个目录
#mv move移动文件与目录或重命名 #语法:mv [选项] [文件/目录] [文件/目录] -b #当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。 -f #如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。 #功能描述:重命名 #mv [文件] [文件] mv aaa.txt AAA.txt #功能描述:移动文件 #mv [文件] [目录] mv AAA.txt /root
#cat concatenate查看文件内容,从第一行开始显示 #cat [选项] [文件] -n 或 --number #由1开始对所有输出的行数编号。 cat abc.txt #查看abc.txt cat -n abc.txt #查看abc.txt并显示行号
#more 文件内容分屏查看器 #more [选项] [文件] -num #一次显示的行数 +num #从第 num 行开始显示 #常见操作命令 space #向下翻一页 enter #向下翻一行 q #立即离开 Ctrl + f #向下滚一屏 Ctrl + b #返回上一屏 = #输出行号 :f #输出文件名和行号
#less 分屏显示文件内容 #less [选项] [文件] ps -ef | less #ps查看进程信息并通过less分页显示 #常用操作 space #向下翻一页 pageup #向上翻一页 pagedown #向下翻一页 / #查找。n向下查找 q #退出程序
#echo输出内容到控制台 #echo [选项] [输出内容] -e #开启支持\的转义操作 echo -e \\ #输出\ echo -e \\n #换行 echo -e \\t #制表位 echo $PATH #输出Linux的环境变量 echo -e hello\\nworld #hello #world echo -e hello\\tworld #hello world
- 注意:单双引号的区别
- 单引号:引号中的内容不取值
- 双引号:引号中的内容取值
- 着重号:执行命令
#着重号 echo `date` 2022年 02月 22日 星期二 21:20:08 CST #输出结果 #双引号 name=ok echo "$name it is good" ok it is good #输出结果 #单引号 echo '$name it is good' $name it is good #输出结果
#head 显示文件头部内容 #功能描述:默认查看文件头10行内容 #语法:head [选项] [文件] #功能描述:查看文件头5行内容,5可以是任意行数 #语法:head -n 5 [文件] head cat.txt #查看头10行 head -n 5 cat.txt #查看头5行
#tail 输出文件尾部内容 #功能描述:默认查看文件尾10行的内容 #tail [选项] [文件] tail -f cat.txt #显示最新追加内容,追踪文件变化
#> 覆盖 和 >> 追加 #功能描述:列表的内容写入文件a.txt中(覆盖写) ll > aaa.txt #功能描述:列表的内容追加到文件aa.txt的末尾 ll >> aaa.txt #功能描述:将文件1的内容覆盖到文件2 cat aaa.txt > bbb.txt #将echo后的内容追加到文件中 echo helloworld >> aaa.txt
#ln -s软链接 #功能描述:给原文件创建一个软链接 #语法:ln -s [文件/目录] [软链接名] ln -s /root link #给/root创建软连接link ln -s aaa.txt linkaaa #给aaa.txt创建软连接linkaaa #删除软连接,不能带/ rm -rf link #通过软连接查看pwd时,仍然查看到软连接所在目录 #进入软连接的实际路径 cd -P link
#history 查看已经执行过历史命令 history #查看所有历史指令 history 10 #查看最近十条历史指令 !178 #执行编号178条的历史指令
5.3 时间日期类
#date 显示当前时间 date #显示当前时间 date "+%Y-%m-%d %H:%M:%S" #显示年月日时分秒 #date 设置系统时间 #语法:date -s 字符串时间 date -s #"2017-06-19 20:52:18" #date 显示非当前时间 date -d '1 days ago' #显示前一天时间 date -d '-1 days ago' #显示明天时间
#cal 查看日历 #语法:cal [选项] cal #显示当月日历 cal 2022 #显示2022整年的日历
5.4 搜索查找类
#find 查找文件或者目录 #语法:find [搜索范围] [选项] -name 按文件名 -user 按用户名 -size 按文件大小 find ./ -name "*.txt" #查找当前目录下txt后缀的文件 find ./ -user root #查找当前目录下用户名为root的文件 find ./ -size +20M #查找当前目录下大于20M的文件 find ./ -size 20k #查找当前目录下等于20k的文件
#locate 快速定位文件路径 #第一次运行前使用updatedb创建locate数据库 updatedb locate abc.txt #快速定位abc.txt的路径,包括重复的文件
#grep 过滤查找及“|”管道符。将前一个命令的处理结果输出传递给后面的命令处理 #语法:grep [选项] [查找内容] [源文件] grep -n #匹配行号 grep -i #忽略大小写 cat a.txt | grep -ni hello
5.5 压缩和解压类
#gzip/gunzip 压缩 #不能压缩目录,不保留原来的文件 #语法:gzip [文件] gzip aaa.txt aaa.txt.gz #输出结果 #语法:gunzip [文件.gz] gunzip aaa.txt.gz aaa.txt #输出结果
#zip/unzip 压缩 #语法:zip [选项] XXX.zip [文件/目录] #语法:unzip [选项] [解压路径] zip -r #压缩目录 unzip -d #指定解压目录 zip -r package.zip /home #压缩/home目录下所有内容 unzip package.zip -d /home/aaa #将package.zip解压到/home/aaa目录
# tar 打包 tar [选项] XXX.tar.gz [文件/目录] #打包目录,压缩后的文件格式.tar.gz #压缩 tar -zcvf a.tar.gz a1.txt a2.txt #将a1和a2压缩到a.tar.gz tar -zcvf package.tar.gz /home/ #解压 tat -zxvf a.tar.gz -C /home/aaa #将a解压到/home/aaa/
5.6 用户权限
#-rw-r--r--. 1 tom police 231 8月 8 2019 .bashrc #drwxr-xr-x. 3 tom police 18 2月 21 23:10 .cache
- 0首位:表示文件类型
- 普通文件
- d 目录
- l 软连接
- c 字符设备。例如鼠标和键盘
- b 块文件。例如键盘
- 1-3位:表示所属主(所有者)user
- r=4 读
- w=2 写。注意:对于文件的w权限,需要对文件目录也有w权限,才能删除
- x=1 执行
- 4-6位:所属组group
- 7-9位:其他组的用户权限other
- 用户名前数字:
- 如果是文件,表示硬链接的个数
- 如果是目录,表示亩的子目录数
- 组名后面的数字:
- 如果是文件,表示文件大小
- 如果是文件,统一为4096
5.7 用户管理命令
#useradd 添加新用户 #功能描述:添加新用户 #语法:useradd [用户名] useradd tom #添加用户tom #功能描述:添加新用户到某个组(常用) #语法:useradd -g [组名] [用户名] useradd -g police jerry
#passwd 设置用户密码 #passwd [用户名] passwd tom
#id 查看用户是否存在 #id [用户名] id tom #查看创建了哪些用户 cat /etc/passwd #su 切换用户,只能获得用户的执行权限,不能获得环境变量 #su [用户名] su tom
#userdel 删除用户 #功能描述:删除用户但保存用户主目录 #语法:userdel [用户名] userdel tom #删除tom #功能描述:用户和用户主目录,都删除 #语法:userdel -r [用户名] user -r tom #删除tom及其/home下的文件夹
#who 查看登录用户信息 功能描述:显示自身用户名称 #语法:whoami whoami 功能描述:显示登录用户的用户名 #语法:who am i who am i
#usermod 修改用户组 #语法:usermod -g [用户组] [用户名] usermod -g root tom
#sudo 设置普通用户具有root权限 cat /etc/sudoers visudo /root #找到如下 root ALL=(ALL) ALL #添加 #[用户] ALL=(ALL) NOPASSWD:ALL tom ALL=(ALL) NOPASSWD:ALL #登录tom即可删除root权限的文件 sudo rm -rf orange.txt
5.8 用户组管理命令
#groupadd 组的创建 #语法:groupadd [组名] groupadd police
#groupdel 组的删除 #语法:groupdel [组名] groupdel police
#groupmod 修改组名 #语法:groupmod -n [新组名] [老组名] groupmod -n thief police
#查看创建了哪些组 cat /etc/group
5.9 文件权限管理类
#chmod 改变权限 #chmod [{ugoa}{+-=}{rwx}] [文件或目录] chmod u+x apple.txt #使apple.txt所属主有执行权限 chmod g=rwx apple.txt #使apple.txt所属组有读、写、执行权限 chmod o-x apple.txt #使apple.txt其他用户失去执行权限 #语句可以多条用“,”隔开 #chmod [mode=421] [文件或目录] #r=4, w=2, x=1 chmod 777 apple.txt #使apple.txt所属主、组、其他用户都能读、写、执行 chmod -R 777 aaa #修改aaa目录下所有文件/目录的权限
#chgrp 改变文件所属组 #功能描述:改变文件或者目录的所属组 #chgrp [最终用户组] [文件或目录] chgrp thief apple.txt
#chown 改变文件所属主 #功能描述:改变文件或者目录的所有者 #chown [选项] [最终用户] [文件或目录] chown root apple.txt #将apple.txt所有者改为root chown -R tom aaa #将aaa目录下所有文件/目录所有者改为tom
5.10 磁盘分区类
#df 查看磁盘空间使用情况 #功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况 #语法:df [选项] df -h #以可读的方式显示磁盘空间使用情况
#fdisk 查看分区 #功能描述:查看磁盘分区详情 #语法:fdisk [选项] fdisk -l #显示当前分区情况
#mount/umount 挂载/卸载 #语法: mount [-t vfstype] [-o options] device dir mount /dev/hda1 /mnt #将 /dev/hda1 挂在 /mnt 之下 #语法: umount [设备文件名或挂载点]
5.11 进程线程类
#ps 查看当前系统进程状态 #语法:ps [options] ps -aux | grep xxx #查看系统中所有(指定)进程 ps -ef | grep xxx #可以查看(指定)子父进程之间的关系
#pstree 查看进程树 #语法: pstree [选项] pstree -u #显示用户名称
#kill 终止进程 #语法:kill [选项] 进程号 kill -9 5102 #强制关闭进程5102 kill -1 firefox #重新加载firefox
#top 查看系统健康状态 #语法: top [选项] top -d 3 #表示更新周期为3秒
#netstat 显示网络统计信息和端口占用情况 #语法: netstat -anp | grep 进程号 #查看该进程网络信息 netstat -nlp | grep 端口号 #查看网络端口号占用情况
5.12 crond系统定时任务
* * * * * - - - - - | | | | | | | | | +----- 星期中星期几 (0 - 6) (星期天 为0) | | | +---------- 月份 (1 - 12) | | +--------------- 一个月中的第几天 (1 - 31) | +-------------------- 小时 (0 - 23) +------------------------- 分钟 (0 - 59)
#重新启动crond服务 restart crond #crontab 定时任务设置 #语法: crontab [选项] crontab -e #进入vi编辑器编辑定时任务 #例: 0 */2 * * * /sbin/service httpd restart #每两个小时重启一次apache 50 7 * * * /sbin/service sshd start #每天7:50开启ssh服务 50 22 * * * /sbin/service sshd stop #每天22:50关闭ssh服务 0 0 1,15 * * fsck /home #每月1号和15号检查/home 磁盘 1 * * * * /home/bruce/backup #每小时的第一分执行/home/bruce/backup这个文件 30 6 */10 * * ls #每月的1、11、21、31日是的6:30执行一次ls命令
6 软件包管理
6.1 RPM
rpm -qa | grep rpm #查看所有安装的RPM安装包
6.1.1 RPM安装包卸载
#RPM卸载命令 #语法: rpm -e RPM [软件包] #卸载软件 rpm -e --nodeps [软件包] #不检查依赖卸载软件
#RPM安装命令 #语法: rpm -ivh [RPM包全名] rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm #安装firefox
6.2 YUM仓库配置
6.2.1 概述
- 基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
6.2.2 YUM常用命令
yum [选项] [参数] yum update #更新所有软件命令 yum install <package_name> #仅安装指定的软件命令 yum update <package_name> #仅更新指定的软件命令 yum remove <package_name> #删除软件包命令
6.2.3 国内YUM源(非必须)
- 首先备份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
- 下载对应版本 repo 文件, 放入 /etc/yum.repos.d/ (操作前请做好相应备份)
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo mv CentOS6-Base-163.repo CentOS-Base.repo
- 运行以下命令生成缓存
yum clean all yum makecache
这篇关于Linux的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法