Linux

Linux

什么是Linux?

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户,多任务,支持多线程和多CPU的操作系统。使用者不仅可以直观的获取该操作系统的实现机制,而且可以根据自身的需求来修改完善这个操作系统,使其最大化的适应用户的需求。
Linux系统性能稳定,与其他系统相比,具有开放源码、没有版权,技术社区用户多等特点。其核心防火墙组件性能高效,配置简单,保证了系统的安全。Linux操作系统既可以当作服务器,又可以当作网络防火墙。

Linux的发展历史

Linux的诞生
20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时可供计算机选用的操作系统主要有Unix、DOS和MacOS这几种。Unix价格昂贵,不能运行于PC;DOS显得简陋,且源代码被软件厂商严格保密;MacOS是一种专门用于苹果计算机的操作系统。此时,计算机科学领域迫切需要一个更加完善、强大、廉价和完全开放的操作系统。由于供教学使用的典型操作系统很少,因此当时在荷兰当教授的美国人AndrewS.Tanenbaum编写了一个操作系统,名为MINIX,为了向学生讲述操作系统内部工作原理。MINIX虽然很好,但只是一个用于教学目的的简单操作系统,而不是一个强有力的实用操作系统,然而最大的好处就是公开源代码。全世界学计算机的学生都通过钻研MINIX源代码来了解电脑里运行的MINIX操作系统,芬兰赫尔辛基大学大学二年级的学生Linus Torvalds就是其中一个,在吸收了MINIX精华的基础上,Linus于1991年写出了属于自己的Linux操作系统,版本为Linux0.01,是Linux时代开始的标志。他利用Unix的核心,去除繁杂的核心程序,改写成适用于一般计算机的x86系统,并放在网络上供大家下载,1994年推出完整的核心Version1.0,至此,Linux逐渐成为功能完善、稳定的操作系统,并被广泛使用。

发展史
Linux操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX操作系统、MINIX操作系统、GNU计划,POSIX标准和Internet网络。
1、1984年,Andrew S.Tanenbaum开发了用于教学的UNIX系统,名为Minix。

2、1989年,Andrew S.Tanenbaum将Minix系统运行于X86的PC平台。

3、1990年,芬兰赫尔辛基大学学生Linux Torvalds首次接触Minix系统。

4、1991年,Linux Torvalds开始在Minix上编写各种驱动程序等操作系统内核组件。
5、1991年年底,Linux Torvalds公开了Linux内核源码0.02版。
6、1994年,Linux1.0版本发布。
7、1996年,Linux2.0版本发布。
8、2011年,Linux3.0版本发布。

Linux和Unix的对比

UNIX是一个功能强大、性能全面的多用户、多任务操作系统,可以应用从巨型计算机到普通PC机等多种不同的平台上,是应用面最广、影响力最大的操作系统。Linux是一种外观和性能与UNIX相同或更好的操作系统。

  • Linux不源于任何版本的UNIX的源代码,并不是UNIX,只是一个类似于UNIX的产品。
  • Linux是开放源代码的自由软件,免费、公开源代码,UNIX是对源代码实行知识产权保护的传统商业软件,需要收费。
  • UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上。在对硬件的要求上,Linux比UNIX要低,没有UNIX那么苛刻,易安装。

操作系统

什么是 操纵系统?

操作系统是管理和控制计算机硬件和软件资源的计算机程序,是配置在计算机硬件上的第一层软件,任何其他软件都必须在操作系统的支持下才能运行。
操作系统的主要功能是为了管理硬件资源和为应用程序开发人员提供良好的环境来使用程序具有更好的兼容性,为了达到这个目的,内核提供一系列具备预定功能的多内核函数,通过一组称为系统调用的接口呈现给用户。系统调用把应用程序的请求传给内核,调用相应的内核函数完成所需的处理,将处理的结果返回给应用程序。

系统调用的层级关系(系统组成结构)——硬件层,内核层,系统层,应用层
在这里插入图片描述

操作系统内核的功能有:系统调用接口,程序管理内存管理,虚拟内存----内存交换,文件系统管理,设备驱动。

常见的操作系统

桌面操作系统(个人操作系统)

桌面操作系统主要用于个人计算机上。个人计算机市场从硬件架构上来说主要分为两大阵营,PC机与Mac机,从软件上可主要分为两大类,分别为类Unix操作系统和Windows操作系统:

  • Unix和类Unix操作系统:Mac OS X,Linux发行版(如Debian,Ubuntu,Linux Mint,openSUSE,Fedora等)
  • 微软公司Windows操作系统:Windows XP,Windows Vista,Windows 7,Windows 8,Windows NT等

