linux知识点总结

02.安装CentOS无界面版 安装
使用Vmware安装CentOS
打开虚拟机
文件 → 新建虚拟机(直接点击创建新的虚拟机图标)

选择典型(推荐)→下一步(Next)

点击稍后安装操作系统

选择操作系统和版本→下一步(Next)
首先选择安装的系统是Linux系统。
之后选择安装的Linux版本是CentOS。

输入虚拟机名称和安装路径

设置磁盘大小(20G左右)

自定义硬件(选择CentOS)

CentOS安装镜像文件→关闭

点击完成finish

双击开启

待自动安装

条过媒体检查→Skip

选择中文简体和美国英语

选择基本存储设备

选择忽略所有数据
格式化磁盘。

输入主机名称和进行网络配置

进行网络配置:


之后的时间选择为默认时间(亚洲/上海)。

设置账号密码
设置root用户的密码

选择空间

写入磁盘

选择基本服务器
选择base server表示选择一个基本的,不带界面的CentOS系统。

如果想要安装带界面的系统(不推荐,Linux我们很少使用界面),选择“desktop”版。

等待安装中……

重新引入系统

登录系统

到此CentOS无界面系统以及安装成功了。

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

硬件:框架
冯诺依曼体系结构:
1946年美籍凶牙利科学家冯诺依曼提出存储程序原理,把程序本身当做数据来对待,程序和该程序处理数据用同样的方式存储,并确定了存储程序计算机的五大组成部分和基本工作方法。
特点:
(1)计算机处理数据和指令一律用二进制数表示
(2)顺序执行程序
计算机运行过程中,把要执行的程序和处理的数据首先存入主存储器(内存),计算机执行程序时,将自动地并按顺序 从主存储器中取出指令一条一条的执行,这一概念称为顺序执行程序。
(3)计算机硬件由运算器、控制器、存储器、输入设备、输出设备五大部分组成。

memory:编址存储设备
假设我们的存储器为一个长条,其中每八位(bit)作为一个单元,我们把它称为字节byte,字节又称为cell。

机器语言:二进制指令 (但是对于编程 人员来说二进制语言太难懂(太简陋,太底层),但是程序员想用简单点的语言去描述计算机又不懂所以两者之间不能耦合可以加一个中间层–编译器)
汇编语言: 仅是将二进制转为人类语言想接近的语言或者是与人类语言符号相同的类型(+ and/plus)
所以任何一款芯片制造商他们都把机器的代码也就是机器语言提供一个较为简单的稍微向上一点的但任然很简陋的编程接口叫做汇编语言(微码编程语言)

软件:
----汇编语言: (低级语言)
应用:驱动程序
汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
eg:操作:寄存器BX的内容送到AX中
1000100111011000 机器指令
mov ax,bx 汇编指令
(注意:最终识别的还是01二进制数所以还需要将汇编语言转换为二进语言所以需要用到汇编器)
----(高级语言):比较接近人类的思维逻辑 ----(编译器)
系统级: c c++
适用场合大型的对性能要求比较高的服务类程序 如:oracle mysql linux windows /
应用级:java python ruby
2.系统调用的层级关系(系统组成结构)

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

3.Linux简史
Linux 操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU计划、POSIX 标准和Internet 网络。
linux来源于哪里?为什么linux是免费的?
linux的发展历史
1969年 ken.Thompson

1972年 Dennis Ritchie 用c语言改写Unix
1984年 Richard M.Stallman 创办GNU计划和自由软件基金会,旨在开发一个类似 Unix、并且是自由软件的完整操作系统:GNU 系统,bash工作环境,gcc编译程序等自由软件GPL
1987年 Andrew S. Tanenbaum Minix
1991年 Linus Benedict Torvalds Linux
1994年 Bob Young Marc Ewing RedHat(Linux的发行版之一),是世界上最大的开放源代码的公司之一。
4. linux主要特性
1.基本思想(一切皆文件)
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
2.完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
3.完全兼容POSIX1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
4.多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
5.良好的界面
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。
6.支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。常见的操作系统:UNIX、Linux类、MacOS、Windows类、iOS、Android、WP、ChromeOS
linux严格来说只是linux内核,我们通常说的linux其实都是基于linux内核的一个发行版本的操作系统。linux这些发行版都是免费使用和自由传播的操作系统并且Linux发行版在服务器上已成为主流的操作系统。

