1、介绍
- Linux是一个开源、免费的操作系统,具有很强的稳定性、安全性、以及处理多并发的能力,目前大多数企业级应用甚至是集群项目都部署运行在Linux操作系统上,很多软件公司考虑到开发成本都首选Linux,Linux在中国软件公司得到了广泛使用。
- Linux发行版本主要有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE、红旗Linux。
2、安装
- 虚拟机。
- 镜像系统。
3、常用操作及概念
快捷键
- Tab:命令和文件名补全
- Ctrl + C:中断正在运行的程序
- Ctrl + D:结束键盘输入
求助
-
–help
-
man
man是manual的缩写,将指令的基本信息显示出来,比如man date
-
info
info与man类似,但是info将文档分成一个个页面,每个页面可以跳转
-
doc
/usr/share/doc存放着一整套说明文件
关机
-
who
在关机前需要先使用who命令查看有没有其他用户在线
-
sync
为了加快对磁盘文件的读写速度,位于内存中的文件数据不会立即同步到磁盘,因此关机之前需要先进行sync同步操作
-
shutdown
-k 不会关机,只是发送警告信息,通知所有在线用户 -r 将系统服务停掉后就重新启动 -h 将系统服务停掉后就立即关机 -c 取消已经在进行的shutdown
sudo
- sudo允许一般用户使用root可执行的命令,不过只在/etc/sudoers配置文件中添加的用户才能使用该命令
VIM三个模式
- 一般指令模式:VIM的默认模式,可以用于移动游标查看内容
- 编辑模式:按下“i”等按键之后进入,可以对文本进行编辑
- 指令列模式:按下“:”按键之后进入,用于保存退出等操作
命令模式下,命令汇总
命令 | 作用 |
---|---|
:w | 写入磁盘 |
:w! | 当文件为只读时,强制写入磁盘。到底能不能写入,与用户对该文件的权限有关 |
:q | 离开 |
:q! | 强制离开不保存 |
:wq | 写入磁盘后离开 |
:wq! | 强制写入磁盘后离开 |
- 快捷键
yy:复制光标所在行
nyy:复制光标所在行向下 n 行(包括光标所在行)
p:粘贴到光标所在行的下一行
dd:删除光标所在行
ndd:删除光标所在行向下 n 行(包括光标所在行)
u:撤销上一次操作
/xxx:搜索 xxx,在命令模式下使用
set nu:显示行号,在命令模式下使用
set nonu:关闭行号,在命令模式下使用
4、分区
开机检测程序
-
BIOS
BIOS(Basic Input/Output System,基本输入输出系统),它是一个固件(嵌入在硬件中的软件),BIOS 程序存放在断电后内容不会丢失的只读内存中。
BIOS 是开机的时候计算机执行的第一个程序,这个程序知道可以开机的磁盘,并读取磁盘第一个扇区的主要开机记录(MBR),由主要开机记录(MBR)执行其中的开机管理程序,这个开机管理程序会加载操作系统的核心文件。
安装多重引导,最好先安装 Windows 再安装 Linux。因为安装 Windows 时会覆盖掉主要开机记录(MBR),而 Linux 可以选择将开机管理程序安装在主要开机记录(MBR)或者其它分区的启动扇区,并且可以设置开机管理程序的选单。
-
uefi
BIOS 不可以读取 GPT 分区表,而 UEFI 可以。
5、常见指令
文件与目录的基本操作
-
ls
列出文件或者目录的信息,目录的信息就是其中包含的文件
-a 列出全部文件 -d 仅列出目录本身 -l 以长数据串行列出,包含文件的属性与权限等等数据
-
cd
更换当前目录
-
mkdir
创建目录
-m 配置目录权限 -p 创建多级目录
-
rmdir
删除目录
-p 删除多级目录
-
touch
更新文件时间或者建立新文件
-a 更新atime -c 更新ctime,若该文件不存在,则不创建新文件 -m 更新mtime -d 可以接更新日期而不使用当前日期,也可以使用 --date="日期或时间" -t 可以接更新时间而不使用当前时间,格式为[YYYYMMDDhhmm]
-
cp
复制文件
-a 相当于 -dr --preserve=all -d 若来源文件为链接文件,则复制链接文件属性而非文件本身 -i 若目标文件已经存在时,在覆盖前会先询问 -p 连同文件的属性一起复制过去 -r 递归复制 -u destination 比 source 旧才更新 destination,或 destination 不存在的情况下才复制 --preserve=all 除了 -p 的权限相关参数外,还加入 SELinux 的属性, links, xattr 等也复制了
-
rm
删除文件
-r 递归删除
-
mv
移动文件
-f 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
修改权限
-
查看文件和目录权限
# 查看path目录下名为filename的文件或文件夹权限 ls -l path/filename # 查看path路径下的所有文件权限 ls -ls path # 查看当前文件夹权限 ls -ld 文件夹名称(所在目录)
-
1,代表文件类型,一般有三类,- 代表普通的二进制文件,l 代表符号链接文件(软链接),d 代表目录文件
-
2-4,代表文件所有者的权限表示情况,分别对应可读® 可写(w) 可执行(x),- 代表没有该项权限
-
5-7,代表文件所有者和所属组的权限表示情况,分别对应可读® 可写(w) 可执行(x),- 代表没有该项权限
-
8-10,代表除文件所有者和所属组的其他人所拥有的权限表示情况,分别对应可读® 可写(w) 可执行(x),- 代表没有该项权限
-
修改文件和目录权限
-
sudo chmod 600 ××× (只有所有者有读和写的权限)-rw------- sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)-rw-r--r-- sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)-rwx------ sudo chmod 755 xxx (只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限)-rwxr-xr-x sudo chmod 711 xxx (只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限)-rwx--x--x sudo chmod 666 ××× (每个人都有读和写的权限)-rw-rw-rw- sudo chmod 777 ××× (每个人都有读和写以及执行的权限)-rwxrwxrwx
-
# 批量修改权限,全部子目录和子文件权限被修改 chmod 777 * -R
-
# 表示给其他人授予写xxx.xxx这个文件的权限 chmod o+w xxx.xxx # 表示删除xxx.xxx中组群和其他人的读和写的权限 chmod go-rw xxx.xxx # u代表所有者(user) # g代表所有者所在的组群(group) # o代表其他人(other) # a代表全部人(包括u、g、o) # r 表示文件可以被读(read) # w 表示文件可以被写(write) # x 表示文件可以被执行(如果它是程序的话) # rwx-也可以用数字4210来分别代替 # +表示添加权限 # -表示删除权限 # =表示使之成为唯一的权限
-
默认权限
-
文件默认权限
文件默认没有可执行权限,因此为666,也就是-rw-rw-rw-
-
目录默认权限
目录必须要能够进入,也就是必须拥有可执行权限,因此为777,也就是drwxrwxrwx
获取文件内容
-
cat
取得文件内容
-n 打印出行号,连同空白行也会有行号
-
tac
是cat的反向操作,从最后一行开始打印
-
more
和 cat 不同的是它可以一页一页查看文件内容,比较适合大文件的查看
-
less
和 more 类似,但是多了一个向前翻页的功能
-
head
取得文件前几行
-n 后面接数字,代表显示几行的意思
-
tail
是 head 的反向操作,只是取得是后几行
-
od
以字符或者十六进制的形式显示二进制文件
文件搜索
-
which
指令搜索
-a 将所有指令列出,而不是只列第一个
-
whereis
文件搜索,速度比较快,因为它只搜索几个特定的目录
-
locate
文件搜索,可以用关键字或者正则表达式进行搜索。
locate 使用 /var/lib/mlocate/ 这个数据库来进行搜索,它存储在内存中,并且每天更新一次,所以无法用 locate 搜索新建的文件。可以使用 updatedb 来立即更新数据库。
-
find
文件搜索,可以使用文件的属性和权限进行搜索。
压缩与打包
常见压缩文件名
压缩指令
-
gzip
gzip 是 Linux 使用最广的压缩指令,可以解开 compress、zip 与 gzip 所压缩的文件。
经过 gzip 压缩过,源文件就不存在了。
有 9 个不同的压缩等级可以使用。
可以使用 zcat、zmore、zless 来读取压缩文件的内容。
gzip [-cdtv#] filename -c :将压缩的数据输出到屏幕上 -d :解压缩 -t :检验压缩文件是否出错 -v :显示压缩比等信息 -# : # 为数字的意思,代表压缩等级,数字越大压缩比越高,默认为 6
-
bzip2
提供比 gzip 更高的压缩比。
查看命令:bzcat、bzmore、bzless、bzgrep。
bzip2 [-cdkzv#] filename -k :保留源文件
-
xz
提供比 bzip2 更佳的压缩比。
可以看到,gzip、bzip2、xz 的压缩比不断优化。不过要注意的是,压缩比越高,压缩的时间也越长。
查看命令:xzcat、xzmore、xzless、xzgrep。
xz [-dtlkc#] filename
打包指令:
压缩指令只能对一个文件进行压缩,而打包能够将多个文件打包成一个大文件。tar 不仅可以用于打包,也可以使用 gzip、bzip2、xz 将打包文件进行压缩。
tar [-z|-j|-J] [cv] [-f 新建的 tar 文件] filename... ==打包压缩
tar [-z|-j|-J] [tv] [-f 已有的 tar 文件] ==查看
tar [-z|-j|-J] [xv] [-f 已有的 tar 文件] [-C 目录] ==解压缩
-z :使用 zip;
-j :使用 bzip2;
-J :使用 xz;
-c :新建打包文件;
-t :查看打包文件里面有哪些文件;
-x :解打包或解压缩的功能;
-v :在压缩/解压缩的过程中,显示正在处理的文件名;
-f : filename:要处理的文件;
-C 目录 : 在特定目录解压缩。
6、进程管理
-
ps
查看某个时间点的进程信息
查看自己的进程:
ps -l
查看系统所有进程:
ps aux
-
pstree
查看进程树
-
top
实时显示进程信息
两秒刷新一次
top -d 2
-
netstat
查看占用端口的进程
netstat -anp | grep port