服务器企业操作系统

  • Unix系列:SUN Solaris,IBM-AIX,HP-UX,FreeBSD等;
  • Linux系列:Red Hat Linux,CentOS,Debian,Ubuntu等;
  • Windows系列:Windows Server 2003,Windows Server 2008,Windows Server 2008 R2等。

嵌入式操作系统

嵌入式操作系统是应用在嵌入式系统的操作系统。嵌入式系统广泛应用在生活的各个方面,涵盖范围从便携设备到大型固定设施,如数码相机、手机、平板电脑、家用电器、医疗设备、交通灯、航空电子设备和工厂控制设备等,越来越多嵌入式系统安装有实时操作系统。
在嵌入式领域常用的操作系统有嵌入式Linux、Windows Embedded、VxWorks等,以及广泛使用在智能手机或平板电脑等消费电子产品的操作系统,如Android、iOS、Symbian、Windows Phone和BlackBerry OS等。

Linux的安装准备工作

windows是64位操作系统 vmware (虚拟主机 ) 主机+1核 +2G +nat+ 光盘镜像文件 .iso (启动盘)+ 磁盘分区 /根 17000 /boot 400M swap[^1]

/ 根分区:所有的文件都保存在根分区下
/boot 分区:(可分可不分) 引导分区,保存引导文件
swap 分区:虚拟内存,当物利内存不够用的情况下,将其充当物利内存使用;某些特定程序会调用虚拟内存,不会调用物理内存,以此来节约物理空间.

  • 确认电脑开启虚拟化功能
  • 退出或者卸载360等等一系列软件
  • 需要的环境:Vmare虚拟化软件(虚拟工具) 10
  • 安装远程连接工具Xshell
  • 新建虚拟机: VMWARE+RHEL8.1
  • Linux8 .iso GUI 自动分区(标准模式 / 20000 /boot 200 swap(虚拟内存:物理内存不够用或者某些特定程序使用)2000 )+1320+root(密码)+redhat(密码)

终端
物理终端 /dev/console : 直接连接在主机上的显示器、键盘鼠标统称。在实际机架式服务器部署中,一般是多台服务器共享一套终端,简称KVM(Keyboard键盘,video显示器,mouse鼠标)
虚拟终端
附加在物理终端之上,用软件方式虚拟实现。
Redhat默认启用6个虚拟终端,可以通过快捷方式切换,切换方式为:Ctrl+Alt+F[1–6],对应的文件是/dev/tty。可以通过tty(teletypewriter)命令查看当前的虚拟终端号

模拟终端切换到虚拟终端:ctrl+alt+F4/F5
虚拟终端切换到模拟终端(图形界面):ctrl+alt+F1 命令:startx

伪终端(远程终端)pty /dev/pts ssh telenet
模拟终端(图形界面下模拟的终端)

为什么要学习Linux

Linux因其高效率、易于裁剪、应用广等优势,成为了当今中高端服务器的主要操作系统,并且处于一个不可替代的地位。Linux也成为了开源软件的代名词,大型互联网网站都在使用的开源软件。

陪伴互联网时代的7大开源软件

  • 最伟大的互联网开源系统Linux

  • 加密互联网的安全协议OpenSSL

  • 数据仓库大王–MySQL

  • 万能开发工具Eclipse

  • 互联网的门卫Apache

  • 大数据的心脏Hadoop

  • 互联网的“排版引擎WebKit

    Linux在服务器领域的发展
    Linux服务器操作系统在整个服务器操作系统市场格局中占据了越来越多的市场份额,已经形成了大规模市场应用的局面。并且保持着快速的增长率。尤其在政府、金融、农业、交通、电信等国家关键领域。
    Linux在桌面领域的发展
    近年来,特别在国内市场,Linux桌面操作系统的发展趋势非常迅猛。国内如中标麒麟Linux、红旗Linux、深度Linux等系统软件厂商都推出的Linux桌面操作系统,目前已经在政府、企业、OEM等领域得到了广泛应用。另外SUSE、Ubuntu也相继推出了基于Linux的桌面系统,特别是Ubuntu Linux,已经积累了大量社区用户。
    Linux在嵌入式系统方面广泛使用及领域的发展
    Linux的低成本、强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用,目前Linux以广泛应用于手机、平板电脑、路由器、电视和电子游戏机等领域。
    Linux在云计算/大数据领域的发展
    Linux在云计算/大数据领域的发展互联网产业的迅猛发展,促使云计算、大数据产业的形成并快速发展,云计算、大数据作为一个基于开源软件的平台,Linux占据了核心优势;据Linux基金会的研究,86%的企业已经使用Linux操作系统进行云计算、大数据平台的构建,目前,Linux已开始取代Unix成为最受青睐的云计算、大数据平台操作系统。

基础命令

