小故事 发表于 2023-5-22 21:00:26

Linux入门

概述

Linux本质是一个OS,图标是一只企鹅,叫Tux。
Linux发行版本:

[*]Red Hat:收费版 RHEL(Red Hat Enterprise Linux),免费版 fedora(实验版) 和 CentOS。
[*]debian➡ubantu➡Linux Mint,都免费。
[*]SUSE:收费版 SEL(SUSE Enterprise Linux),免费版 open SUSE。
[*]其他:gentoo linux,archlinux➡manjaro。
Linux系统中一切皆文件:
/bin:Binary,存放常用命令
/sbin:Super User Binary,系统管理员的命令
/home:普通用户的目录,每个用户在此目录下有一个以账号命名的文件夹
/root:系统管理员的目录
/lib:系统的基础共享库,几乎所有的程序都用到
/lost+found:一般为空,系统非法关机后会存放一些文件
/etc:配置文件
/usr:用户的很多程序和文件放在此处,类似windows的program files
/boot:存放启动Linux的核心文件,自己安装的别放这
/proc:一个虚拟的目录,是系统内存的映射
/srv:service,存放一些服务启动之后的需要提取的数据
/sys:存放了2.6内核中新出现的一个文件系统sysfs
/tmp:存放临时文件
/dev:类似Windows的设备管理器,将所有硬件用文件形式存储
/media:Linux会将自动识别的设备(U盘、光驱)挂载到此目录下
/mnt:用来让用户挂载别的文件系统
/opt:安装额外软件的目录,比如MySQL
/var:存放不断扩充或经常被修改的东西,比如日志文件
/selinux:SELinux是一种安全子系统,能控制程序只能访问特定文件
Vim

Vim是类Unix系统最常用的文本编辑器
安装命令:
yum -y install vim使用Vim打开文件:
vim a.txt三种模式


[*]一般模式

[*]打开文件后默认的模式
[*]可以删除、复制、粘贴
[*]但是无法编辑文件内容

[*]编辑模式

[*]一般模式下按进入的模式
[*]可以进行文件的编辑
[*]Esc退回一般模式

[*]命令模式

[*]一般模式下按[?、/、:]进入的模式
[*]可以输入一些指令进行操作
[*]比如查找、替换、保存、退出、显示行号等操作
[*]Esc退回一般模式

常用命令

一般模式:
指令功能yy复制当前行y 数字 y从当前行开始复制n行dd删除当前行d 数字 d从当前行开始删除n行p在光标所在行的下一行粘贴u撤销^光标移到行头$光标移到行尾gg光标移到页头G光标移到页尾数字 + G光标移到目标行yw复制一个单词dw删除一个单词X删除一个字母,向前删,类似Backspacex删除一个字母,向后删,类似Del编辑模式:
指令功能i光标前插入I光标所在行的行头插入a光标后插入A光标所在行的行尾插入o下一行插入O上一行插入命令模式:
指令功能:w保存:q退出:!强制执行:%s/旧字符串/新字符串查询替换/字符串查找字符串?字符串查找字符串:set nu显示行号:set nonu不显示行号ZZ:nohl去除高亮显示服务管理命令

临时服务管理

命令功能systemctl --type service查看所有运行中的服务systemctl start 服务名开启服务systemctl stop 服务名停止服务systemctl restart 服务名重启服务systemctl status 服务名查看服务状态服务自启管理

命令功能systemctl list-unit-files查看所有服务自启配置systemctl enable 服务名开启服务自启systemctl disable 服务名关闭服务自启systemctl is-enabled 服务名查看某个服务自启状态建议关闭防火墙自启动
systemctl disable firewalld        关机&重启

命令功能sync将数据从内存同步到硬盘poweroff关闭系统,等价 shutdown -h nowreboot重启系统,等价 shutdown -r nowshudown [选项] [参数]

[*]选项

[*]-h 关机,即 halt
[*]-r 重启,即 reboot