5.操作系统分类:

桌面操作系统(个人操作系统)
window dos 95 98 2000 2003 Vista xp 7 8 10 架构上 16 32 64位
Mac OS (狮子 雪豹–版本)
手机: Android(谷歌) IOS(苹果) window phone(微软)–诺基亚 Sysbian(诺基亚) BlackBerry OS (黑莓)linux

服务器企业操作系统 (塔式、刀片式、机架式、小型机、大型机)
大型机:通常用于政府、银行、交通、保险公司和大型制造企业。特点是处理数据能力强大、稳定性和安全性又非常高。
windows server (2003 2008)
linux redhat linux、 centos linux、 fedora linux 、suse linux、 Debian linux 、 Ubuntu linux kali
unix IBM-AIX HP-UX sun-Solaris 小型机–迷你裙 (约翰-哥伦将)
Ken Tompson —unics
Dennis Ritchie ----c/unix minx
林纳斯•本纳第克特•托瓦兹 —linux
Richard Stallman史托曼 —GNU计划 gcc
为什么我们要学习红帽的linux操作系统?红帽主要是做什么的?
redhat 全球最大的开源技术厂家;云、虚拟化、存储、Linux 和中间件技术。redhat linux是全球应用最广泛的linux;
1)UNIX是商业软件,而Linux是开放源代码,免费的,自由软件。
2)UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上.
6.linux的安装准备工作:
windows是64位操作系统
确认电脑开启虚拟化功能
内存最少2G
1、退出或者卸载360等等一系列软件
2、需要的环境:Vmare虚拟化软件(虚拟工具)
3、安装远程连接工具Xshell
4、新建虚拟机:

终端
物理终端 /dev/console
直接连接在主机上的显示器、键盘鼠标统称。在实际机架式服务器部署中,
一般是多台服务器共享一套终端,
简称KVM(Keyboard键盘,video显示器,mouse鼠标)
虚拟终端 /dev/tty
默认有6个
ctrl + alt +f1/2/3/4/5/6
同一台终端(物理设备)上虚拟出多个终端,它们之间互相不影响,至少看起来互相不影响。这些终端就是虚拟终端
附加在物理终端之上,用软件方式虚拟实现,Redhat默认启用6个虚拟终端,
可以通过快捷键来切换,切换方式:Ctrl-Alt-F[1–6], 对应的文件是/dev/tty#。
可以同过tty命令来查看当前的虚拟终端号。tty是teletypewriter的简称。
伪终端(远程终端)pty /dev/pts ssh telenet
模拟终端
是一个程序,这些程序用来模拟物理终端
两种应用场景,第一在图形界面下打开的命令行接口,第二基于ssh协议或telnet协议等远程打开的命令行界面,
是运维工程师用的最多的一种连接服务器的方式。pts(pseudo-terminal slave)是pty的实现方法。

GUI (Graphical User Interface) 图形用户界面 对于一些初学者
Gnome: C
KDE : C++
XFace: 轻量级的

CLI (command line interface) 命令行界面 liunx主打命令行操作
bash shell
csh shell
zsh shell
ksh shell
tcsh shell
sh shell

快照
xshell进行远程登录
Linux的基本原则
1、由目的单一的小程序组成
2、一切皆文件,设备的访问入口也是文件
3、避免捕获用户接口,尽量不和用户交互
4、配置文件保存在纯文本格式,只要有一个文本编辑器,足以搞定所有的配置。
命令格式

命令
命令 参数
命令 -选项
命令 -选项 参数

修改命令的执行特性
短选项 -l
多个选项可以组合
长格式 --long
参数 指定命令的作用对象