你当前用户是谁,你在哪儿,你要做什么

  • 命令格式:主命令 选项 参数(操作对象)
  • linux也可用tab补全命令和路径
  • 当执行一条命令后不能退出时,可按CTRL+C退出
  • 清屏:CTRL+l

命令提示符

[root@localhost ~]#

​ root:标记当前用户
​ @:连接操作,通过用户连接主机名
​ localhost:主机名
​ ~:家目录(用户的目录),当前的位置
​ [用户名@主机名 当前目录]#----#表示管理员 $表示普通用户

显示完整的主机名

[root@localhost ~]# hostname 
localhost.localdomain

​ localdomain域中有一个localhost主机

当前主机运行状态临时更改主机名

[root@localhost ~]# hostname A

更改后并不是立即生效,可以退出重新登录

永久更改主机名(重启生效)

[root@localhost ~]# hostnamectl set-hostname A

打印工作目录(print workdoing directory)

  • root(管理员)目录
[root@localhost ~]# pwd
/root
  • 普通目录
[redhat@localhost ~]$ pwd
/home/redhat

查看主机IP(虚拟机需要连接网络)

[root@localhost ~]# ifconfig
[root@localhost ~]# ip a

ipconfig 该命令能看到数据包传输、接收和响应信息

ip a 改命令只能查看相关参数信息

动态获取IP地址-----主机网卡断开时,会先连接,再次发起请求

[root@localhost ~]# dhclient

当主机已经获取到了IP,想要再次获取,必须释放以前的进程

[root@localhost ~]# kill 4970

强制结束

[root@localhost ~]# kill -9 4970

远程连接协议

telnet:默认端口23,是一种典型的客户机/服务器模型的服务,Telnet 客户端通过 TCP 协议的三次握手与 Telnet 服务器建立连接。

ssh:加密的远程协议

[C:\~]$ ssh 192.168.136.128

以后最好用 ssh用户名@主机

显示所有进程信息

[root@localhost ~]# ps -aux

查看终端设备名称

[root@A ~]# tty
/dev/pts/3

切换用户

su 用户会变,路径不变

[root@A ~]# su wyh
[wyh@A root]$ pwd
/root

标准切换用户

[root@A ~]# su -l wyh
[wyh@A root]$ su
  • su 切换到root用户并不切换环境(工作目录) switch user
  • su redhat 切换root身份,但不切换工作目录(工作路径),还是 /root
  • su - 标准切换到root
  • su - root == su - root 切换到root用户并切换环境(切换了工作目录)
  • su --login redhat 长选项切换到redhat

切换目录(文件夹)-----cd

[root@localhost ~]# cd /
[root@localhost /]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# 

第一个斜杆表示根目录,后面斜杠表示分隔符

[root@localhost ~]# cd /etc
[root@localhost etc]# cd sysconfig/network-scripts/     相对路径切换
[root@localhost network-scripts]# cd /etc
[root@localhost etc]# cd /etc/sysconfig/network-scripts/      绝对路径切换
[root@localhost network-scripts]#

绝对路径 从根开始到目标的路径叫绝对路径
相对路径 相对当前目录开始到目标路径

其他目录切换

  • / 根
  • ~ 家目录 /root /home/redhat
  • ~ USERNAME(root用户有权限) 直接切换到指定用户的家目录
  • — 上一次切换的目录
  • . 当前目录
  • … 上一级目录

修改密码

默认修改当前用户密码:passwd

对指定用户修改密码:passwd 用户名

普通用户只能在自己的当前用户下通过 passwd 修改密码,并且修改前需要输入旧密码,再设置新密码。普通用户不能修改root用户密码,但是root可以更改自己的密码也可以更改其他用户密码,且修改前不需要输入旧密码,也不用遵循密码设置规则。

删除密码

对指定用户删除密码:passwd -d 用户名

破解root密码

  • 重启虚拟机 + e
    在这里插入图片描述

  • 在linux末尾加上 rd.break ctrl+x执行
    在这里插入图片描述

  • mount -o remount,rw /sysroot (根分区 给根系统一个读写权限)

  • chroot /sysroot

  • passwd root 或passwd -d root

  • 输入新密码:

  • 确认密码:

  • touch /.autorelabel 盖章

  • exit

  • exit logout
    在这里插入图片描述

重启

reboot

shutdown -r now

关机

shutdown -h now

poweroff

init 0(关机) init 3(进入重命令行) init 5(进入图像化界面) init1(重启)

查看当前Linux发行版本信息

