====== Linux ====== ---- {{ :wiki:linux.png?200|}} Linux是一种自由和[[开源|开放源码]]的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布,在加上用户空间的应用程序之后,成为Linux操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多数Linux系统还包括像提供GUI的X Window之类的程序。除了一部分专家之外,大多数人都是直接使用Linux 发行版(比如国产Linux发行版[[wiki:deepin|Deepin]],国外的Debian,Unbuntu等等),而不是自己选择每一样组件或自行设置。 Linux严格来说是单指操作系统的内核,因操作系统中包含了许多用户图形接口和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,内核则改以Linux内核称之。 Linux是一种开源的操作系统,它可以在各种不同的硬件平台上运行,包括使用RISC-V[[指令集]]的处理器。 ====== 历史 ====== ---- * 1991年8月芬兰赫尔辛基大学的年轻人Linus自己书写了一个保护模式下的操作系统,这就是Linux的原型; * 1991年10月5日,发布了Linux的第一个正式版本:0.02版; * 1994年的3月14日发布了Linux的1.0版; * 1994年11月,Hurd的第一个雏形发表; * 1997年6月发布Hurd的0.2版本。 ====== Linux的版本号 ====== ---- * 内核 vs. 发行版 * 内核版本号:x.y.z 其中y为偶数是稳定版,为奇数是测试版。 * 如:2.6.6 * 内核通常存于:/usr/src/linux * 发行版是内核是其他软件的打包,方便使用者安装。 ====== 文件目录结构 ====== ---- {{ :wiki:linux_folder.png |}} 在 Linux 或 Unix 操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。 文件系统的最顶层是由根目录开始的,系统使用 / 来表示根目录。在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含子目录文件。如此反复就可以构成一个庞大的文件系统。 在Linux文件系统中有两个特殊的目录,一个用户所在的工作目录,也叫当前目录,可以使用一个点 . 来表示;另一个是当前目录的上一级目录,也叫父目录,可以使用两个点 .. 来表示。 . :代表当前的目录,也可以使用 ./ 来表示; .. :代表上一层目录,也可以 ../ 来代表。 如果一个目录或文件名以一个点 . 开始,表示这个目录或文件是一个隐藏目录或文件(如:.bashrc)。即以默认方式查找时,不显示该目录或文件。 ===== 系统启动必须: ===== /boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。 /etc:存放所有的系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。 /lib:存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中 ===== 指令集合: ===== /bin:存放着最常用的程序和指令 /sbin:只有系统管理员能使用的程序和指令。 ===== 外部文件管理: ===== /dev :Device(设备)的缩写, 存放的是Linux的外部设备。注意:在Linux中访问设备和访问文件的方式是相同的。 /media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下。 /mnt:临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。 ===== 临时文件: ===== /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。 /lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。 /tmp:这个目录是用来存放一些临时文件的。 ===== 账户: ===== /root:系统管理员的用户主目录。 /home:用户的主目录,以用户的账号命名的。 /usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。 /usr/bin:系统用户使用的应用程序与指令。 /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。 /usr/src:内核源代码默认的放置目录。 ===== 运行过程中要用: ===== /var:存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。 /proc:管理内存空间!虚拟的目录,是系统内存的映射,我们可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件来做修改。 ===== 扩展用的: ===== /opt:默认是空的,我们安装额外软件可以放在这个里面。 /srv:存放服务启动后需要提取的数据(不用服务器就是空) ====== 常用命令 ====== ---- Linux中的命令格式一般为: ''命令名 选项 参数'' 例如:''ls -l /home'' 如果有多个选项,既可以连在一起写,如''ls -al'',也可以分开写,如''ls -a -l''。 ===== 1 文件管理 ===== ls命令 – 显示指定工作目录下的内容及属性信息 cp命令 – 复制文件或目录 mkdir命令 – 创建目录 mv命令 – 移动或改名文件 pwd命令 – 显示当前路径 ===== 2 文档编辑 ===== cat命令 – 在终端设备上显示文件内容 echo命令 – 输出字符串或提取Shell变量的值 rm命令 – 移除文件或目录 tail命令 – 查看文件尾部内容 grep命令 – 强大的文本搜索工具 ===== 3 系统管理 ===== rpm命令 – RPM软件包管理器 find命令 – 查找和搜索文件 startx命令 – 初始化X-windows uname命令 – 显示系统信息 resize2fs命令 – 调整文件系统大小 ===== 4 磁盘管理 ===== df命令 – 显示磁盘空间使用情况 fdisk命令 – 磁盘分区 lsblk命令 – 查看系统的磁盘 hdparm命令 – 显示与设定硬盘参数 vgextend命令 – 扩展卷组 ===== 5 文件传输 ===== tftp命令 – 上传及下载文件 curl命令 – 文件传输工具 fsck命令 – 检查并修复Linux文件系统 ftpwho命令 – 显示ftp会话信息 lprm命令 – 删除打印队列中的打印任务 ===== 6 网络通讯 ===== ssh命令 – 安全连接客户端 netstat命令 – 显示网络状态 dhclient命令 – 动态获取或释放IP地址 ping命令 – 测试主机间网络连通性 ifconfig命令 – 显示或设置网络设备 ===== 7 设备管理 ===== mount命令 – 文件系统挂载 MAKEDEV命令 – 建立设备 lspci命令 – 显示当前设备所有PCI总线信息 sensors命令 – 检测服务器内部温度及电压 setleds命令 – 设定键盘上方三个 LED 的状态 ===== 8 备份压缩 ===== zip命令 – 压缩文件 unzip命令 – 解压缩zip文件 gzip命令 – 压缩和解压文件 zipinfo命令 – 查看压缩文件信息 gunzip命令 – 解压文件 ===== 9 更多命令 ===== [[wiki:Linux常用命令|更多命令]] ====== 官网 ====== ---- [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/|Linux内核源代码]] [[https://www.kernel.org/|Linux内核官网]]