2019龙星计划笔记-Linux的基础知识

Linux与生活中常用的Windows系统有着本质的区别;下面看一下百度百科对Linux的定义。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。

Linux 目录

Linux 系统和信息都以文件的形式进行存储。
Linux的目录结构为树状结构,以"/"目录作为根目录。

2019龙星计划笔记-Linux的基础知识_第1张图片
directory
/    ## 根目录
bin  ## 系统程序
boot ## 内核和启动程序,所有和启动相关的文件都保存在这里
etc  ## 系统软件的启动和配置文件,系统在启动过程中需要读取的文件都在这个目录。如用户账户和密码。
dev  ## 设备文件
lib  ## 系统程序库文件 
tmp  ## 临时文件夹 
home ## 用户的主目录

绝对路径与相对路径

绝对路径:路径的写法『一定由根目录 / 写起』,例如 /usr/share/doc 这个目录。

相对路径:路径的写法『由当前所在目录写起』,例如由你当前所在的目录 /usr/share/doc 要到目标目录 /usr/share/man 底下时,可以写成: cd ../man。"./"表示当前目录。

## 在linux系统里特殊符号代表的意义
.   ## 代表此层目录
..  ## 代表上一层目录
-   ## 代表前一个工作目录
~   ## 代表『当前登陆用户』所在的家目录"/home/youraccount",该用户对"/home/youraccount"目录拥有完全控制权

常用的目录操作命令

cd       ## 切换目录
pwd      ## 显示当前所在目录 
mkdir    ## 建立一个新的目录 
rmdir    ## 删除一个空的目录

ls命令

ls 目录名称

选项与参数:
-a :全部的目录,连同隐藏文件夹一起列出来
-h :将目录容量转换为以易读的方式(例如  GB, KB 等等)
-l :列出目录的详细信息
-S :以文件大小排序
-t :以时间排序
$ ls -alhS /usr/
total 136K
dr-xr-xr-x.   2 root root  36K Jun 25 22:03 bin
dr-xr-xr-x.  52 root root  36K Jun 19 01:17 lib64
dr-xr-xr-x.   2 root root  20K Jun 19 01:17 sbin
drwxr-xr-x.  13 root root 4.0K Feb 27 14:58 .
dr-xr-xr-x.  21 root root 4.0K Jul  1 23:30 ..
drwxr-xr-x.   2 root root 4.0K Apr 11  2018 etc
drwxr-xr-x.   2 root root 4.0K Apr 11  2018 games
drwxr-xr-x.  49 root root 4.0K Jun 17 10:52 include
dr-xr-xr-x.  41 root root 4.0K Jun 17 10:51 lib
drwxr-xr-x.  26 root root 4.0K Jun 19 01:17 libexec
drwxr-xr-x.  14 root root 4.0K Jun 17 22:48 local
drwxr-xr-x. 126 root root 4.0K Jun 25 22:03 share
drwxr-xr-x.   4 root root 4.0K Feb 27 14:58 src
lrwxrwxrwx.   1 root root   10 Feb 27 14:58 tmp -> ../var/tmp

cp命令

cp 被拷贝的文件  目标目录
cp file1 file2 ... 目标目录

选项与参数:
-f :强行复制文件或目录,   不论目的文件或目录是否已经存在
-i :若目标文件(destination)已经存在时,在覆盖时会先询问用户
-p :连同档案的属性一起复制过去,而非使用默认属性(备份常用);
-u :若destination 比  source 旧才更新  destination !
-R :复制目录及目录内的所有项目
-v :显示执行过程

rm命令

rm 文件或目录

选项与参数:
-f :忽略不存在的文件,不显示警告讯息
-i :在删除会先询问用户
-r :递归删除文件夹
#删除文件
$ rm *.sam
#删除目录
$ rm -rf /tmp/etc 

mv命令

mv 待移动的文件或目录   目标目录
mv file1 file2 ... 目标目录

选项与参数:
-f :如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件已经存在时,询问用户是否覆盖

解压缩命令

根据文件的后缀名,需要以不同方式压缩的文件使用不同的命令进行解压:

  • tar tar –xvf
  • .gz gzip -dgunzip
  • .tar.gz 或 .tgz tar –xzf
  • .bz2 bzip2 -dbunzip2
  • .tar.bz2 tar –xjf
  • .Z uncompress
  • .tar.Z tar –xZf
  • .rar unrar e
  • .zip unzip

链接

Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link),也称为软连接。

默认情况下,ln命令产生硬链接。

【硬连接】

硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件都会得到一个分配的编号, 称之为索引节点号(Inode Index)。在Linux中,硬连接就是多个文件名指向同一索引节点,允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。如上所述,当目录的索引节点有一个以上的连接,只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块 及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接均被删除

【软连接】

软链接类似于Windows的快捷方式。软连接实际上是一个文本文件,其指向另一文件的位置信息。

$ touch mf1     # 创建一个测试文件mf1
$ ln mf1 mf2    # 创建mf1的一个硬连接文件mf2
$ ln -s mf1 mf3     # 创建mf1的一个符号连接文件mf3;软连接
$ ls -li    # -i参数显示文件的inode节点信息
total 0
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 mf1
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 mf2
9797649 lrwxrwxrwx  1 oracle oinstall 2 Apr 21 08:11 mf3 -> mf1
## 从上面的结果中可以看出,硬连接文件mf2与原文件mf1的inode节点相同,均为9797648,然而软连接文件的inode节点不同。