[root@localhost ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.2 (Ootpa)

内核版本号

[root@localhost ~]# uname -r
4.18.0-147.el8.x86_64

查看进程号

[root@localhost ~]# ps -aux

4主版本号 18子版本号 [0 修正版本号 [147.el. 编译版本号 ]]

列出目录下的内容----ls

  • ls -l 相当于ll 以长列表方式列出

    [root@localhost ~]# ls -l
    total 8
    -rw-------. 1 root root 1492 Feb 23 22:58 anaconda-ks.cfg
    drwxr-xr-x. 2 root root    6 Feb 24 02:40 Desktop
    drwxr-xr-x. 2 root root    6 Feb 24 02:40 Documents
    drwxr-xr-x. 2 root root    6 Feb 24 02:40 Downloads
    drwxr-xr-x. 2 root root    6 Feb 24 16:50 init.d
    -rw-r--r--. 1 root root 1647 Feb 23 23:10 initial-setup-ks.cfg
    drwxr-xr-x. 2 root root    6 Feb 24 16:48 modules
    drwxr-xr-x. 2 root root    6 Feb 24 02:40 Music
    drwxr-xr-x. 2 root root    6 Feb 24 02:40 Pictures
    drwxr-xr-x. 2 root root    6 Feb 24 02:40 Public
    drwxr-xr-x. 2 root root    6 Feb 24 02:40 Templates
    drwxr-xr-x. 2 root root    6 Feb 24 02:40 Videos
    
  • ls -a 列出隐藏文件,包括.和…

    [root@localhost ~]# ls -a
    .                .bashrc  Documents             .local    .tcshrc
    ..               .cache   Downloads             modules   Templates
    anaconda-ks.cfg  .config  .esd_auth             Music     Videos
    .bash_history    .cshrc   .ICEauthority         Pictures  .Xauthority
    .bash_logout     .dbus    init.d                .pki
    .bash_profile    Desktop  initial-setup-ks.cfg  Public
    
  • ls -A 列出隐藏文件,不包括.和…

    [root@localhost ~]# ls -A
    anaconda-ks.cfg  .config    .esd_auth             Music      Videos
    .bash_history    .cshrc     .ICEauthority         Pictures   .Xauthority
    .bash_logout     .dbus      init.d                .pki
    .bash_profile    Desktop    initial-setup-ks.cfg  Public
    .bashrc          Documents  .local                .tcshrc
    .cache           Downloads  modules               Templates
    
  • ls -r 逆序列出

  • ls -ld 查看指定目录.

  • ls -lh 显示目录或文件大小,文件太小时不显示单位

  • ll -i 显示文件索引节点号(inode)。一个索引节点代表一个文件,在linux中保存在磁盘分区中的文件都给它分配一个编号,称为索引节点号inode。

  • alisa 显示命令的别名

    多个选项的可进行缩写,例如 ls -l -a 可写成 ls -la

ls -la 列出的文件中

[root@localhost ~]# ls -la
total 48
dr-xr-x---. 17 root root 4096 Mar  1 17:07 .
dr-xr-xr-x. 17 root root  224 Feb 23 22:46 ..
-rw-------.  1 root root 1492 Feb 23 22:58 anaconda-ks.cfg
-rw-------.  1 root root  729 Feb 25 11:40 .bash_history
-rw-r--r--.  1 root root   18 Aug 13  2018 .bash_logout
-rw-r--r--.  1 root root  176 Aug 13  2018 .bash_profile
-rw-r--r--.  1 root root  176 Aug 13  2018 .bashrc
drwx------. 10 root root  230 Feb 24 02:55 .cache
drwx------. 11 root root  215 Feb 24 02:55 .config
-rw-r--r--.  1 root root  100 Aug 13  2018 .cshrc
drwx------.  3 root root   25 Feb 23 23:00 .dbus
drwxr-xr-x.  2 root root    6 Feb 24 02:40 Desktop

第一列

第一个字符表示Linux 的文件类型

  • — 普通文件,类似于diWindows的记事本 nano cat rm
  • d 目录文件,类似于文件夹 cd
  • l link,链接文件(相当于Windows下面的快捷方式文件) 软链接
  • c 字符设备文件,串行端口设备,顺序读写,键盘
  • b 块设备文件,可供存储的接口设备,随机读写,硬盘
  • p 管道文件,用于进程间的通信
  • s (socket)套接字文件,通常用于网络上的通信。可以启动一个程序来监听客户端的要求,客户端可以通过套接字来进行数据通信

2-11位表示权限标识位

rwx(读,写,执行):所属用户 r-x:所属组 r-x:其他用户 扩展权限标识位 : . 表示没有扩展权限,+表示有扩展权限

第二列

数字表示硬链接次数

第三列

所属用户

第四列

所属组

第五列

文件大小 (最小单位字节)

第六列

文件创建时间,当文件修改后就是文件修改后的时间

第七列

文件名

软链接和硬链接

软链接:文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的"软链接"(soft link)或者"符号链接(symbolic link)。

硬链接:多个文件名指向同一个inode节点号

Unix/Linux系统允许,多个文件名指向同一个inode号码。这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为"硬链接"(hard link)。

ln命令可以创建硬链接:

ln 源文件 目标文件

运行上面这条命令以后,源文件与目标文件的inode号码相同,都指向同一个inode。inode信息中有一项叫做"链接数",记录指向该inode的文件名总数,这时就会增加1。

反过来,删除一个文件名,就会使得inode节点中的"链接数"减1。当这个值减到0,表明没有文件名指向这个inode,系统就会回收这个inode号码,以及其所对应block区域。

这里顺便说一下目录文件的"链接数"。创建目录时,默认会生成两个目录项:".“和”…"。前者的inode号码就是当前目录的inode号码,等同于当前目录的"硬链接";后者的inode号码就是当前目录的父目录的inode号码,等同于父目录的"硬链接"。所以,任何一个目录的"硬链接"总数,总是等于2加上它的子目录总数(含隐藏目录)。

可以通过以下五点来说软链接和硬链接的区别

五点软链接硬链接
概念类似于Windows下面的快捷方式多个文件名指向同一个inode节点号
作用快捷查找备份文件名,防止误删除
应用文本文件,目录文件创建一个文件就是硬链接
区分第一个字符是l就是软链接根据硬链接次数
创建方式ln 原文件 目标文件ln -s 原文件 目标文件

创建文件

[root@localhost ~]# touch file

编辑文件

[root@localhost ~]# nano file 

打开文件

[root@localhost ~]# cat /root/file
this is file

创建软链接

ln -s 原文件 目标文件

[root@localhost ~]# ln -s file file.lnk
[root@localhost ~]# ll
total 12
-rw-------. 1 root root 1492 Feb 23 22:58 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Feb 24 02:40 Desktop
drwxr-xr-x. 2 root root    6 Feb 24 02:40 Documents
drwxr-xr-x. 2 root root    6 Feb 24 02:40 Downloads
-rw-r--r--. 1 root root   13 Mar  1 20:08 file
lrwxrwxrwx. 1 root root    4 Mar  1 20:14 file.lnk -> file

在根下创建软链接

[root@localhost ~]# ln -s /root/file  /file.root.lnk
[root@localhost ~]# ll /
total 28
lrwxrwxrwx.   1 root root    7 Aug 12  2018 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Feb 23 23:00 boot
drwxr-xr-x.  20 root root 3260 Mar  1 17:06 dev
drwxr-xr-x. 138 root root 8192 Feb 25 11:40 etc
lrwxrwxrwx.   1 root root   10 Mar  1 20:18 file.root.lnk -> /root/file

创建硬链接

ln 原文件 目标文件

删除文件

[root@localhost ~]# rm file
rm: remove regular file 'file'? y

[root@localhost ~]# rm /file.root
rm: cannot remove '/file.root': No such file or directory
rm: remove symbolic link '/file.root.lnk'? y

创建目录

硬链接无法创建目录,目录默认的硬链接次数为2

[root@localhost ~]# mkdir dir
[root@localhost ~]# ll
total 8
-rw-------. 1 root root 1492 Feb 23 22:58 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Feb 24 02:40 Desktop
drwxr-xr-x. 2 root root    6 Mar  1 20:32 dir

删除目录

[root@localhost ~]# rm -r dir
rm: remove directory 'dir'? y

查找文件

根据inode查找

[root@localhost ~]# ll -i
total 8
34484539 -rw-------. 1 root root 1492 Feb 23 22:58 anaconda-ks.cfg
34905060 drwxr-xr-x. 2 root root    6 Feb 24 02:40 Desktop
34905061 drwxr-xr-x. 2 root root    6 Feb 24 02:40 Documents
52525543 drwxr-xr-x. 2 root root    6 Feb 24 02:40 Downloads
34905073 -rw-r--r--. 4 root root    0 Mar  1 20:44 f1
34905073 -rw-r--r--. 4 root root    0 Mar  1 20:44 f2
34905073 -rw-r--r--. 4 root root    0 Mar  1 20:44 f3
34905073 -rw-r--r--. 4 root root    0 Mar  1 20:44 f4
34905085 drwxr-xr-x. 2 root root    6 Feb 24 16:50 init.d
34905038 -rw-r--r--. 1 root root 1647 Feb 23 23:10 initial-setup-ks.cfg
34905084 drwxr-xr-x. 2 root root    6 Feb 24 16:48 modules
52529738 drwxr-xr-x. 2 root root    6 Feb 24 02:40 Music
 2147416 drwxr-xr-x. 2 root root    6 Feb 24 02:40 Pictures
17581452 drwxr-xr-x. 2 root root    6 Feb 24 02:40 Public
 2147410 drwxr-xr-x. 2 root root    6 Feb 24 02:40 Templates
17581453 drwxr-xr-x. 2 root root    6 Feb 24 02:40 Videos
[root@localhost ~]# find -inum 34905073 
./f1
./f2
./f3
./f4

根据文件名查找

[root@localhost ~]# find / -name f1
/root/f1
/usr/lib/.build-id/f1
/usr/share/espeak-ng-data/voices/!v/f1

其他查找

  • iname 指定名字进行查找忽略大小写
  • user 查找属主为指定用户的文件# find /tmp -user redhat
  • group 查找属组为指定组的文件
  • uid
  • gid
  • nouser 查找没有属主的文件

时间
显示时间

[root@localhost ~]# date
Thu Mar  4 10:38:18 CST 2021
[root@localhost ~]# clock
2021-03-04 10:37:21.567486+08:00

CST:北京时间
date:查看系统时间
clock:查看硬件时间
hwclock:查看硬件时间
hwclock -s:将系统时间和硬件时间同步,修改的是系统时间

[root@localhost ~]# hwclock
2021-03-04 10:55:45.319912+08:00
[root@localhost ~]# hwclock -s
[root@localhost ~]# date
Thu Mar  4 10:56:18 CST 2021

修改时区

[root@localhost ~]# timedatectl set-timezone Asia/Shanghai

date修改时间----- 月日时分年.秒

[root@localhost ~]# date 111210102021.34
Fri Nov 12 10:10:34 CST 2021

date的其他修改时间方式

  • date -s 只有root才能设置,其他只能查看
  • date -s 20160813 日期为20160813,时间为00:00:00
  • date -s 01:01:01 设置具体时间,不会对日期做修改
  • date -s “01:01:01 2016-08-13” 设置全部时间
  • date -s “01:01:01 20160813” 设置全部时间
  • date -s "2016-08-13 01:01:01 " 设置全部时间
  • date -s "20160813 01:01:01 " 设置全部时间

日历
查看日历

[root@localhost ~]# cal
     March 2021     
Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31                     

显示整个年份的日历
特殊年份是1752

[root@localhost ~]# cal -y
                               2021                               

       January               February                 March       
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                1  2       1  2  3  4  5  6       1  2  3  4  5  6
 3  4  5  6  7  8  9    7  8  9 10 11 12 13    7  8  9 10 11 12 13
10 11 12 13 14 15 16   14 15 16 17 18 19 20   14 15 16 17 18 19 20
17 18 19 20 21 22 23   21 22 23 24 25 26 27   21 22 23 24 25 26 27
24 25 26 27 28 29 30   28                     28 29 30 31         
31                                                                
        April                   May                   June        
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
             1  2  3                      1          1  2  3  4  5
 4  5  6  7  8  9 10    2  3  4  5  6  7  8    6  7  8  9 10 11 12
11 12 13 14 15 16 17    9 10 11 12 13 14 15   13 14 15 16 17 18 19
18 19 20 21 22 23 24   16 17 18 19 20 21 22   20 21 22 23 24 25 26
25 26 27 28 29 30      23 24 25 26 27 28 29   27 28 29 30         
                       30 31                                      
        July                  August                September     
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
             1  2  3    1  2  3  4  5  6  7             1  2  3  4
 4  5  6  7  8  9 10    8  9 10 11 12 13 14    5  6  7  8  9 10 11
11 12 13 14 15 16 17   15 16 17 18 19 20 21   12 13 14 15 16 17 18
18 19 20 21 22 23 24   22 23 24 25 26 27 28   19 20 21 22 23 24 25
25 26 27 28 29 30 31   29 30 31               26 27 28 29 30      
                                                                  
       October               November               December      
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                1  2       1  2  3  4  5  6             1  2  3  4
 3  4  5  6  7  8  9    7  8  9 10 11 12 13    5  6  7  8  9 10 11
10 11 12 13 14 15 16   14 15 16 17 18 19 20   12 13 14 15 16 17 18
17 18 19 20 21 22 23   21 22 23 24 25 26 27   19 20 21 22 23 24 25
24 25 26 27 28 29 30   28 29 30               26 27 28 29 30 31   
31      

显示指定月份的日历

[root@localhost ~]# cal 9 2021
   September 2021   
Su Mo Tu We Th Fr Sa
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30  

将日历显示为天

[root@localhost ~]# cal -j
         March 2021        
Sun Mon Tue Wed Thu Fri Sat
     60  61  62  63  64  65
 66  67  68  69  70  71  72
 73  74  75  76  77  78  79
 80  81  82  83  84  85  86
 87  88  89  90   

cal -1 查看该月的日历
cal -3 查看前一个月,本月,下月的日历

查看命令的帮助
help

[root@localhost ~]# cal --help

Usage:
 cal [options] [[[day] month] year]
 cal [options] <timestamp|monthname>

Display a calendar, or some part of it.
Without any arguments, display the current month.

Options:
 -1, --one             show only a single month (default)
 -3, --three           show three months spanning the date
 -n, --months <num>    show num months starting with date's month
 -S, --span            span the date when displaying multiple months
 -s, --sunday          Sunday as first day of week
 -m, --monday          Monday as first day of week
 -j, --julian          use day-of-year for all calendars
     --reform <val>    Gregorian reform date (1752|gregorian|iso|julian)
     --iso             alias for --reform=iso
 -y, --year            show the whole year
 -Y, --twelve          show the next twelve months
 -w, --week[=<num>]    show US or ISO-8601 week numbers
     --color[=<when>]  colorize messages (auto, always or never)
                         colors are enabled by default

 -h, --help            display this help
 -V, --version         display version

For more details see cal(1).

Usage:介绍命令的用法和格式,如果参数用的方括号,那么方括号里面的内容可写可不写,options为选项

man-----命令手册
man 指定命令:默认为第一章节
man [1-9] 命令:指定某个章节
查看结束后按q退出

man手册章节

  • 1、用户命令,/bin,/usr/bin,/usr/local/bin
  • 2、系统调用系统调用和命令有可能重名,但是不是一回事
  • 3、库调用,只有库才能有库调用
  • 4、特殊文件,如设备文件,系统上的设备文件只是设备的访问入口,文件中不存储任何内容
  • 5、文件格式,配置文件的格式说明,举例passwd /etc/
  • 6、games,游戏,休闲益智类的游戏
  • 7、杂项,不便归类的杂项,Miscellaneous
  • 8、管理命令,/sbin,/usr/sbin,/usr/local/sbin
  • 9、跟kernel有关的文件

手册符号说明

  • [] 可省略
  • <> 必选
  • ··· 多选多
  • { } 分组

翻屏

  • 下翻一页 空格
  • 上翻一页 b
  • 下翻一行 回车
  • 上翻一行 k

查找

  • /KEYWORD 向后
    n 下一个
    N 前一个
  • ?KEYWORD
    N 下一个
    n 上一个

退出
q

判断命令是否执行成功

[root@localhost ~]# echo $?
0
[root@localhost ~]# haha
bash: haha: command not found...
[root@localhost ~]# echo $?
127
[root@localhost ~]# 

echo $?输出为0,则表示上一条命令执行是成功的,显示为其他结果都是错误的。

命令类型-----type 命令
内部命令
help COMMAND
COMMAND --help/h

[root@localhost ~]# type cd
cd is a shell builtin

有shell提示的就是内部命令
外部命令
COMMAND --help

[root@localhost ~]# type passwd
passwd is /usr/bin/passwd

显示路径的就是外部命令

管理文件

列出文件属性

[root@localhost ~]# stat f1
  File: f1
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd00h/64768d	Inode: 34905073    Links: 4
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2021-03-01 20:44:26.713873715 +0800
Modify: 2021-03-01 20:44:26.713873715 +0800
Change: 2021-03-01 20:45:10.415155879 +0800
 Birth: -

Access:访问时间
Modify:修改时间,它的改变发生在文件的内容改变时会改变
Change:改变时间,它的改变发生在文件的元数据改变时改变
Birth:创建时间

数据:文件的内容
元数据:也就是属性,除了文件名和内容以外,文件的显示数据称为元数据

创建文件
文件命名规则

  • 不能使用/来当文件名,/是用来做根的,也是用来做路径分隔符的
  • 文件名不能超过255个字符
  • 区分大小写file File FILE fIle
  • 目录也是文件,在同一路径下,两个文件不能同名

创建多个普通文件:
方法1:touch 文件名1 文件名2 文件名3

[root@localhost ~]# touch a b   /c    /home/redhat

a和b文件没有指定路径,默认创建在家目录下,c和d创建在指定的目录下

方法2:touch {文件名1,文件名2,文件名3}

[root@localhost ~]# touch /home/redhat/{1,2,3,4}

在指定目录下一次性创建多个文件

注意:在Redhat8系统下,touch [1,2,3] 会创建一个名为’[1,2,3]’ 的文件,7版本上会默认省略,不会创建一个名为’[1,2,3]’ 的文件

[root@localhost ~]# touch [1,2,3]
[root@localhost ~]# ll
total 8
-rw-r--r--. 1 root root    0 Mar  4 21:51 '[1,2,3]'

一次性创建多个文件,可用2个·省略中间的数字

[root@localhost ~]# touch {1...10}
[root@localhost ~]# ll
total 8
-rw-r--r--. 1 root root    0 Mar  4 21:54  1
-rw-r--r--. 1 root root    0 Mar  4 21:54  10
-rw-r--r--. 1 root root    0 Mar  4 21:54  2
-rw-r--r--. 1 root root    0 Mar  4 21:54  3
-rw-r--r--. 1 root root    0 Mar  4 21:54  4
-rw-r--r--. 1 root root    0 Mar  4 21:54  5
-rw-r--r--. 1 root root    0 Mar  4 21:54  6
-rw-r--r--. 1 root root    0 Mar  4 21:54  7
-rw-r--r--. 1 root root    0 Mar  4 21:54  8
-rw-r--r--. 1 root root    0 Mar  4 21:54  9

组合的文件名

[root@localhost ~]# touch {a..d}{1..4}
[root@localhost ~]# ll
total 8
-rw-r--r--. 1 root root    0 Mar  4 21:58  a1
-rw-r--r--. 1 root root    0 Mar  4 21:58  a2
-rw-r--r--. 1 root root    0 Mar  4 21:58  a3
-rw-r--r--. 1 root root    0 Mar  4 21:58  a4
-rw-r--r--. 1 root root    0 Mar  4 21:58  b1
-rw-r--r--. 1 root root    0 Mar  4 21:58  b2
-rw-r--r--. 1 root root    0 Mar  4 21:58  b3
-rw-r--r--. 1 root root    0 Mar  4 21:58  b4
-rw-r--r--. 1 root root    0 Mar  4 21:58  c1
-rw-r--r--. 1 root root    0 Mar  4 21:58  c2
-rw-r--r--. 1 root root    0 Mar  4 21:58  c3
-rw-r--r--. 1 root root    0 Mar  4 21:58  c4
-rw-r--r--. 1 root root    0 Mar  4 21:58  d1
-rw-r--r--. 1 root root    0 Mar  4 21:58  d2
-rw-r--r--. 1 root root    0 Mar  4 21:58  d3
-rw-r--r--. 1 root root    0 Mar  4 21:58  d4
-rw-r--r--. 4 root root    0 Mar  1 20:44  f1
-rw-r--r--. 4 root root    0 Mar  1 20:44  f2
-rw-r--r--. 4 root root    0 Mar  1 20:44  f3
-rw-r--r--. 4 root root    0 Mar  1 20:44  f4

179

文件系统

文件系统用于明确存储设备或分区上的文件的方法和数据结ntfs fat32 xfs。

linux层次化文件结构,倒树状结构文件结构。

FHS filesystem hierarchy standard定义了两层规范,第一层是/下面的各个目录应该要放什么文件数据,第二层则是针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登录文件、/usr/share放置共享数据等等。

文件系统层级结构

/Linux文件系统的最上层根目录,其他所有目录均是该目录的子目录
/binBinary的缩写,存放普通用户可执行的程序或命令。usr/bin:系统下所有用户均可执行;usr/sbin:只有当前管理员可执行
/boot存放系统启动时所需的文件,这些文件若损坏常会导致系统无法启动,一般不要改动
/devdev是设备(devic)的英文缩写。包含所有的设备文件
/etc存放了系统管理时要用到的各种配置文件和子目录
home存放一般用户的个人目录
/lib是库(library)英文缩写,存放系统的各种库
/lib64存放系统本身需要用到64位程序的共享函数库
/mnt/media可以临时将别的文件系统挂在这个目录下,即为其他文件系统提供安装点
/opt该目录通常提供给较大型的第三方应用程序使用,例如Sun Staroffice、Corel WordPerfect,这可避免将文件分散至整个文件系统
proc可以在这个目录下获取系统信息。这些信息是在内存中由系统自己产生的
/root超级用户的个人目录,普通用户没有权限访问
/run保存自系统启动以来描述系统信息的文件
/sbin和bin类似,这些文件往往用来进行系统管理,只有root可使用
/srvsrv是服务(server)的简写,启动服务之后需要访问的数据目录
/sys本目录是将内核的一些信息映射文件,以供应用程序所用
/tmp用来存放不同程序执行时产生的临时文件
/home存放一般用户的个人目录
/usr一般用户程序安装所在的目录,用于安装各种应用程序
/var通常各种系统日志文件放在这里

注意
库文件:可以理解为许多程序运行使用相同的代码,并且这些库可以放在一个公共的位置上,以此减少运行程序时的大小
映射文件:就是由一个文件到一块内存的映射。内存映射文件可以保存一个地址空间的区域,将物理存储器提交给此区域
内存文件映射的物理存储器来自一个已经存在于磁盘上的文件

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值