超算入门4 Linux基础
# 1. linux的简介
Linux是一套免费使用和自由传播的类Unix操作系统。
# 2. linux的图形界面和命令行
不要对linux有误解,以为它只有一个黑框框,实际上现在的常见的Linux发行版的图形界面,非常好看,例如:
但实际上,我们最常用的还是一个黑框框Terminal
。
# 3.1 举一个例子
在windows下,我们习惯了用窗口图形化界面的方式进行各种基本操作,比如创建一个新文件夹temp
,我们需要:
- 单击鼠标右键
- 选择新建
- 选择文件夹
- 输入文件夹的名字
temp
- 按回车键确认
如果了解一点快捷键,可以:
- 单击鼠标邮件
- 按键盘"w"
- 按键盘"f"
- 输入文件夹的名字
temp
- 按回车键确认
再进一步,我们用快捷键,可以:
- 按"ctrl+shift+n"
- 输入文件夹的名字
temp
- 按回车键确认
在linux下,我们使用一行命令即可创建:
$ mkdir temp
大家感受一下哪一种方式比较快?
# 3.2 常用命令
我们下面举一个实际的例子,大家跟着做,输入带有$
行的命令,看看会得到什么(#
号后面的内容是注释,不需要输入)
$ date # 显示日期和当前时间
Sun Dec 23 14:16:39 CST 2018
$ whoami # 查询当前登录在系统中的用户信息
zhenggang
$ pwd # 显示当前工作目录
/home/zhenggang
$ ls # 显示目录内容
backup Desktop downloads projects PycharmProjects software temp workdir
$ mkdir temp # 创建目录
$ cd temp # 改变工作目录
$ pwd
/home/zhenggang/temp
$ touch 1.txt # 创建内容为空的文件
$ echo "hello world" > 1.txt # 将"hello world"字符串显示,并定向到1.txt文件
$ cat 1.txt # 用于显示文件内容
hello world
$ clear # 清屏
$ grep hello 1.txt # 查找字符串:在1.txt文件中查找hello字符串,找到了就返回匹配的行
hello world
$ find * -name 1.txt # 查找文件:*表示当前目录,从当前目录递归查找名为 1.txt的文件
1.txt
$ mv 1.txt 2.txt # 文件的搬移或更名,将1.txt改名为2.txt
$ ls
2.txt
$ cp 2.txt 3.txt # 复制文件或目录,如果拷贝的是目录,则加入"-r" 参数
$ ls
2.txt 3.txt
$ cd .. # 退回到上一级目录
$ pwd
/home/zhenggang
$ cd # 退回到用户根目录
/home/zhenggang
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
32
# 3.2 文件的权限(菜鸟版)
最常用的是修改可执行权限,举例:为1.txt
文件增加可执行权限,使用:
$ chmod +x 1.txt
+x
表示增加可执行权限;-x
表示去除可执行权限:如果是递归修改,可以增加参数-R
# 3.2 文件的权限(进阶版)
Linux 一般将文件可存取的身份分为三个类别,分别是 owner/group/others,且三种身份各有read/write/execute 等权限。
我们画一个示意图来介绍:
第一个字符代表这个文件是『目录、文件或链接文件等等』
- 当为[ d ]则是目录
- 当为[ - ]则是文件
- 若是[ l ]则表示为连结档(link file)
接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
- 第一组为『文件拥有者可具备的权限』
- 第二组为『加入此群组之账号的权限』
- 第三组为『非本人且没有加入本群组之其他账号的权限
我们用ls -al
命令来查看刚才的1.txt
文件:
$ ls -al
-rw-rw-r-- 1 zhenggang zhenggang 0 Dec 23 15:40 1.txt
2
我们仔细观察第一列-rw-rw-r--
,它表示1.txt
文件的权限,因此-rw-rw-r--
表示:
- 它是一个文件
- 对于自己,该文件可读可写不可执行
- 对于组内用户,该文件可读可写不可执行
- 对于其他用户,该文件可读不可写不可执行
文件权限的改变使用的是 chmod
这个指令,但是,权限的设定方法有两种, 分别可以使用数字或者是符号来进行权限的变更。
使用数字改变权限
我们可以使用数字来代表各个权限,各权限的分数对照表如下:
- r 4
- w 2
- x 1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rw-rw-r--] 分数则:
- owner = rw- = 4+2+0 = 6
- group = rw- = 4+2+0 = 6
- others= r-- = 4+0+0 = 4
我们使用chmod命令,语法如下:
命令 | 数字 | 目标 |
---|---|---|
chmod | 764 | 文件或目录 |
第一个数字表示owner的,第二个数字并表示group的,第三个数字表示others的。
为1.txt
文件增加owner
的可执行权限,则为:
$ chmod 764 1.txt
$ ls -sl
-rwxrw-r-- 1 zhenggang zhenggang 0 Dec 23 15:40 1.txt
2
3
我们可以发现,各种权限是不重复的,如下:
数字 | 可读 | 可写 | 可执行 |
---|---|---|---|
0 | × | × | × |
1 | × | × | 1 |
2 | × | 2 | × |
3 | × | 2 | 1 |
4 | 4 | × | × |
5 | 4 | × | 1 |
6 | 4 | 2 | × |
7 | 4 | 2 | 1 |
用户可以依据自己的需求设置相应的权限,当需要递归修改文件夹时,可以使用-R
参数。
使用符号改变权限
命令 | 对象 | 操作 | 读写执行权限 | 目标 |
---|---|---|---|---|
chmod | u(自己) g(同组用户) o(其他用户) a(所有人) | +(加入) -(除去) =(设定) | r(可读) w(可写) x(可执行) | 文件或目录 |
举例,将1.txt
从 -rw-rw-r---
改为-rwxrw-r--
:
$ chmod u+x 1.txt
$ ls -al
-rwxrw-r-- 1 zhenggang zhenggang 0 Dec 23 15:40 1.txt
2
3
# 附录
# A Linux基本命令
A1 基本命令
命令 | 含义 | 格式 |
---|---|---|
date | 显示日期和当前时间 | $ date |
who | 查询当前登录在系统中的用户信息 | $ who |
ps | 用于查看当前系统中的活跃进程 | $ ps [options] |
kill | 终止指定进程 | $ kill [-signal] pid |
A2 目录操作
命令 | 含义 | 格式 |
---|---|---|
mkdir | 创建目录 | $ mkdir directory ... |
rmdir | 删除目录 | $ rmdir directory ... |
pwd | 显示当前工作目录 | $ pwd |
ls | 显示目录内容 | $ ls [options] [names],选项可合用 |
cd | 改变工作目录 | $ cd [directory] |
A3 文件创建、复制与删除
命令 | 含义 | 格式 |
---|---|---|
touch | 创建内容为空的文件 | $ touch 文件名 |
rm | 删除文件或目录 | $ rm [-r] [-f] [-i] file ... |
cp | 复制文件或目录 | $ cp [-i] [-r] file1 [file2...] target -r 如果 file 为目录,则 cp 将复制该目录及其所有文件 |
mv | 文件的搬移或更名 | $ mv file1 target |
A4 文件属性
命令 | 含义 | 格式 |
---|---|---|
chmod | 改变文件的读、写或执行权限 | $ chmod [who] operator [permission] file-list |
chown | 改变文件的属主 | $ chown [-R] [-h] owner file |
chgrp | 改变文件的组主 | $ chgrp [-R] [-h] group file |
A5 文件显示与连接
命令 | 含义 | 格式 |
---|---|---|
cat | 用于显示文件内容或文件连接 | $ cat file1 file2 显示 file1 和 file2 的内容 $ cat file1 file2 > file3 将 file1 和 file2 合并成 file3 |
more | 显示文件的内容 | $ more 文件名 |
head | 显示文件的前几行 | $ head [-n] [file…] |
tail | 将文件从指定位置开始的内容全部显示到屏幕上 | $ tail [+n] [lbc] file 从文件头加上 n 处开始显示 $ tail [-n] [lbc] file 从文件尾减去 n 处开始显示 $ tail -f file 间隔 1 秒循环显示文件新内容 |
ln | 建立指定文件的硬链接或符号链接 | $ ln [-s] [-f] [-n] file target |
A6 文件查找与比较
命令 | 含义 | 格式 |
---|---|---|
grep | 查找字符串 | $ grep pattern files |
find | 从指定目录开始,递归地从子目录寻找匹配文件 | $ find dirname option-list |
diff | 比较两个文本文件的差异 | $ diff [options] file1 file2 |
A7 文件压缩与备份
命令 | 含义 | 格式 |
---|---|---|
compress | 进行文件压缩 | $ compress [-cfv] filename |
uncompress | 解压缩文件 | $ uncompress [-cfv] filename |
tar | 用于建立磁带档案(文件系统的备份) 或存到档案媒介或从档案媒介中读取文件 | $ tar c|t|x [bvf] [tarfile] [bsize] [file_list] |
A8 输入输出重定向
命令 | 含义 | 格式 |
---|---|---|
< | 输入改向 | $ command < file |
> | 输出改向,更新指定文件内容 | $ command > file |
>> | 输出改向,将执行结果接到指定文件内容后面 | $ command >> file |
# B Linux神书 --- 《鸟哥的私房菜》
下载版:百度网盘 (opens new window) 提取码: uj28