=============
基础命令
#ip a /ifconfig 查看IP地址
#dhclient 开启网络连接
#kill-9 ID 结束指定进程 只能是管理员操作普通用户没有权限
Xmanager中的Xshell软件连接到模拟器用户主机:ssh 192.168.220.128
:ssh licong@192.168.220.128
[root@localhost ~]#
用户名 @主机名 打开目录位 置 #管理用户/$普通用户
[root@localhost ~]#pwd 打印目录信息
家目录 :创建一个用户时就会产生一个和用户名相同的目录叫做家目录——一个普通的文件夹
su licong 切换用户但是工作目录没有切换
su -l licong 切换用户 工作目录也随之切换(l可以省略)
[root@localhost 公共]# echo $PATH查看工作环境
ip a 查看ip地址
dhclient 地址请求
kill -9 ID 结束相应的进程
pwd 指出当前工作环境 print workdoing directory
su 切换到root用户并不切换环境(工作目录) switch user
su root 切换用户身份但不切换目录
su - root 切换到root用户并切换环境(切换了工作目录)

cd 切换目录 change directroy
绝对路径 从根开始到目标的路径叫绝对路径
相对路径 相对当前目录开始到目标路径
/ 根
~ 家目录 /root /home/redhat
~ USERNAME(root用户有权限) 直接切换到指定用户的家目录
- 在上一个目录和当前目录来回切换
. 当前目录
… 上一级目录
passwd
修改密码:passwd 用户名 直接输入passwd修改当前用户的密码
删除密码:passwd -d 用户名
root用户:不需要输入原密码,可以不符合密码复杂性规则,可以给任何人修改密码
普通用户:需要输入原密码,必须符合密码复杂性规则,passwd修改密码无法指定用户
[student@localhost ~]$ su -c passwd普通用户给root用户修改密码

破解密码
1.Reboot the system.
2.Interrupt the boot loader count down by pressing anykey.
3.Move the cursor to the entry that needs to be booted.
4.Press “e” to edit the select edentry.
5.Move the cursor to the kernel command line(the line that start swith linux16.
6.Append rd.break
7.Press Ctrl+x to start.
8.Remount /sysroot as read-write.
switch_root:/# mount -o remount,rw /sysroot

9.Switch into a chroot jail, where /sysroot is treated as the root of the filesystem tree
switch_root:/# chroot /sysroot
10.Set a new root password:
sh-4.2# passwd [root] (change the root password)
or
sh-4.2# passwd -d root (delete the root password)
11.Make sure that all unlabeled files (including/etc/shadow at this point)get relabeled during boot.
sh-4.2# touch /.autorelabel
12. sh-4.2# exit
13. switch_root:/# exit

eg:破解root密码:
1、重启虚拟机
2、在linux16末尾加上 rd.break,ctrl+x执行
3、mount -o remount,rw /sysroot
4、chroot /sysroot
5、passwd root
6、输入新密码:
7、确认密码
8、touch /.autorelabel
9、exit
10、exit
重启:reboot
关机:shutdown -h now,poweroff
查看当前Linux发行版本信息:cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)

[root@localhost 桌面]# uname -r 内核版本号
3.10.0-327.el7.x86_64 主版本号 . 子版本号 [ 修正版本号 [. 编译版本号 ]]
3主版本号
10次版本号,一般偶数表示较稳定版本
0修订版本号
327.el7 表示修改了327次
1.项目初版本时,版本号可以为 0.1 或 0.1.0,也可以为 1.0 或 1.0.0
2.当项目在进行了重大修改或局部修正累积较多,而导致项目整体发生全局变化时,主版本号加 1;
3.当项目在原有的基础上增加了部分功能时,主版本号不变,子版本号加 1,修正版本号复位为 0,因而可以被忽略掉 ;
4.当项目在进行了局部修改或 bug 修正时,主版本号和子版本号都不变,修正版本号加 1;
5.另外,编译版本号一般是编译器在编译过程中自动生成的,我们只定义其格式,并不进行人为控制 .
基础命令
命令格式:主命令 选项 参数(操作对象)
列出目录下的内容(list):ls
ls -l 以长列表方式列出 =ll
ls -r 逆序列出
ls -d 查看当前目录.
ls -ld 长列表列出当前目录的详细信息
ls -lh 显示目录或文件大小
ls -a 列出隐藏文件,包括.和…
ls -A 列出隐藏文件,不包括.和…
ls -i 显示文件索引节点号(inode)。一个索引节点代表一个文件,在linux中保存在磁盘分区中的文件都给它分配一个编号,称为索引节点号inode。
man ls 查看ls的使用手册
enter键可以一行一行的翻,空格键可以一页一页的翻
按q键退出
linux的文件类型:

  •    普通文件,类似于Windows的记事本
    

