1. linux的简介

Linux是一套免费使用和自由传播的类Unix操作系统。

2. linux的图形界面和命令行

不要对linux有误解,以为它只有一个黑框框,实际上现在的常见的Linux发行版的图形界面,非常好看,例如:

但实际上,我们最常用的还是一个黑框框Terminal

3. linux的常用命令

3.1 举一个例子

在windows下,我们习惯了用窗口图形化界面的方式进行各种基本操作,比如创建一个新文件夹temp,我们需要:

  1. 单击鼠标右键
  2. 选择新建
  3. 选择文件夹
  4. 输入文件夹的名字temp
  5. 按回车键确认

如果了解一点快捷键,可以:

  1. 单击鼠标邮件
  2. 按键盘”w”
  3. 按键盘”f”
  4. 输入文件夹的名字temp
  5. 按回车键确认

再进一步,我们用快捷键,可以:

  1. 按”ctrl+shift+n”
  2. 输入文件夹的名字temp
  3. 按回车键确认

在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

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

我们仔细观察第一列-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

我们可以发现,各种权限是不重复的,如下:

数字 可读 可写 可执行
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

附录

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神书 — 《鸟哥的私房菜》

在线版: 传送门

下载版:百度网盘 提取码: uj28