Linux笔记

内容:主要讲解常用命令

2015年12月

时空

Linux概述

Linux的内核版本

38页1.2.5

Linux发行版

目前Linux主要分为两大分支:

  • Debian
  • 使用dpkg方式安装软件,包括Debian, Ubuntu(Linux Mint)
  • 全球最高份额,deb包非常方便
  • deb包
  • sudo dpkg -i 软件包
  • sudo dpkg -r 软件名

  • Red Hat

  • 使用RPM方式安装软件,包括Red Hat(CentOS), Fedora, SuSE
  • 只有中国份额较高。因为进入中国比较早,很多人不愿意换
  • rpm包

开源许可证

45页1.3.3

Linux的安装

开机流程

两种启动方式:BIOS和UEFI

  • 以前:BIOS启动
  • 对应MBR磁盘,MBR分区表
  • 只有4个主分区

  • 现代:UEFI启动

  • 对应GPT磁盘,GUID分区表
  • 无限主分区
  • Mac默认使用GPT

MBR方式开机流程

72页3.2.4

磁盘分区

初学:在硬盘尾部安装,全部使用逻辑分区

挂载点 容量 格式
/ 剩下的空间 ext4
swap 与内存大小相同 swap

正常:

挂载点 容量 格式
/boot 100M ext4
/ 相当于系统盘 ext4
/home 剩下的空间 ext4
swap 与内存大小相同 swap

常用命令

X Window热键

X Window与文字模式的切换:[Ctrl] + [Alt] + [F1]~[F6]

重启X Window:Ctrl+Alt+Backspace

基础命令和热键

列出文件

$ ls
$ ls -l
$ ll # Ubuntu可以用

显示日期与时间

$ date

日历

$ cal
$ cal 2015
$ cal 12 2015

计算器

$ bc

热键

  • Tab 命令补齐、文件补齐
  • Ctrl+C 停止程序
  • Ctrl+D EOF、离开

在线求助

$ man 要查询的命令

超简单文本编辑器:nano

$ nano test.txt

数据同步写入磁盘

$ sync

关机

# shutdown -h now

重启

# reboot
# shutdown -r now

切断电源(不建议)

# halt

切换执行等级:init

# init 0 # 关机
# init 6 # 重启

设置当前用户的密码

$ passwd

Linux文件操作

Windows中的文件夹在Linux中叫目录。

特殊的目录
. 代表此层目录
..代表上层目录
- 代表前一个工作目录
~ 代表当前用户主目录
~account 代表account这个用户主目录

目录相关操作

切换目录:cd

$ cd [相对路径或绝对路径]

显示当前目录:pwd

$ pwd

新建目录:mkdir

$ mkdir test # 新建一个名为test的目录

删除空目录:rmdir

$ rmdir test

环境变量:$PATH

使用echo显示$PATH

$ echo $PATH

文件操作命令

查看文件与目录:ls

$ ls
$ ls -l
$ ls -al

复制:cp

$ cp 源文件 目标文件

删除:rm

$ rm 文件或目录
$ rm -r 递归删除,删掉目录中所有文件和目录

移动、重命名:mv

$ mv 源文件 目标文件

文件内容查阅

直接查看一个文件的内容:cat

$ cat test.txt

反向查看:tac

$ tac test.txt

添加行号打印:nl

$ nl test.txt

翻页查看:more

$ more test.txt

上下翻页查看:less

$ less test.txt

只看前面几行:head

$ head test.txt # 默认10行
$ head -n 20 test.txt

只看后面几行:tail

$ tail test.txt
$ tail -n 20 test.txt

查看非纯文本文件:od

$ od test.txt

修改文件时间或创建新文件:touch

$ touch new.txt # 创建一个名为new.txt的文件
$ touch -d "2 days ago" test.txt
$ touch -t 1512251200 test.txt

查看文件类型:file

$ file test.txt # ASCII text
$ file /usr/bin/passwd
$ file /var/lib/mlocate/mlocate.db # data

文件的查找

188页7.5.2

寻找执行文件

$ which ifconfig
$ which cd

在数据库中寻找特定文件:whereis, locate

$ which test.txt
$ locate test.txt

扫描硬盘查找:find

$ find [PATH] [option] [action]
$ find / -user root
$ find / -name passwd
$ find / -mtime 0

Linux目录配置标准:FHS

152页

可分享的(shareable) 不可分享的(unsharealbe)
不变的(static) /usr (软件放置处) /etc (配置文件)
/opt (第三方软件) /boot (开机与内核文件)
可变动的(variable) /var/mail(用户邮件信箱) /var/run (程序相关)
/var/spool/news(新闻组) /var/lock (程序相关)

Linux的文件权限

用户与用户组

139页6.1

文件所有者,用户组,其他人

root是万能的

