Linux从入门到跑路

本文详细介绍了Linux操作系统,包括它的定义、发行版本、内核、开机启动流程和系统运行级别。深入探讨了Linux的目录结构,重点讲解了命令行操作,如命令基本用法、shell、帮助文档、命令技巧以及常用命令的使用,如文件管理、硬件信息查看、权限控制等。此外,还介绍了用户和用户组管理,包括用户账户、权限设置和用户组操作。通过本文,读者可以从零开始掌握Linux操作系统。
摘要由CSDN通过智能技术生成

💖Linux从入门到跑路❤️

文章目录

linux介绍

什么是Linux

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

img

Linux发行版本

Linux发行版 (也被叫做 GNU/Linux 发行版) 通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。

img

Linux发行版本又分为稳定版和开发版,两种版本是相互关联,相互循环:

  • 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序。
  • 开发版:由于要试验各种解决方案,所以变化很快。

Linux的内核是什么?

Linux系统的核心是内核,内核控制着计算机系统上的所有硬件和软件,在有必要时分配硬件,并根据需要时执行软件。

Linux开机启动过程?

  1. 主机加电自检,加载BIOS硬件信息。
  2. 读取MBR的引导文件
  3. 引导Linux内核。
  4. 运行第一个进程init (进程号永远为1)
  5. 进入相应的运行级别。
  6. 运行终端,输入用户名和密码。

Linux系统运行级别

  1. 关机

  2. 单用户模式

  3. 字符界面(不支持网络)

  4. 字符界面

  5. 未分配使用

  6. 图形化界面

  7. 重启

Linux的目录结构

Linux的目录结构

常见目录说明:
  • /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。
  • /bin: /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
  • /boot:放置linux系统启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub。
  • /dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt。
  • /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d。
  • /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,表示当前用户的家目录,edu 表示用户 edu 的家目录。
  • /lib: /usr/lib: /usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助。
  • /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下。
  • /mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载。
  • /opt:给主机额外安装软件所摆放的目录。
  • /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。
  • /root:系统管理员root的家目录。
  • /sbin: /usr/sbin: /usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用。
  • /tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。
  • /srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内。
  • /usr:应用程序存放目录,/usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录。
  • /var:放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。

用户目录

位于/home/user,称之为用户的工作目录或家目录。表示方式:

/home/user
~

从 / 目录开始描述的路径为绝对路径,如:

cd /home
ls /usr

从当前位置开始描述的路径为相对路径,如:

cd ../../
ls abc/def

每个目录下都有**.和…**

. 表示当前目录

… 表示上一级目录,即父目录

根目录下的.和…都表示当前目录

文件的颜色 含义
蓝色 目录
绿色 可执行文件
红色 压缩文件
浅蓝色 链接文件
灰色 其他文件

命令行操作

命令基本用法

Linux命令格式:

command  [-options]  [parameter1]

command:命令名称

[-options]:选项,可以用来对命令进行控制,也可以省略,[]代表可选 parameter1 …:传给命令的参数:可以是零个一个或多个。

什么是shell

在这里插入图片描述

shell也被称为Linux命令的解释器

查看系统默认shell

echo $BASH

查看系统各个版本shell

[root@localhost ~]#cat /etc/shells 
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
更改命令终端颜色

登录Linux后,默认的系统命令提示符没有个性,无法明显辨别生产和测试环境,而导致错误。

可以通过修改PS1变量实现个性提示符格式,避免命令输错终端错误。

默认的提示符

#Centos默认提示符
[root@localhost ~]#
#Ubuntn默认提示符
[yyc@localhost ~]$

@符合前root 代表时当前登录用户

localhost 代表显示系统名称前几位

~ 代表用户在家目录

# 代表是管理员账号 $代表是普通账户

Centos7以上版本设置