## 当删除原始文件mf1后,硬连接mf2不受影响,软连接mf1文件无效
## 当删除硬链接mf2后,原始文件mf1不受影响,软连接mf3文件不受影响
## 当删除软链接mf3后,原始文件mf1不受影响,硬连接mf2文件不受影响
## 当删除原始文件mf1,,硬连接mf2后,文件被彻底删除

注意:

  1. 强烈不建议给目录创建硬链接,容易造成目录链接死循环
  2. 不能跨硬盘分区创建硬链接

通配符

使用通配符可以对具有某种规律的文件进行同一操作。

字符 含义 实例 解释
* 匹配 0 或多个字 符 a*b a与b之间可以有任意长度的任意字符,也可以一个 也没有,如ab, aab, acccccdb, a24322qqb。
? 匹配任意单一字符 a?b a与b之间必须有一个任意字符,如aqb, acb, a7b。
[list] 匹配list中的任意 单一字符 a[xyz]b a与b之间必须是list列出的任意一个字符, 如: axb, ayb, azb。
[!list] 匹配除list中的任 意单一字符 a[!0-9]b a与b之间必须是除去阿拉伯字符的任意一个字符, 如axb, aab, a-b。
[c1-c2] 匹配 c1-c2 中的 任意单一数字 a[0-9]b a与b之间必须是0与9之间的一个字符,如a0b, a1b... a9b。
{string1...} 匹配 sring1或其 他字符串之一 a{abc,xyz,123}b a与b之间只能是abc或xyz或123这三个字符串之 一。

示例

## 1.拷贝文件
cp /tmp/file[0-9].txt /tmp/etc

## 2.删除'file'开头,'.txt'结尾的所有文件
rm -rf {file}*.txt

linux 文本操作

查看文件命令

cat 命令将文件由前向后全部打印在屏幕上。

tac 命令将文件由后向前全部打印在屏幕上。

head 命令查看文件头部, -n 选项可以指定查看前几行。

tail 命令查看文件尾部, -n 选项可以指定查看后几行。

more 命令将以一页一页的形式展示内容,按空白键(space)向后一页。

less 命令用来查阅文档,功能更为强大。在使用less过程中,可以用以下的按键查看文件内容

q   ## 退出
g   ## 第一行
G   ## 最后一行
j   ## 下一行
k   ## 上一行
/   ## 检索
n   ## 匹配到的前一个
N   ## 匹配到的后一个

less 还可以将文件整齐显示

less -SN text.txt

管道与重定向

管道(|)可以将一个命令的输出作为另外一个命令的输入。

重定向命令列表如下:

命令 说明
command > file 将输出重定向到 file。
command < file 将输入重定向到 file。
command >> file 将输出以追加的方式重定向到 file。
n > file 将文件描述符为 n 的文件重定向到 file。
n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m 将输出文件 m 和 n 合并。
n <& m 将输入文件 m 和 n 合并。
<< tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。

echo命令

echo用于字符串的输出

echo -n 字符串

选项与参数:
-n 不要在最后自动换行
-e 显示转义字符

cat命令

cat 命令将文件的内容打印在屏幕上

paste命令

用来将多个文件的内容合并,首先确保两个文件行数相同。 paste 连接文件时,除非指定 -d 选项,否则默认用空格tab键分隔文本。

$ paste 1.txt 2.txt
a   d
b   e
c   f

cut 可以从数据中提取某列

-f 选项指定列,可以是一个范围(比如2-8),注意不能用它给列排序。

cut 默认以 \t 为分隔符, -d 选项可以指定分隔符,比如指定,为分隔符。

grep命令

grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep 处理速度非常之快,尽量使用这个命令处理文本。

-v  ## 排除匹配到的
-w  ## 单词的完全匹配
-B  ## 指定输出匹配到的前多少行
-A  ## 指定输出匹配到的后多少行
-E  ## 指定支持扩展表达式
-C  ## 对匹配到的行计数
-o  ## 只输出匹配到的部分

sort命令

sort 根据某种规律对文本进行排序

  • -b 忽略每行前面开始出的空格字符。
  • -c 检查文件是否已经按照顺序排序。
  • -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
  • -f 排序时,将小写字母视为大写字母。
  • -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
  • -m 将几个排序好的文件进行合并。
  • -M 将前面3个字母依照月份的缩写进行排序。
  • -n 依照数值的大小排序。
  • -o<输出文件> 将排序后的结果存入指定的文件。
  • -r 以相反的顺序来排序。
  • -t<分隔字符> 指定排序时所用的栏位分隔字符。
  • +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
  • --help 显示帮助。
  • --version 显示版本信息。

uniq命令

uniq 根据文件某列或行检查文件中重复的行;uniq的输入文件必须是已经拍好序的文件。

  • -c或--count 在每列旁边显示该行重复出现的次数。
  • -d或--repeated 仅显示重复出现的行列。
  • -f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
  • -s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
  • -u或--unique 仅显示出一次的行列。
  • -w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。
  • --help 显示帮助。
  • --version 显示版本信息。

参考

Linux_Basics.md
Linux 命令大全

你可能感兴趣的:(2019龙星计划笔记-Linux的基础知识)