查看文件权限

$ ls -al

文件类型与权限

可读、可写、可执行

-rwxrwxrwx 4 root root 4096 Sep 8 14:06 test.txt
drwxrwxrwx 9 root root 4096 Jan 6 10:57 hello

文件权限 连接数 文件所有者 文件所属用户组 文件大小 修改时间 文件名

文件权限分为文件类型和3组权限

  • 文件类型
  • d表示目录
  • -表示文件
  • l表示连接文件
  • b表示接口设备
  • c表示串口设备

  • 3组权限

  • 第一组:文件所有者的权限
  • 第二组:同用户组的权限
  • 第三组:其他非本用户组的权限

142-144页例题练习

改变文件属性与权限

改变所属用户组:chgrp

# chgrp root test.txt

改变文件所有者:chown

# chown root:root dir

chown -R 表示递归

改变文件的权限:chmod

$ chmod 777 test.txt
$ chmod 755 test.txt
  • r:4
  • w:2
  • x:1

146页例题

符号类型改变权限

$ chmod u/g/o/a +/-/= r/w/x 文件或目录
$ chmod u=rwx,go=rx test.txt
$ chmod a-x test.txt
$ chmod a+w test.txt

不要随便用chmod的递归

目录与文件的权限意义

权限对文件的重要性

  • r: 可读取
  • w: 可编辑、新增、修改,不包括删除
  • x: 可执行

权限对目录的重要性

  • r: 可读取(可以列出)
  • w: 可写入
  • 新建新的文件与目录
  • 删除已经存在的文件与目录
  • 重命名
  • 转移该目录内的文件、目录位置
  • x: 可进入

148-149页例题

Linux文件种类

  • 普通文件(regular file): r
  • 目录(directory): d
  • 连接(link): l
  • 设备(device)
  • 块(block)设备: b
  • 字符(character)设备文件: c
  • 套接字(sockets): s
  • 管道(FIFO, pipe): p

文件的默认权限与隐藏权限

180-181页例题

默认权限:umask,在原权限基础上减去权限

$ umask #查看
$ umask -S
$ umask 002 #设置
$ umask 022

隐藏属性:略(自学)

183页7.4.2
设置文件的隐藏属性:chattr
查看文件的隐藏属性:lsattr

权限相关习题

194页情景模拟题

Linux文件系统

磁盘与目录容量

210页8.2.1

列出文件系统的整体磁盘使用量:df

$ df -h

评估文件系统的磁盘使用量:du

$ du
$ du -a # 同时列出文件容量
$ du -sm # s: 只列出总量 m: MB

连接文件:ln

hard link(硬链接或实际连接)

$ ln /etc/crontab .
$ ll -i
  • 无法做“目录”的链接
  • 删掉其中一个,另一个可用

symbolic link(符号连接)

$ ln -s /etc/crontab crontab2
$ ll -i /etc/crontab ./crontab2
  • 相当于Windows的快捷方式,删除源文件会不可用

磁盘的分区、格式化、检验与挂载

略(自学)

压缩与打包

单一文件压缩命令

gzip, zcat

$ gzip file
$ zcat file.gz
$ gzip -d file.gz

bzip2, bzcat

$ bzip2 -z file
$ bzcat file.bz2
$ bzip2 -d file.bz2

打包命令:tar

打包同时可以压缩,tar的参数:

-z: gzip方式压缩/解压缩
-j: bzip2方式压缩/解压缩
-c: 新建打包文件
-x: 解打包或解压缩
-v: 显示过程
-f: 跟要被处理的文件名
-p: 保留原本权限与属性

打包

$ tar -zcvf dir.tar.gz dir
$ tar -jcvf dir.tar.bz2 dir
$ tar -cvf dir.tar dir

解包

$ tar -zxvf dir.tar.gz
$ tar -jxvf dir.tar.bz2
$ tar -zxvf dir.tar.gz -C /tmp

备份

# tar -zpcvf etc.tar.gz /etc
# tar -jpcvf etc.tar.bz2 /etc

查看

$ tar -ztvf dir.tar.gz
$ tar -jtvf dir.tar.bz2

vim编辑器

进入vim

$ vim 文件名

新建文档

$ vim 新文件名

不保存则不生成新文件

进入插入模式

i, I, a, A, o, O

i光标位置插入
I行首插入
o当前行后插入新行
O当前行前插入新行
a光标位置后插入
A行末尾插入

行号

显示行号

:set nu
:set number
:set nonu
:set nonumber

不显示行号

:set nu
:set number
:set nonu
:set nonumber

跳转

:数字

数字G

最后一行G

删除行、剪切

dd

数字dd

复制行

yy

数字yy

粘贴

p

块选择

Ctrl+v

预设行号

编辑~下的.vimrc文件,写入

set nu