d 目录文件,类似于文件夹
c 字符设备文件,串行端口设备,顺序读写,键盘
b 块设备文件,可供存储的接口设备,随机读写,硬盘
p 管道文件,用于进程间的通信
l link,链接文件
s 套接字文件,通常用于网络上的通信。可以启动一个程序来监听客户端的要求,客户端可以通过套接字来进行数据通信
-rw-------. 1 root root 1789 1月 13 13:47 anaconda-ks.cfg
drwxr-xr-x. 2 root root 6 1月 13 11:46 公共
rwx rwx rwx .
权限标识符 rwx
所属用户标识位
所属组标识位
. 扩展权限标识位(没有)

  • 添加了扩展权限

硬链接次数
所属用户 所属组
大小 byte
创建时间(最后一次修改文件时间)

2-10 文件权限 rwx
. acl 扩展权限
硬链接次数 (备份文件 内容是同步变化的)
所属用户 所属组
大小
时间
文件、目录名

在linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号inode。
(1)符号链接又叫软链接,和原文件不是一个文件。例如Windows的快捷方式,如果原始文件被删除,所有指向它的符号链接也就都被破坏了。符号链接记录的是目标的path。符号链接可以跨越文件系统,也可以为目录建立。软链接有自己的node,是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径。
创建链接文件:ln -s 原文件 链接文件
(2)硬链接,只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。当移动或者删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接记录的是目标的inode
创建硬链接: ln 原文件 新文件