[*]参数

[*]now,立刻
[*]数字,多久后执行,单位分钟

[*]还可以显示提示信息,比如
shutdown -h 3 '系统会在3分钟后关机'
常用快捷键

按键功能Ctrl + c停止进程Ctrl + l清屏,等价命令 clear
彻底清屏是 resetTab提示,防止输错上下键复用执行过的命令Ctrl + AltLinux 和 Windows 之间切换文件目录类

man 获得帮助信息

man 命令名

[*]man 即 manual,手册
help 获得shell内置命令的帮助信息

help 命令名
pwd 显示当前目录的绝对路径

# pwd
/rootls 列出目录的内容

ls [选项] [目录]

[*]选项

[*]-l        列出详细信息,简写为 ll
[*]-a    同时列出隐藏文件

[*]目录

[*]相对路径或绝对路径
[*]若不指定,默认当前目录

文件类型和权限链接数文件属主文件属组文件大小(byte)创建或最近修改时间文件名drwxr-xr-x.2rootroot40965月17 17:47test注意:链接包括硬链接和软链接,文件自身就是一个硬链接,所以链接数都至少为1
cd 切换路径

cd [参数]
参数cd 相对路径/绝对路径切换目录cd ~ 或 cd回到当前用户的家目录cd ..切换到上一级目录cd -切换到上一次所在目录cd -P跳转绝对物理路径,而非快捷方式路径mkdir 创建目录

mkdir [选项] [目录]

[*]选项

[*]-p        创建多层目录

touch 创建空文件

touch [文件名]

[*]可以直接写文件名,会在当前目录下创建
[*]也可写任意已存在目录的路径,在其下创建
cp 复制文件

cp [选项] [源文件或目录] [目标文件或目录]

[*]选项

[*]-r        递归复制整个文件夹

[*]若源文件与目标重名,可选择是否覆盖,也可以用 \cp 命令强制覆盖不提示
rm 删除目录或文件

rm [选项]

[*]选项

[*]-r        递归删除目录所有内容
[*]-f    强制执行不提示
[*]-v    显示指令的详细执行过程

mv 重命名或移动文件

mv oldFile newFile        重命名文件
mv source dest        移动文件
cat 查看小文件

cat [选项] [文件]

[*]一般用来查看一屏可以显示全的文件
[*]选项

[*]-n        查看内容时显示行号

less 查看大文件


[*]不是一次性加载,而是根据现实需要来加载内容,适于大文件
[*]pageup、pagedown翻页
[*]?或/查询文件中是否包含某内容
[*]q离开less程序
echo 向控制台输出内容

echo[选项] [内容]

[*]选项

[*]-e        支持转义字符,比如\t、\n

head 输出文件头部内容

head [选项] [文件]

[*]默认显示文件前十行的内容
[*]选项

[*]-n        指定显示前多少行内容

tail 输出文件尾部内容


[*]默认显示文件尾部十行的内容
[*]选项

[*]-n        指定显示尾部多少行内容
[*]-f    实时追踪该文档的所有更新,经常用来查看日志

> 覆盖 和 >> 追加

ll > a.txt        将ll命令查到的内容覆盖到a.txt中
cat t.txt >> a.txt        将t.txt中的内容追加到a.txt的末尾
ln 软链接

ln -s [源文件或目录] [软链接名]

[*]软链接命名时,可指定创建目录
tar 压缩解压

压缩:tar -zcvf压缩包名.tar.gz需要压缩的内容

[*]设定压缩包名时,可指定压缩包的位置
解压:tar -zxvf压缩包-C 目录

[*]-C用来指定解压的位置
[*]若不加-C,解压到当前目录
选项说明:

[*]-z        打包同时压缩
[*]-c    产生.tar打包文件
[*]-x    解包.tar文件
[*]-v    显示详细信息
[*]-f    指定压缩后的文件名
用户管理类

