云网牛站
所在位置:首页 > Linux培训 > Linux入门记录一:Bash基本,文件结构,文件操作,常用命令,vim编辑器

Linux入门记录一:Bash基本,文件结构,文件操作,常用命令,vim编辑器

2017-12-03 10:44:10作者:mingc稿源:博客园

为了以后长期的线上测试和服务器的性能考量,要用 Linux 云服务器了。装了个 CentOS 操作系统,开始学学 Linux 基础,扫扫盲。

 

Linux 入门记录:命令行 Bash 的基本操作

一、Shell简介

Shell 是用 C 语言编写,与 Unix/Linux 进行交互的工具,是用户与 Unix/Linux 的操作系统内核进行交互的中间层(壳)。

一般有 GUI(Graphical User Interface,用户图形界面)和 CLI(Command User Interface,命令行界面)两种。 

二、Bash简介

Bash 是 Linux 标准默认的命令行 Shell。

Bash 的命令提示符有  $ 和 #  两种。$ 表示以普通用户登录、权限有限,# 表示以 root 用户登录、拥有最高权限。

Bash 的命令由命令名、选项和参数构成。

三、Bash的Tab键自动补全

自动补全命令

自动补全文件名

无法自动补全参数

# 补全uname命令

$ unam<Tab>

$ uname

# 补全Downloads文件夹名

$ ls Downl<Tab>

$ ls Downloads

# 列出una开头的命令

$ una<Tab>

unalias uname

# 列出所有命令

$ <Tab><Tab>

Display all 2195 possiblities? (y or n) 

四、Bash的历史记录

Bash 会保存本次会话中用户输入的所有命令的历史记录。

可以通过键盘的 ↑ 或 ↓ 方向键来回显

可以通过 history 命令来回显所有输入历史

五、通过历史记录简化操作

使用 ! 开头的系列命令可以快捷重复历史记录中的命令:

!!     重复前一个命令

!字符   重复前一个以“字符”开头的命令

!num   重复历史输入中序号为num的命令,从1开始

!?abc  重复历史输入中包含“abc”的命令

!-n    重复历史输入中的倒数第n个命令,从1开始 

六、历史记录搜索命令

可以通过 Ctrl + R 在历史记录中搜索命令:

(reverse-i-search `'): 

七、命令行通配符

*       匹配零个或多个字符

?       匹配任意一个字符

[0-9]   匹配一个数字字符

[abc]   匹配a、b、c中的任意一个字符

[^abc]  匹配不是a或b或c的任意一个字符 

八、切换用户

在 CLI 中,通过 su 命令切换用户:

$ su - [<user>]  切换到user用户并使用一个新的运行环境,不写user表示切换到root用户

$ sudo           使用管理员身份运行命令

显示当前用户信息:

$ id

uid=500(mingc) gid=500(mingc) groups=500(mingc) context=unconfined u:unconfined r:unconfined t:s0-s0.c1023 

九、Bash作业管理

在后台运行 firefox:

$ firefox &

暂停某个程序:

通过 Ctrl + Z 或发送信号 17 来暂停程序。(Ctrl + C 终止程序)

管理后台作业:

$ jobs   列出当前所有后台运行的作业

$ bg     把某个程序拉到后台执行

$ fg     把某个程序拉到前台执行

 

Linux 入门记录:Linux 文件系统基本结构

一、树状目录结构

Linux 文件系统是一个倒置的单根树状结构。文件系统的根为"/";文件名严格区分大小写;路径使用"/"分割(Windows 中使用"\")。

树状目录结构图如下:

Linux入门记录一:Bash基本,文件结构,文件操作,常用命令,vim编辑器

以下是对上图中各个目录的解释:

目录 描述
/ 根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中
/bin Binary 的缩写,这个目录存放着最经常使用的命令
/boot 存放着 Linux 启动时的一些核心文件,包括一些连接文件和镜像文件
/dev Device 的缩写,存放着 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的
/etc 存放着所有的系统管理所需要的配置文件和子目录
/home 用户主目录。在 Linux 中,每个用户都有一个自己的目录,一般该目录名以用户的账号命名
/lib

存放着系统最基本的动态连接共享库,作用类似于 Windows 的 DLL 文件。

几乎所有的应用程序都需要用到这些共享库

/lost+found 一般情况下为空,当系统非法关机后,这里就存放了一些文件
/media

Linux 系统会自动识别一些设备。

例如 U 盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下

/mnt

让用户临时挂载别的文件系统的目录。

我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了

/opt

给主机额外安装软件所准备的目录。

比如可以安装一个 Oracle 数据库在这个目录。默认为空

/proc

虚拟目录,是系统内存的映射,可以通过直接访问这个目录来获取系统信息。

这个目录的内容在内存里,可以直接修改里面的某些文件。

比如可以通过下面的命令来屏蔽主机的 ping 命令,使别人无法 ping 你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

/root 系统管理员的用户主目录
/sbin s 是 Super User 的意思,存放系统管理员使用的系统管理程序
/selinux

这个是 Redhat/CentOS 所特有的目录,selinux 是一个安全机制,类似于 Windows 的防火墙。

但是这套机制比较复杂,这个目录就是存放 selinux 相关的文件的

/srv 该目录是存放一些服务启动之后需要提取的数据
/sys

/sys 这是 Linux 新内核的一个很大变化。

该目录下安装了 新内核中新出现的一个文件系统 sysfs。sysfs 文件系统集成了下面 3 种文件系统的信息:

针对进程的 proc 文件系统、

针对设备的 devfs 文件系统

以及针对伪终端的 devpts 文件系统。

该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建

/tmp 临时文件目录
/usr

这个目录非常重要。

用户的很多应用程序和文件都放在这个目录下,类似于 Windows 下的 Program Files 目录

/usr/bin 系统用户使用的应用程序
/usr/sbin 超级用户使用的比较高级的管理程序和系统守护程序
/usr/src 内核源代码默认的放置位置
/var

这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括日志文件

二、当前工作目录

每一个 Shell 或系统进程都有一个当前工作目录。

使用 pwd 命令可以显示当前的工作目录。

三、文件名称

文件的名称大小写敏感。

名称最多可以为255个字符。

除了正斜线"/"外,都是有效字符。

通过 touch 命令可以创建一个空白文件或者更新已有文件的时间。

以点号"."开头的文件是隐藏文件。

四、列出目录内容

ls 命令用来列出目录内容。相关参数如下:

$ ls -a  显示所有文件(包括隐藏文件)

$ ls -l  显示详细信息

$ ls -R  递归显示子目录

$ ls -ld 显示目录和链接信息 

五、查看文件类型

通过 file 命令可以查看文件的类型。

六、绝对路径与相对路径

绝对路径:以正斜杠"/"开头,递归每级目录知道目标的路径。

相对路径:以当前目录为起点,到达目标的路径。受当前所在目录限制。

cd 命令可以用来切换目录。

$ cd .   切换到当前目录

$ cd ..  切换上一级目录

$ cd -   切换上一个工作目录

$ cd ~   切换到当前用户目录

不管在任何目录下,直接 cd 回车,都会回到当前用户目录 /home/用户名。

 

Linux 入门记录:Linux 文件基本操作管理

一、复制文件、目录

使用 cp 命令复制文件或目录:

$ cp 源文件(夹)目标文件(夹)

常用参数:

-r   递归复制整个目录树

-v   显示复制过程的详细信息

二、移动、重命名文件或目录

通过 mv 命令移动或重命名文件或目录:

$ mv 文件 目标目录

如果指定文件名,则可以重命名文件。

三、创建、删除文件

通过 touch  目录可以创建一个空文件或更新文件时间:

$ touch test.md

通过 rm 命令可以删除文件或目录:

$ rm test.md

常用参数:

-i   交互删除,删除每个文件前会即时地询问

-r   递归删除,包括目录下的子目录和文件

-f   强制删除,没有警告提示(谨慎使用) 

四、创建、删除目录

通过mkdir 命令创建一个目录

通过rmdir 目录删除一个空目录

通过rm -r [-f] 命令删除一个非空目录

 

Linux 入门记录:Linux 系统常用命令

一、日期时间

命令 date 查看、设置当前系统时间:

date -u               格林威治时间

date %Y-%m-%d         显示格式化的时间

date -s "23:00"       使用 -s 参数设置、修改时间

命令 hwclock 或 clock 显示硬件时钟时间

命令 cal 查看日历

命令 uptime 查看系统启动后运行时间,也可查看系统负载(过去1分钟、5分钟、15分钟的负载)

二、输出、查看命令

命令 echo 回显输入的内容

命令 cat 显示文件内容

命令 head 显示文件的头几行(默认10行)

命令 tail 显示文件的尾几行(默认10行)

-n 指定显示的行数

-f 参数追踪显示文件更新(一般用于查看日志,命令不会退出,而是持续地显示最新的内容)

命令 more 翻页显示文件内容(只能向下翻页)

命令 less 翻页显示文件内容(可以上下翻页)

三、查看硬件相关的信息

命令 lspci 查看 PCI 设备

-v 查看详细信息

命令 lsusb 查看 USB 设备

-v 查看详细信息

命令 lsmod 查看加载的模块(驱动)

四、关机、重启

命令 shutdown 关闭、重启计算机:

shutdown [关机|重启] 时间

-f 关闭计算机

-r 重启计算机

...

如:

立即关机:      shutdown -h now

10分钟后关机:   shutdown -h +10

23:30分关机:   shutdown -h 23:30

立即重启:      shutdown -r now

命令 poweroff 立即关闭计算机

命令 reboot 立即重启计算机

五、归档、压缩

命令 zip 压缩文件:

zip new.zip myfile

命令 unzip 解压缩 zip 文件:

unzip new.zip

命令 gzip 压缩文件:

gzip myfile

命令 tar 归档文件:

tar -cvf new.tar myfile      文件归档。将 myfile 归档为 new.tar

tar -xvf new.tar             解开归档

tar -cvzf new.tar.gz /etc    归档 /etc 目录,归档名为 new.tar.gz,-z 参数表示归档后进行 gzip 压缩,以减小大小

注意,归档压缩命令 tar -cvzf 的目标文件后缀必须是 .tar.gz

六、查找

命令 locate 快速查找文件、文件夹:

locate keyword

该命令需要预先建立数据库,数据库默认每天更新一次,可用 updatedb 命令手动建立、更新数据库。

命令 find 高级查找文件、文件夹:

find 查找位置 查找参数

如:

find . -name *test*    在当前目录查找名称包含"test"的文件

find / -name *.conf    在根分区查找所有".conf"配置文件

find / -perm 777       在根分区查找权限为 777 的文件

find / -type d         在根分区查找所有目录

find . -name "a*" -exec ls -l {}\;   在当前目录查找名称以"a"开头的目录并对它调用 ls -l 命令

七、find查找条件

find 命令支持很多种的查找条件,常用的如下:

-name       限定文件名

-perm       限定权限

-user       限定所属用户

-group      限定某个特定组

-ctime      限定修改时间

-type       限定文件类型

-size       限定文件大小

 

Linux 入门记录:vi、vim 编辑器

一、vi、vim编辑器

vi 是一个命令行界面下的文本编辑工具,最早在 1976 年由 Bill Joy 开发。当时名字叫做 ex。vi 支持绝大多数操作系统(最早在类 Unix 操作系统的 BSD上发布),并且功能已经十分强大。

1991 年 Bram Moolenaar 基于 vi 进行了改进,发布了 vim,加入了对 GUI 的支持。

官方称,vim 是一个程序开发工具而不是文字处理软件,被广泛的应用在文本编辑、文本处理和程序开发等众多用途之中。

Linux 中的知名编辑器还有 emacs,它的功能比 vim 更加强大。

二、推荐vim

绝大多数 Linux 系统上均安装有 vim,vim 的功能比 vi 更为强大,所以推荐使用 vim。使用方法是相同的。

用命令 vim 可以启动 vim 编辑器。

一般用 vim filepath 的命令来使用 vim 编辑 filepath 文件。

如果目标文件存在,则打开该文件。

如果目标文件不存在,则新建并打开该文件。

三、vim的三个模式

1.命令模式(常规模式)

vim 启动后,默认进入命令模式,任何模式都可以通过(狂摁)Esc 键回到命令模式。命令模式下可以通过键入不同的命令完成选择、复制、粘贴、撤销等多种操作。

2.插入模式

在命令模式按字母"i"键,即可进入插入模式,在插入模式下,可以输入、编辑文本内容,使用 Esc 键可以返回命令模式。

3.ex模式

在命令模式中按冒号键":"可以进入 ex 模式,光标会移动到底部,在这里可以保存修改或退出 vim。

四、命令模式

vim 启动后,默认进入命令模式。在任何模式下按 Esc 键均可进入命令模式。命令模式的常用命令如下:

i        在光标前插入文本

o        在当前行的下面插入新行

dd       删除整行

yy       将当前行的内容放入缓冲区(复制当前行)

Nyy      将 N 行内容放入缓冲区(复制 N 行)

p        将缓冲区的内容放入光标处(粘贴)

u        撤销上一个操作

r        替换当前字符

/        查找关键字,在匹配的多个字词中按"n"键可以依次切换到各自位置

五、ex模式

在命令模式中按冒号键":"可以进入 ex 模式,光标会停在底部,在这里可以保存修改或退出 vim。 ex 模式的常用命令如下:

:w            保存当前修改

:q            退出

:q!           强制退出,丢弃修改

:x            保存退出,相当于 :wq

:set number   显示行号(number 可以简写为 nu)

:!系统命令     执行一个系统命令并显示结果

:sh           切换到命令行,使用 Ctrl + D 切换回 vim

六、插入模式

在命令模式按字母"i"键,进入插入模式,该模式下可以编辑文本内容,使用 Esc 键返回命令模式。

 

相关主题

新手学习Linux基础教程

精选文章
热门文章