如何创建软硬连接ln
eg:在root家目录创建文件file, 在/目录下创建file文件的软链接文件haha
~]#touch file
/]#ln -s /root/file haha
~]#ln -s file /haha
touch 文件名 创建文件
ln 原文件 目标文件 创建硬链接
ln -s 原文件 目标文件
nano 文件名 编辑文件
cat 文件名 查看文件
rm 文件 删除文件
which 查找命令路径
which 只想查看命令路径但是不想查看别名路径
#\which ls
#which --skip-alias ls
who 查看谁登陆到当前系统相关用户信息
root :0 2019-03-17 09:58 (:0)
root pts/0 2019-03-17 10:01 (:0) 伪终端0
-b 最近一次系统是什么时间启动的 tty本地虚拟终端
-d 显示死亡进程
-r 显示运行级别
w就是who是增强版的who(可以显示登录用户,以及在做什么)
14:50:45 up 4:54, 2 users, load average: 0.00, 0.03, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root :0 :0 09:58 ?xdm? 1:56 0.23s gdm-session-worker [pam/
root pts/0 :0 10:01 5.00s 0.59s 0.05s w
用户 终端 从哪天主机登录 连接多长时间 空闲多长时间 cpu累计时间 pcpu 现在运行什么命令
文件查找: find
eg:查找一个文件下有哪些硬连接:
#find / -inum id
[root@localhost ~]# find / -inum 69243921
/root/file1
/file1
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# find / -name bbb
/bbb

FHS:filesystem hierarchy standard文件系统层级标准,定义了在类Unix系统中的目录结构和目录内容,即让用户了解到已安装软件通常放置于哪个目录下。
可执行文件:指的是可以由操作系统进行加载执行的文件
FHS采用树形结构组织文件。FHS文件系统层级图
文件系统:操作系统用于明确存储设备或分区上的文件的方法和数据结构;
(磁盘上组织文件的方法 在操作系统中负责管理和存储文件信息的软件机构)
linux里面有哪些目录:
/ 根目录,通常不在这里存储文件
/bin 可执行文件,ls,cd
/sbin 可执行文件
/boot 开机启动的文件,包括linux内核以及开机菜单与开机所需配置文件等
/dev 设备文件,任何设备与接口设备都是以文件形式存在于这个目录的
/root root用户的主目录
/home 普通用户的主目录
/mnt 挂载点目录
光盘必须和/下的某个目录节点建立联系才能使用。
把光盘和指定的挂载点目录建立联系的过程叫做挂载。
mount /dev/sr0 /mnt
/media 媒体目录,也是挂载点目录
/opt 可选目录。存放第三方软件包和数据文件
/var 可变目录,用以存放经常变化的文件,如日志文件
/etc 配置文件
/lib 系统的函数库
/proc 该目录是一个虚拟文件系统,它放置的数据都在内存当中
/run 系统运行时所需文件
/usr 放置的数据为可分享的与不可变动的,unix操作系统软件资源所放置的目录,而不是用户数据
/srv service的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录
/tmp 让一般用户或者是正在执行的程序暂时放置文件的地方
/sys 这个目录其实跟/proc非常类似,也是一个虚拟的文件系统,主要是记录与内核相关的信息

命令分为两类:
由shell程序的自带的命令:内置命令(builtin)
由独立的可执行程序文件,文件名即命令名:外部命令
选项:指定命令的运行特性,指明要运行命令中的哪一个功能代码
选项有两种表现形式 :
短选项:例如:-l,-d
如果同一命令同时使用多个短选项,多数可合并
注意:有些命令的选项没有-
长选项:例如–help,–human-readable
注意:有些选项可以带参数,此称为选项参数
参数:命令的作用对象:命令对什么生效
注意:不同的命令的参数,有些命令可同时带多个参数,多个之间以空白字符分隔。
??那命令怎么知道是那个路径下的命令呢?系统为了让用户在命令行快速方便地执行命令,用一种机制来实现,
这种机制就叫做环境变量,
变量是什么?变量是命名的内存空间。
变量赋值
NAME=haha int a=123
变量声明的过程就是申请内存使用的过程
环境变量
定义当前用户工作环境属性的变量
PATH

hash 实现缓存管理 哈希
缓存,命中率相当高,在hash表中保存了执行过的所有的路径,
当缓存很大时,一定比PATH查找速度快吗?

hash 命令哈希
-p /bin/ls haha 添加哈希表
-t ls 查看指定命令的哈希表
-d ls 删除指定命令的哈希表
-r 清空所有的hash表

alias 添加指定命令别名
alias 目标命令名称=‘需要执行的命令串本身’
/etc/bashrc 对所有用户全部生效的别名信息
nano ~/.bashrc 别名信息仅对当前用户生效
source ~/.bashrc 生效

unalias 别名 删除指定的命令别名

与时间有关的命令:
date 输出和更改日期时间:(软件、系统时间)
更改日期的格式 月日时分年.秒
date -s “” ‘’
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″ 设置全部时间

查看硬件时间:clock
查看硬件时间:hwclock
-w 系统时间给硬件时间
-s 硬件时间给系统时间
查看日历:cal
cal 查看当年当月的日历
cal 年份 查看一年日历
cal 月份 年份 查看当年当月的日历
cal -1 查看该月的日历
cal -3 查看前一个月,本月,下月的日历
将输入接到标准输出(从键盘输入,从显示器输出):echo
命令使用帮助
内部命令
help COMMAND
COMMAND --help/-h
外部命令
COMMAND --help
命令手册 manual
man COMMAND
man手册分段
NAME 命令名称及功能简要说明
SYNOPSIS 格式说明,用法说明,包括可用的选项
DESCRIPTION 命令功能的详尽说明,可能包括每一个选项的意义
OPTIONs 选项,说明每一个选项的意义
EXAMPLE 示例,举例说明
FILES 此命令相关的配置文件
AUTHOR 作者
REPORTING BUGS bug反馈
COPYRIGHT 版权
SEE ALSO 参见
0 成功
1-255 错误状态
man手册章节
从1到8哪个章节先出现就显示哪个,如man mount就显示第8章节,那如何知道命令有哪些章节呢?
用whatis read
举例man read,man 2 read,export LANG=en修改字符集
1 用户命令,/bin,/usr/bin,/usr/local/bin
2 系统调用,系统调用和命令有可能重名,但是不是一回事
3 库调用,只有库才有库调用
4 特殊文件,如设备文件,系统上的设备文件只是设备的访问入口,文件中不存储任何内容
5 文件格式,配置文件的格式说明,举例passwd
6 games,游戏,休闲益智类的游戏
7 杂项,不便归类的杂项,Miscellaneous
8 管理命令,/sbin,/usr/sbin,/usr/local/sbin
手册符号说明
[] 可省略
<> 必选
… 多选多
{} 分组
翻屏
下翻一页 空格
上翻一页 b
下翻一行 回车
上翻一行 k
查找
/KEYWORD 向后
n 下一个
N 前一个
?KEYWORD
N 下一个
n 上一个
退出
q

touch创建普通文本文件
文件命名规则:
(1)不能使用/来当文件名,/是用来做根的,也是用来做路径分隔符的
(2)文件名不能超过255个字符
(3)区分大小写file File FILE fIle
(4)目录也是文件,在同一路径下,两个文件不能同名
创建多个普通文件:
方法1:touch 文件名1 文件名2 文件名3
方法2:touch {文件名1,文件名2,文件名3}
touch {1,2}{3,4}
touch abc{1…100}
stat查看文件的详细信息
touch不仅可以创建空文件,还可以改变文件的修改时间
atime access time 看了一下内容 cat
mtime modify time 文件内容被改变了,ctime也会发生改变
ctime change time 元数据被改变,重命名

mkdir 目录名 创建目录文件
-p parents 父目录
-v verbose 详细信息

rm 删除文件,命令别名默认带-i,该选项用来提示用户进行交互。
-f force,强行删除,不提示
-r recursive,递归删除来删除目录

cp复制文件:

  • r 复制目录
    -p 复制的时候保留文件原有的属性,时间戳等信息
    -a 归档复制,常用于备份
    单源复制: cp [OPTIoN]… [-T] SOURCE DEST
    多源复制: cp [OPTIon]… SOURCE… DIRECTORY
    cp [OPTION]… -t DIRECTORY SOURCE…
    -i: 交互式复制,即覆盖之前提醒用户确认
    f:强制覆盖目标文件:
    r:递归复制目录:
    d:复制符号链接文件本身,而非其指向的源文件
    a:dR --preserve-all, archive, 用于实现归档
    – preserv=
    mode:权限
    ownership: 属主和属组timestamps
    时间戳context
    安全标签xattr
    扩展属性links
    符号链接all
    上述所有属性
    如果DEST不存在:错误;如果DEST存在:
    如果DEST是非目录文件:错误;
    如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名:

mv移动文件: 等同Windows里面的剪切,移动之后原文件消失
-i 提示
-f 强制覆盖
-t 先写目标 后写源

文本处理
cut 文本切割显示:
cut -d 指定分隔符 -f 指定第几列 被切割文件
-f 1,3第一列和第三列
-f 1-3第一列到第三列
-c 1-4 指定第一到第四个字符
指定分隔符的时候空格需要用单引号或双引号引起来
cut -d : -f 1-3 --output-delimiter=@ /etc/passwd
echo 回声 标准输入输出指令
$ 引用变量
> 重定向
>> 追加重定向
| 管道就是将前面命令输出作为管道后面命令的输入
反引号,命令替换
" " 双引号,可以实现变量替换 不加引号的方式 echo P A T H ‘ ’ 强 引 用 , 不 完 成 变 量 替 换 e c h o ′ PATH ‘ ’ 强引用,不完成变量替换 echo &#x27; PATHechoPATH’

文本排序显示:sort
排序显示(默认根据字符在ASCII码中的升序排序):sort 文件名
按照数值大小排序:sort -n 文件名 
排序并去掉重复的:sort -u 文件名
逆序排序:sort -r 文件名
按照用户uid数字大小排序显示:
sort -t 指定分隔符 -k 指定第几列 -n /etc/passwd
   -f 排序时忽略字符大小写
去掉重复的行,重复的行必须相邻:uniq 文件名
-d 只显示重复的行
-D 显示所有重复的行
-c 显示重复行重复的次数

文本统计:wc——word count
显示文件行数、单词数、字节数和文件名:wc 文件名
###在UTF-8编码格式里面,显示时一个字符占一个字节,一个中文字占用3个字节
只显示单词数:wc -w 文件名
只显示字节数:wc -c 文件名
只显示行数:wc -l 文件名
只显示字符数:wc -m 文件名
显示最长的一行的字符数:wc -L 文件名

模式匹配器
grep 过滤关键字显示所匹配到的行[root@localhost ~]# grep root /etc/passwd
–color 匹配项着色
-o 显示匹配到的字符串 [root@localhost ~]# grep -o root /etc/passwd
-i 忽略大小写
-v 只显示没有匹配到的行 [root@localhost ~]# grep -i o /etc/passwd
^# 以#号开头 # ; // ----注释行
^$ 空白行
-A 2 指定数字显示说匹配到的下几行
-B 2 指定数字显示所匹配到的上几行
-C 2 显示所匹配到的上下几行
查找文件里的字符和字符串:

匹配整个单词:grep -w 单词 文件名
匹配以q开始的行:grep 1 文件名 ^行首 行 尾 匹 配 以 q 结 束 的 行 : g r e p q 行尾 匹配以q结束的行:grep q qgrepq 文件名
匹配以数字开头的行:grep 2 文件名
匹配以q或者f开头的行:grep 3 文件名
如果要明确搜索子目录:grep -r h ./*
忽略子目录:grep -d skip h ./*

练习题:
1.创建目录/test/sysroot在该目录下创建三个文件a,b,c 之后再将sysroot目录移
动到/tmp目录下改名为sys保证目录下三个文件也存在。
2.删除/tmp/sys/a 文件。
3、创建目录/tmp下创建4个目录,并在这四个目录下分别创建一个test目录
4、创建一个test目录,在该目录下创建一个文件,内容写 ‘我很瞌睡’
5、在/dir下创建目录dir2和文件file1,移动文件file1到上面创建的test目录中,
将目录dir2复制到test目录中
6.将/etc/passwd 中第一个字段(用户名)截取到user文件中
cut -d : -f 1 /etc/passwd > user
7.将3,4 字段分别截取出来写入文件UID和文件GIU但是要使这两个文件中的信息
是以数值由大到小的形式显示;
cut -d : -f 3 /etc/passwd | sort -nr > UID
截取当前日期的年月日显示在文件A.txt 中?
date |cut -d " " -f 1-3
统计/etc/passwd 一共有多少行但不显示后面的文件名?
文本统计

文本编辑vim:
命令模式:按esc键可回到命令模式
dd 删除当前行
dw 按单词删除
u 撤销当前操作
ctrl+r 重做
yy 复制光标所在行
2 yy 复制光标所在行和光标下一行
p 粘贴到光标下一行
cc 剪切
行数cc 剪切当前行开始的几行
x 删除光标所在位置的内容
w,b 按单词进行移动光标
gg 跳转到文档首部行首
dgg 删除光标至文档首部
G 跳转到文档尾部行首
/字符串1 查找字符串1
$ 行尾
^ 行首
h 往左按字符移动光标
j 往下(后)按行移动光标
k 往上(前)按行移动光标
l 往右按字符移动光标
H 跳转到当前屏幕输出的最上面一行
L 跳转到当前屏幕输出的最下面一行
M 跳转到当前屏幕输出的中间那一行

插入模式:
i 在光标前插入
I在光标所在行行首插入
a 在光标后插入
A 在光标所在行末尾插入
s 删除光标所在位置字符并插入
S 删除光标所在行并插入
o 在光标所在行下一行插入
O 在光标所在行上一行插入

末行模式:
:wq 保存退出
:q 退出(未修改文件内容才可以退出)
:wq! 强制保存退出
:q! 强制退出,不保存
:set nu 显示行号
:set nonu 不显示行号
:行号 跳转到指定行号
:3,5 d 删除3-5行
:r 文件名1 读出文件1的内容到当前文件里
:%s/字符串2/字符串3 字符串3替换字符串2
:%s/1/2/g 将1替换为2,全局修改
:w 文件名1 另存为文件名1


  1. q ↩︎

  2. 0-9 ↩︎

  3. qf ↩︎

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值