useradd 添加用户

useradd 用户名

[*]添加新用户
useradd -g 用户组 用户名

[*]添加新用户到某个组
groupadd 添加组

groupadd 用户组名
passwd 修改用户密码

passwd 用户名

[*]设置或更改用户密码
id 查看用户信息

id 用户名

[*]查看用户信息
打开/etc/下的passwd文件能查看创建了哪些用户
打开/etc/下的group文件能查看创建了哪些组
su 切换用户

su 用户名

[*]切换到某个用户
[*]只能获得执行权限,不能获得环境变量
[*]每次切换用户都会嵌套启动一个新的线程,需要用exit一层层退出来
su - 用户名

[*]同时获得执行权限和环境变量
sudo 使用root权限

sudo 让普通用户使用root权限执行一些命令

[*]在/etc/下的sudoers文件91行的root下面添加内容
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
zhangsan      ALL=(ALL)       ALL
[*]或者配置成采用sudo命令时,不需要输入密码
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
zhangsan      ALL=(ALL)       NOPASSWD:ALL
userdel 删除用户

userdel 用户名

[*]删除某个用户但保留用户主目录
userdel -r 用户名

[*]删除某个用户同时删除用户主目录
groupdel 删除组

groupdel 用户组名
usermod 修改用户属组

usermod -g 用户组名 用户名

[*]修改用户所在组,给定的组必须存在
groupmod 修改用户组名

groupmod -n 新组名 旧组名
who 查看当前用户

whoami        显示当前的用户名称
who am i        显示登录时的用户名称
文件权限类

文件属性

ll命令可以查看文件权限,如果没有该权限,对应位置显示 -
文件类型属主权限U属组权限G其他用户权限Od / l / -r-w-xr-w-xr-w-x目录 / 软链接 / 文件读-写-执行读-写-执行读-写-执行rwx作用到文件

[*]r:可读,可以读取、查看
[*]w:可写,可以编辑修改,但不可删除,删除文件需要对文件所在目录有写权限
[*]x:可被系统执行
rwx作用到目录

[*]r:可读,可以ll查看目录内容
[*]w:可写,目录内创建、删除、重命名文件
[*]x:可以进入该目录
chmod 修改文件权限

方式一:chmod [{u g o a} {+ - =} {r w x}] [文件或目录]

[*]u g o a 对应 属主 属组 其他用户 全部
[*]+ - = 对应 增加 删除 设置
[*]r w x 对应 读 写 执行
方式二:chmod [文件或目录]

[*]r w x 分别赋值 4 2 1
chown 改变所有者

chown [选项] [最终用户] [文件或目录]

[*]修改文件或目录(不包括子文件或子目录)的所有者
[*]选项

[*]-R        修改目录的同时作用到其下所有子文件

chgrp 改变所在组

chgrp [最终用户组] [文件或目录]
搜索查找类

find 条件查找

从指定目录下递归的遍历所有文件即子目录
find [搜索范围] [选项]

[*]选项

[*]-name        根据指定文件名查找
[*]-user    根据指定用户名查找
[*]-size    根据指定文件大小查找

grep 过滤查找

通常结合管道符 | 一起使用
选项 -n 显示匹配行和行号
which 查看命令位置

which ll 查看ll命令在哪个文件夹内
进程线程类

ps 查看系统进程

ps -aux | grep xxx 查看系统所有进程,可以查看CPU和RAM占用率
ps -ef | grep xxx 可以查看父子进程之间的关系
kill 终止进程

kill [进程号]

[*]通过进程号杀死进程
[*]选项 -9 强迫进程立即停止
killall [进程名称]

[*]通过进程名杀死进程,支持通配符
[*]用于系统负载过大变得缓慢时
netstat 查看进程网络信息

netstat -anp | grep 进程号

[*]查看进程的网络信息
netstat -nlp | grep 进程号

[*]查看网络端口号的占用情况
选项