# 默认
[root@localhost ~]# echo $PS1
[\u@\h \W]\$
# 实例
[root@localhost ~]#PS1="\[\e[1;35m\][\u@\h \w]\\$\[\e[0m\]"
#永久保存
echo PS1="\[\e[1;35m\][\u@\hw \w]\\$\[\e[0m\]" > /etc/profile.d/test.sh
#提示  [\e[1;35m\]  35为紫色 可进行更改
[root@localhost ~]#echo $PS1
\[\e[1;35m\][\u@\h \w]\$\[\e[0m\]
# 命令行彩色并显示时间模板
[15:04:41 root@Centos8-2 ~]#PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \w\[\e[1;32m\]]\[\e[0m\]\\$"

查看帮助文档

help

一般是linux命令自带的帮助信息

如:ls --help

man(manual)

man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明

该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。

例:man ls ; man 2 printf

man中各个section意义如下:

  1. Standard commands(标准命令)
  2. System calls(系统调用,如open,write)
  3. Library functions(库函数,如printf,fopen)
  4. Special devices(设备文件的说明,/dev下各种设备)
  5. File formats(文件格式,如passwd)
  6. Games and toys(游戏和娱乐)
  7. Miscellaneous(杂项、惯例与协定等,例如Linux档案系统、网络协定、ASCII 码;environ全局变量)
  8. Administrative Commands(管理员命令,如ifconfig)
    man是按照手册的章节号的顺序进行搜索的。

man设置了如下的功能键:

功能键 功能
空格键 显示手册页的下一屏
Enter键 一次滚动手册页的一行
b 回滚一屏
f 前滚一屏
q 退出man命令
h 列出所有功能键
/word 搜索word字符串

注意:实际上,我们不用指定第几个章节也用查看,如,man ls

Linux命令小技巧

设置主机名
# 临时生效
hostname testname

# 永久生效
hostnamectl set-hostname testname

注意:修改主机名只可以使用 字母 数字 和横线。

有些软件对主机名有特殊要求

命令为什么要永久生效

临时生效是保存在运行内存,当系统断电或重启命令会失效,

永久保存相当于把这条命令写到了系统文件中重启完系统不会失效。

tab键自动补全

在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令。

history游览历史

当系统执行过一些命令后,可按上下键翻看以前的命令,history将执行过的命令列举出来

history保留了最近执行的命令记录,默认可以保留1000。
历史清单从0开始编号到最大值。
常见用法:

history N		显示最近N条命令
history -c		清除所有的历史记录
history -w  xxx.txt	保存历史记录到文本xxx.txt
命令行中的ctrl组合键
  • Ctrl+c 结束正在运行的程序

  • Ctrl+d 结束输入或退出shell

  • Ctrl+s 暂停屏幕输出【锁住终端】

  • Ctrl+q 恢复屏幕输出【解锁终端】

  • Ctrl+l 清屏,【是字母L的小写】等同于Clear

  • 当前光标到行首:ctrl+a

  • 当前光标到行尾:ctrl+e

  • 删除当前光标到行首:ctrl+u

  • 删除当前光标到行尾:ctrl+k

  • Ctrl+y 在光标处粘贴剪切的内容

  • Ctrl+r 查找历史命令【输入关键字,就能调出以前执行过的命令】

  • Ctrl+t 调换光标所在处与其之前字符位置,并把光标移到下个字符

  • Ctrl+x+u 撤销操作

  • Ctrl+z 转入后台运行

Linux命令

执行命令

执行命令过程

输入命令后回车,shell程序找到输入命令对应可执行程序或代码,其由分析后提交给内核分配资源并其运行起来。

shell中可执行的两类命令

内部命令:由系统shell自带的,而且通过某命令形式来提供,用户登录后自动加载和常驻在内存中。

外部命令:在系统文件路径下有对应的可执行程序文件,当执行命令时才从磁盘加载到内存中,执行完毕并从内存中删除。

区别命令时内部和外部命令
type 命令

内部命令

[root@localhost ~]#type cd
cd 是 shell 内嵌

外部命令 后面出现路径就是外部命令

[root@localhost ~]#type ssh
ssh 是 /usr/bin/ssh
# 存放外部命令的路径
[root@localhost ~]#echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]#type -a echo
echo 是 shell 内嵌
echo 是 /usr/bin/echo
# echo 是内部命令命令也是外部命令   内部命令执行优先级高

echo 有内部命令命令了,为什么还要有个外部命令?
echo命令比较重要,本终端有不代表别的终端有echo命令
hash缓存表

系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到改命令执行并记录到hash表中,当再次使用该命令时,shell解释器会先查看hash表,存在将执行,如果不存在将会从PATH路径下去寻找,利用hash缓存表可大大提升外部命令调用速率。

  • hash 显示hash缓存
  • hash -d name 清楚name缓存
  • hash -r 清楚全部hash缓存
文件别名

对于经常执行较长的命令,可以将其定义较短或比较容易记住的单词,以方便执行。

# 显示当前shell进程所有可用的命令别称
alias

范例:

alias ho='hostname'
# ho是别名
# hostname是命令
# 扫描新加的磁盘
alias scandisk="echo '- - -' > /sys/class/scsi_host/host0/scan;echo '- - -' > /sys/class/scsi_host/host1/scan;echo '- - -' > /sys/class/scsi_host/host2/scan"
删除别名
ualias  [别名]

注意:在命令行中定义别名,仅对当枪shell进程有效

如果想永久有效,要定义在配置文件中

  • 仅对当前用户:~/.bashrc
  • 对所有用户有效:/etc/bashrc

编辑配置给出的新配置不会立即生效,bash需要重新读取配置文件。

source /etc/bashrc
suorce .bashrc

别名与原始命令重复的话,别名优先级高,想使用的话 ‘原始命令’。

常见硬件信息命令

查看CPU

lscpu命令可以查看CPU信息

cat /proc/cpuinfo 也可以查看到

[20:20:49 root@yyc ~]#lscpu 
Architecture:          x86_64
CPU op-mode(s):        32-bit, 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值