[*]-n        不显示别名,能显示数字的全部转化数字
[*]-l    仅列出处于监听下的服务状态
[*]-p    显示正在被哪个进程调用
时间日期类

date 显示当前时间

date [选项] [日期格式]        解释:显示当前时间 日期
date                #显示当前时间
date +%Y       #显示当前年份
date +%m       #显示当前月份
date +%d       #显示当前是本月的哪一天

#组合,根据设定格式显示年月日时分秒,加号别忘了,注意大小写,不能有空格,除非加引号
date +%Y-%m-%d-%H:%M:%S
date +%Y-%m-%d %H:%M:%S #达咩,更正如下
date +%Y-%m-%d" %H:%M:%S" #date显示非当前时间
date -d '2 days ago' #前天时间,单引号
date -d '-1 days gao' #明天时间#date设置系统时间
date -s "2017-5-2 19:32:13"#显示时间戳
date +%scal 显示日历

cal [选项]         解释:查看日历,不加选项显示本月日历
cal                 #显示本月日历
cal 2017        #显示2017年的日历
cal -y                 #显示本年日历crontab系统定时任务

crontab [选项]
#首先查看守护进程crond服务是否开启
systemctl status crond选项

[*]-e        编辑crontab定时任务

[*]此命令会进入vim编辑界面,设置定时任务

[*]-l    查询所有的crontab任务
[*]-r    清空当前用户的所有crontab任务
vim编辑界面中,任务格式为* * * * * 执行的任务
*含义范围第一个 “ * ”一个小时中的第几分钟0—59第二个 “ * ”一天当中的第几小时0—23第三个 “ * ”一个月当中的第几天1—31第四个 “ * ”一年当中的第几个月1—12第五个 “ * ”一周当中的星期几0—7(0 7都代表周日)此外,还有一些特殊符号
特殊符号含义*代表任何时间。比如第二个*代表一天中每小时都执行一次,代表不连续的时间。比如 “0 8,12,16 * * *”代表每天的8点12点16点0分都执行一次-代表连续的时间范围。比如“0 5 * * 1-6”代表在周一到周六的凌晨5点执行一次*/n代表每隔多久执行一次。比如“*/2 * * * *”代表每隔2分钟就执行一次命令软件管理类

RPM 包管理

RPM(RedHat Package Manager),RedHat软件包管理工具,类似win里的setup.exe,是Linux里的打包安装工具。
名称格式
Apache-1.3.23-11.i386.rpm
"Apache"

[*]软件名称
"1.3.23-11"

[*]软件版本号,主版本和此版本
"i386"

[*]软件运行的硬件平台,Intel 32位处理器的统称
"rpm"

[*]文件扩展名,代表RPM包
查询命令
rpm -qa        解释:查询安装的所有rpm软件包
rpm -qi 【软件】        解释:查询某个软件的详细信息
卸载命令
rpm -e 【软件包】        解释:卸载软件包,不用写全名,软件名就可以了
rpm -e --nodeps 【软件包】        解释:不检查依赖,强行卸载,会导致使用该包的软件无法工作
安装命令
rpm -ivh 【RPM包全名】
选项作用-iinstall,安装-v--verbose,显示详细信息-h--hash,显示进度条--nodeps安装前不检查依赖YUM 仓库管理

YUM是一个Shell前端软件包管理器,基于RPM包管理,能从指定服务器自动下载RPM包并安装,可以自动处理依赖性关系,并且一次性安装所有依赖包,无需繁琐的一次次下载安装。
基础命令
yum 【选项】【参数】
选项

[*]-y    对所有提问都回答"yes"
参数作用install安装rpm软件包update更新rpm软件包remove卸载check-update检查是否有可用更新包list显示软件包信息clean清理yum过期的缓存deplist显示yum软件包的所有依赖关系
来源:https://www.cnblogs.com/sipierpoke/p/17421583.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Linux入门