跳至主要內容

Linux基础

blogresLinuxLinux约 2218 字大约 7 分钟

Linux基础

linux笔记

VMware安装

参考博客 csdnopen in new window

如果需要自定义分区请注意看一下:自定义分区设置

linux一般来说分为4个基本区:

用户分区:home——保存用户信息

启动分区:boot——保存系统启动的数据,一般100到200m

交换分区:swap——理解为虚拟内存,真实内存不够的时候临时会使用swap分区,一般是内存的两倍

根分区:/

Linux学习路线

Linux 内核

系统结构

linux 目录介绍

目录名称描述
/虚拟目录的根目录。通常不会在这里存储文件
/bin二进制目录,存放许多用户级的GNU工具
/boot启动目录,存放启动文件
/dev设备目录,Linux在这里创建设备节点
/etc系统配置文件目录
/home主目录,Linux在这里创建用户目录
/lib库目录,存放系统和应用程序的库文件
/media媒体目录,可移动媒体设备的常用挂载点
/mnt挂载目录,另一个可移动媒体设备的常用挂载点
/opt可选目录,常用于存放第三方软件包和数据文件
/proc进程目录,存放现有硬件及当前进程的相关信息
/rootroot用户的主目录
/sbin系统二进制目录,存放许多GNU管理员级工具
/run运行目录,存放系统运作时的运行时数据
/srv服务目录,存放本地服务的相关文件
/sys系统目录,存放系统硬件信息的相关文件
/tmp临时目录,可以在该目录中创建和删除临时工作文件
/usr用户二进制目录,大量用户级的GNU工具和数据文件都存储在这里
/var可变目录,用以存放经常变化的文件,比如日志文件
  • 可分享的: 可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据, 是能够分享给
    网络上其他主机挂载用的目录;

  • 不可分享的: 自己机器上面运作的装置文件或者是与程序有关的 socket 文件等, 由于仅与自身机器有关,
    所以当然就不适合分享给其他主机了。

  • 不变的: 有些数据是不会经常变动的,跟随着 distribution 而不变动。 例如函式库、文件说明文件、系统管
    理员所管理的主机服务配置文件等等;

  • 可变动的: 经常改变的数据,例如登录文件、一般用户可自行收受的新闻组等

Filesystem Hierarchy Standard (FHS)标准:已安装软件通常放置于哪个目录

  • / (root, 根目录):与开机系统有关;
  • /usr (unix software resource):与软件安装/执行有关;
  • /var (variable):与系统运作过程有关。

Linux 文件系统

文件系统描 述
extLinux扩展文件系统,最早的Linux文件系统
ext2第二扩展文件系统,在ext的基础上提供了更多的功能
ext3第三扩展文件系统,支持日志功能
ext4第四扩展文件系统,支持高级日志功能
hpfsOS/2高性能文件系统
jfsIBM日志文件系统
iso9660ISO 9660文件系统(CD-ROM)
minixMINIX文件系统
msdos微软的FAT16
ncpNetware文件系统
nfs网络文件系统
ntfs支持Microsoft NT文件系统
proc访问系统信息
ReiserFS高级Linux文件系统,能提供更好的性能和硬盘恢复功能
smb支持网络访问的Samba SMB文件系统
sysv较早期的Unix文件系统
ufsBSD文件系统
umsdos建立在msdos上的类Unix文件系统
vfatWindows 95文件系统(FAT32)
XFS高性能64位日志文件系统

Linux内核采用虚拟文件系统(Virtual File System,VFS)作为和每个文件系统交互的接口。这为Linux内核同任何类型文件系统通信提供了一个标准接口。当每个文件系统都被挂载和使时,VFS将信息都缓存在内存中。

Linux发行版

核心Linux发行版

发行版描 述
Slackware最早的Linux发行版中的一员,在Linux极客中比较流行
Red Hat主要用于Internet服务器的商业发行版
Fedora从Red Hat分离出的家用发行版
Gentoo为高级Linux用户设计的发行版,仅包含Linux源代码
openSUSE用于商用和家用的发行版
Debian在Linux专家和商用Linux产品中流行的发行版

特定用途的Linux发行版

发行版描述
CentOS一款基于Red Hat企业版Linux源代码构建的免费发行版
Ubuntu一款用于学校和家庭的免费发行版
PCLinuxOS一款用于家庭和办公的免费发行版
Mint一款用于家庭娱乐的免费发行版
dyne:bolic一款用于音频和MIDI应用的免费发行版
Puppy Linux一款适用于老旧PC的小型免费发行版

Linux LiveCD发行版

发行版描述
Knoppix来自德国的一款Linux发行版,也是最早的LiveCD Linux
PCLinuxOS一款成熟的LiveCD形式的Linux发行版
Ubuntu为多种语言设计的世界级Linux项目
Slax基于Slackware Linux的一款LiveCD Linux
Puppy Linux为老旧PC设计的一款全功能Linux

目录文件管理

cd 切换目录

①、命令名称:cd

②、英文原意:change directory

③、命令所在路径:shell 内置命令

④、执行权限:所有用户

⑤、功能描述:切换目录

⑥、语法: cd【目录名】

例子:

切换到指定目录:cd /home

回到上一级目录:cd ..

还是在当前目录:cd .

返回上两级目录:cd ../..

返回进入此目录之前所在的目录:cd -

ls 显示目录文件

①、命令名称:ls

②、英文原意:list

③、命令所在路径:/bin/ls

④、执行权限:所有用户

⑤、功能描述:显示目录文件

⑥、语法: ls 选项[-al]】[文件或目录]

选项:

-a 显示所有文件,包括隐藏文件

-l 详细信息显示—— ls-l 可以简写成 ll

-d 仅显示目录名,而不显示目录下的内容列表

-h 人性化显示(hommization)

-i 查看任意一个文件的i节点(类似于身份证唯一信息)

-t 用文件和目录的更改时间排序;可以用第一个显示的文件判断最近修改的文件

-F 轻松区分文件和目录: /代表目录 @代表链接文件

-R 递归选项;它列出了当前目录下包含的子目录中的文件。如果目录很多,这个输出就会很长。

注意: . 开头的文件除非是目录,否则就是隐藏文件

[root@admin /]# ls -all
总用量 24
dr-xr-xr-x.  18 root root  272 810 17:36 .
dr-xr-xr-x.  18 root root  272 810 17:36 ..
-rw-r--r--    1 root root    0 510 15:10 .autorelabel
lrwxrwxrwx.   1 root root    7 510 14:03 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 510 15:13 boot
[root@admin home]# ls -F /
bin@   data/  dump.rdb  home/  lib64@    media/  opt/   root/  sbin@  sys/  usr/
boot/  dev/   etc/      lib@   main.log  mnt/    proc/  run/   srv/   tmp/  var
[root@admin home]# ls -F -R  /home/
/home/:
dd.sh  demo.txt  soft/  user1/

/home/soft:
mysql5.7.39-el7-x86_64.tar.gz*  redis-6.2.4.tar.gz*

/home/user1:
  • ls -l dd?ff.log 代表匹配一个单词
  • ls -l dd*ff.log 代表匹配任意一个或多个单单词
  • ls -l dd[ai]ff.log [ai]匹配到a或i的文件
  • ls -l dd[1-9]ff.log 范围匹;[1-9]或[a-g]匹配到(1到9,a到g)的文件
  • ls -l dd[!a]ff.log 排除匹配到a的文件
  • ls -l dd* 匹配到以dd开头
[root@admin home]# ls
dd1ff.log     dd2ff.log  ddaff.log  ddcff.log  ddeff.log  ddg2ff.log  ddopff.log  soft
dd23opff.log  dd3ff.log  ddbff.log  dddff.log  ddfff.log  ddgff.log   demo.txt    user1
[root@admin home]# ls -l dd?ff.log
-rw-r--r-- 1 root root 0 913 15:10 dd1ff.log
-rw-r--r-- 1 root root 0 913 15:10 dd2ff.log
-rw-r--r-- 1 root root 0 913 15:10 dd3ff.log
-rw-r--r-- 1 root root 0 913 15:09 ddaff.log
-rw-r--r-- 1 root root 0 913 15:09 ddbff.log
-rw-r--r-- 1 root root 0 913 15:09 ddcff.log
-rw-r--r-- 1 root root 0 913 15:09 dddff.log
-rw-r--r-- 1 root root 0 913 15:09 ddeff.log
-rw-r--r-- 1 root root 0 913 15:09 ddfff.log
-rw-r--r-- 1 root root 0 913 15:09 ddgff.log
[root@admin home]# ls -l dd*ff.log
-rw-r--r-- 1 root root 0 913 15:10 dd1ff.log
-rw-r--r-- 1 root root 0 913 15:10 dd23opff.log
-rw-r--r-- 1 root root 0 913 15:10 dd2ff.log
-rw-r--r-- 1 root root 0 913 15:10 dd3ff.log
-rw-r--r-- 1 root root 0 913 15:09 ddaff.log
-rw-r--r-- 1 root root 0 913 15:09 ddbff.log
-rw-r--r-- 1 root root 0 913 15:09 ddcff.log
-rw-r--r-- 1 root root 0 913 15:09 dddff.log
-rw-r--r-- 1 root root 0 913 15:09 ddeff.log
-rw-r--r-- 1 root root 0 913 15:09 ddfff.log
-rw-r--r-- 1 root root 0 913 15:09 ddg2ff.log
-rw-r--r-- 1 root root 0 913 15:09 ddgff.log
-rw-r--r-- 1 root root 0 913 15:10 ddopff.log
[root@admin home]# ls -l dd[ai]ff.log
-rw-r--r-- 1 root root 0 913 15:09 ddaff.log
[root@admin home]# ls -l dd[1-9]ff.log
-rw-r--r-- 1 root root 0 913 15:10 dd1ff.log
-rw-r--r-- 1 root root 0 913 15:10 dd2ff.log
-rw-r--r-- 1 root root 0 913 15:10 dd3ff.log
[root@admin home]# ls -l dd[!a]ff.log
-rw-r--r-- 1 root root 0 913 15:10 dd1ff.log
-rw-r--r-- 1 root root 0 913 15:10 dd2ff.log
-rw-r--r-- 1 root root 0 913 15:10 dd3ff.log
-rw-r--r-- 1 root root 0 913 15:09 ddbff.log
-rw-r--r-- 1 root root 0 913 15:09 ddcff.log
-rw-r--r-- 1 root root 0 913 15:09 dddff.log
-rw-r--r-- 1 root root 0 913 15:09 ddeff.log
-rw-r--r-- 1 root root 0 913 15:09 ddfff.log
-rw-r--r-- 1 root root 0 913 15:09 ddgff.log
[root@admin home]# ls -l dd*
-rw-r--r-- 1 root root 0 913 15:10 dd1ff.log
-rw-r--r-- 1 root root 0 913 15:10 dd23opff.log
-rw-r--r-- 1 root root 0 913 15:10 dd2ff.log
-rw-r--r-- 1 root root 0 913 15:10 dd3ff.log
-rw-r--r-- 1 root root 0 913 15:09 ddaff.log
-rw-r--r-- 1 root root 0 913 15:09 ddbff.log
-rw-r--r-- 1 root root 0 913 15:09 ddcff.log
-rw-r--r-- 1 root root 0 913 15:09 dddff.log
-rw-r--r-- 1 root root 0 913 15:09 ddeff.log
-rw-r--r-- 1 root root 0 913 15:09 ddfff.log
-rw-r--r-- 1 root root 0 913 15:09 ddg2ff.log
-rw-r--r-- 1 root root 0 913 15:09 ddgff.log
-rw-r--r-- 1 root root 0 913 15:10 ddopff.log

分析:

  • ①、第一列表示文件类型:- 表示是文件,d 表示目录, l 表示软连接文件,b 表示为装置文件里面的可供储存的接口设备(可随机存取装置),c 表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

  • 后面的每三个为一组:u g o

r读 w写 x执行 -无权限

代表字符权限对文件的含义对目录的含义
r读权限可以查看文件内容可以列出目录中的内容
w写权限可以修改文件内容可以在目录中创建、删除文件
x执行权限可以执行文件可以进入目录
-无权限不可以对文件的所有操作不可以进入目录
  • ②、第2列表示:引用计数,表示文件被引用过多少次

  • ③、第3-4列表示:第一个root表示所有者,一般创建一个文件,所有者默认是创建者。第二个root表示所属组。

  • ④、第5列表示:文件字节大小,不带单位表示字节

  • ⑤、第6列表示:8月 10 17:36 文件的最后修改时间。注意:Linux没有明确的创建时间,只有最后一次访问时间、文件的状态修改时间、文件的数据修改时间

  • ⑥、第7列表示:文件名或目录名

案例:进入 / 目录,查看/目录下所有文件和所有文件的详细信息,查看bin目录下所有文件的详细信息

[root@admin ~]# cd /
[root@admin /]# ls -al /
总用量 24
dr-xr-xr-x.  18 root root  272 99 21:15 .
dr-xr-xr-x.  18 root root  272 99 21:15 ..
-rw-r--r--    1 root root    0 510 15:10 .autorelabel
lrwxrwxrwx.   1 root root    7 510 14:03 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 510 15:13 boot
drwxr-xr-x    3 root root   26 810 17:48 data

[root@admin /]# ll /bin
lrwxrwxrwx. 1 root root 7 510 14:03 /bin -> usr/bin

ln 链接创建

权限后的数字代表硬链接数

①、命令名称:ln

②、英文原意:link

③、命令所在路径:/bin/link

④、执行权限:所有用户

⑤、功能描述:生成链接文件

⑥、语法: ln -s 【源文件】【目标文件】

-s 创建软链接

不加 -s 创建硬链接

例子:

一、创建文件 /etc/issue 的软链接 /tmp/issue.soft:ln -s /etc/issue /tmp/issue.soft

二、创建文件 /etc/issue 的硬链接 /tmp/issue.hard:ln /etc/issue /tmp/issue.hard

[root@admin /]# ln -s /etc/issue /tmp/issue.soft
[root@admin /]# ln /etc/issue /tmp/issue.hard
[root@admin /]# ls -all /tmp/issue.*
-rw-r--r--. 2 root root 23 1123 2020 /tmp/issue.hard
lrwxrwxrwx  1 root root 10 99 22:24 /tmp/issue.soft -> /etc/issue
[root@admin /]# ls -i /tmp/issue.*

第一:软链接 前面是 l 开头的(link),而硬链接是 - 开头,表示文件

第二:软链接所有者和所属组具有全部操作的权限,rwxrwxrwx 而硬链接不是。也就是软链接的前面都是 lrwxrwxrwx

第三:软链接类似与 windows 的快捷方式,有一个明显的箭头指向,而指向的是源文件

第四:硬链接文件除了文件名与源文件不一样,其余所有信息都是一样的。类似于 cp 复制操作。但是又和复制不一样,硬链接可以同步更新。

第五:通过 ls -i 操作,来查看 文件的 i 节点。发现硬链接和源文件的 i 节点是相同的,而软链接与源文件的 i 节点是不同的

[root@admin /]# ls -i /etc/issue
135778923 /etc/issue
[root@admin /]# ls -all -i  /tmp/issue.*
135778923 -rw-r--r--. 2 root root 23 1123 2020 /tmp/issue.hard
134299727 lrwxrwxrwx  1 root root 10 99 22:24 /tmp/issue.soft -> /etc/issue

第六:不允许将硬链接指向目录;不允许跨分区创建硬链接

链接查看指令

mkdir 创建目录

①、命令名称:mkdir

②、英文原意:make directories

③、命令所在路径:/bin/mkdir

④、执行权限:所有用户

⑤、功能描述:创建新目录

⑥、语法: mkdir 【-p】【目录名】

-p 递归创建

例子:

创建单个目录:

[root@admin root]# mkdir data
[root@admin root]# ls
data

创建多个目录:

[root@admin root]# mkdir -p {a,b}
[root@admin root]# ls
a  b  data

注意:

1、创建的目录已经存在, 那么 Linux 会提示我们 Linux 无法创建它。

2、不带任何参数运行 mkdir 命令会在当前目录下创建目录。

3、不带上-p,如果新建的文件上级目录不存在则不会执行成功这种说法是错误的。加或者不加上 -p 前面的目录没有得都会依次创建。

4、创建目录的首要条件是, 在想要创建目录的目标路径下你必须具有访问权限

  • 案例:

    进入/根目录,创建c,e,d 目录在 home 目录中,其中e中有文件夹 softwared中有文件夹 program,program中有文件夹名为 demo.log 的目录

[root@admin root]# cd /
[root@admin /]# mkdir -p /home/{c,e/software,d/program/demo.log}
[root@admin /]# cd home/
[root@admin home]# tree
.
├── c
├── d
│   └── program
│       └── demo.log
└── e
    └── software

10 directories, 0 files

pwd 显示当前目录

①、命令名称:pwd

②、英文原意:print working directory

③、命令所在路径:/bin/pwd

④、执行权限:所有用户

⑤、功能描述:显示当前目录

⑥、语法: pwd

案例

将当前目录路径存入c盘下一个文件叫做he.txt文件

[root@admin home]# pwd > /home/c/he.log
[root@admin home]# cat /home/c/he.log
/home

> 写入内容到指定目录文件,cat 命令为用文本的方式打开一个文件

直接写字符串进入一个文本 echo "str" > file

[root@admin home]# echo "替换写入文本1" > /home/c/dd.log
[root@admin home]# echo "替换写入文本2" > /home/c/dd.log
[root@admin home]# cat /home/c/dd.log
替换写入文本2
[root@admin home]# echo "追加文本1" >> /home/c/dd.log
[root@admin home]# echo "追加文本2" >> /home/c/dd.log
[root@admin home]# cat /home/c/dd.log
替换写入文本2
追加文本1
追加文本2

cp 复制文件或目录

①、命令名称:cp

②、英文原意:copy

③、命令所在路径:/bin/cp

④、执行权限:所有用户

⑤、功能描述:复制文件或目录

⑥、语法: cp -rp 【原文件或目录】【目标目录】

-r 复制目录

-p 保留文件属性

案例:

请进入根目录,将 /home 目录下的所有文件和文件夹清空并删除,在根目录下 copy /etc/sound/events 目录下的所有文件到/home目录下的c目录中

[root@admin /]# rm -rf /home/*
[root@admin /]# ls /home/
[root@admin /]# cp -rp  /etc/samba/* /home/
[root@admin /]# ls /home/
lmhosts  smb.conf  smb.conf.example

mv 剪切文件或目录

①、命令名称:mv

②、英文原意:move

③、命令所在路径:/bin/mv

④、执行权限:所有用户

⑤、功能描述:剪切文件、改名

⑥、语法: mv【原文件或目录】【目标目录】

案例:

在/tmp目录下,创建一个文件夹d,d目录中创建一个文件b.log,进入/,将/tmp 中的d文件夹中的所有内容包含d目录本身剪切到/home目录下

[root@admin /]# cd /tmp/
[root@admin tmp]# mkdir d
[root@admin tmp]# touch ./d/b.log
[root@admin tmp]# cd /
[root@admin /]# mv /tmp/d /home/
[root@admin /]# ls /home/
d
[root@admin /]# ls /home/d/
b.log

rmdir 删除空目录

①、命令名称:rmdir

②、英文原意:remove empty directories

③、命令所在路径:/bin/rmdir

④、执行权限:所有用户

⑤、功能描述:删除空目录(如果目录下存在文件则不能删除)

⑥、语法: rmdir 【空目录名】

[root@admin home]# mkdir dd
[root@admin home]# ls
c  d  dd  e  root
[root@admin home]# rmdir dd
[root@admin home]# ls
c  d  e  root
[root@admin home]# mkdir -p ./dd/ff
[root@admin home]# ls
c  d  dd  e  root
[root@admin home]# rmdir dd
rmdir: 删除 "dd" 失败: 目录非空

rm 删除文件或目录

①、命令名称:rm

②、英文原意:remove

③、命令所在路径:/bin/rm

④、执行权限:所有用户

⑤、功能描述:剪切文件、改名

⑥、语法: rm -rf 【文件或目录】

-r 删除目录

-f 强制执行

案例:

请进入/目录,然后同时删除 /home/a与b

[root@admin /]# ls /home/
a  b  d
[root@admin /]# rm -rf /home/{a,b}
[root@admin /]# ls /home/
d

touch 创建文件

①、命令名称:

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:

⑥、语法:

[root@admin /]# touch /home/{a.log,b.log}
[root@admin /]# ls /home/
a.log  b.log  d

如果要创建一个带空格文件名的文件

[root@admin home]# touch "a b c"
[root@admin home]# ls -all
-rw-r--r--   1 root root   0 99 22:05 a b c

案例:

删除/home中所有文件以及目录,进入/目录,创建同时创建 a,b,c 文件以及a b c文件一共四个文件

[root@admin home]# touch /home/{a,b,c,"a b c"}
[root@admin home]# ls -all
-rw-r--r--   1 root root   0 99 22:08 a
-rw-r--r--   1 root root   0 99 22:08 a b c
-rw-r--r--   1 root root   0 99 22:08 b
-rw-r--r--   1 root root   0 99 22:08 c

echo 打印字符或者回显

①、命令名称:

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:打印字符或者回显,例如输入 echo ok,会显示 ok, echo
ok > test.txt 则会把 ok 字符覆盖 test.txt 内容

⑥、语法:

echo 【选项】 【输出内容】 【(输出重定向)> 文件】

echo "回显"
echo -e "支持\n回显"
echo "12311" >> 01.txt 文本末尾追加
echo "4565555" > 01.txt 替换文本内容

-e 扩展参数的常用参数

\a 发出警告声
\b 删除前一个字符
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入 tab; \v 与\f 相同;
\\ 插入\字符;
\033[30m 黑色字 \033[0m
\033[31m 红色字 \033[0m
\033[32m 绿色字 \033[0m
\033[33m 黄色字 \033[0m
\033[34m 蓝色字 \033[0m
\033[35m 紫色字 \033[0m
\033[36m 天蓝字 \033[0m
\033[37m 白色字 \033[0m
\033[40;37m 黑底白字 \033[0m
\033[41;37m 红底白字 \033[0m
\033[42;37m 绿底白字 \033[0m
\033[43;37m 黄底白字 \033[0m
\033[44;37m 蓝底白字 \033[0m
\033[45;37m 紫底白字 \033[0m
\033[46;37m 天蓝底白字 \033[0m
\033[47;30m 白底黑字 \033[0m

echo 颜色打印扩展,auto.shopen in new window 内容如下:

echo -e "\033[36mPlease Select Install Menu follow:\033[0m"
echo -e "\033[32m1)Install Apache Server\033[1m"
echo "2)Install MySQL Server"
echo "3)Install PHP Server"
echo "4)Configuration index.php and start LAMP server"
echo -e "\033[31mUsage: { /bin/sh $0 1|2|3|4|help}\033[0m"

tee

①、命令名称:

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:

⑥、语法:

tee 01.txt <<-'EOF'
{
  "registry-mirrors": ["https"]
}
EOF

cat 显示较少内容

①、命令名称:

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:在 Linux 系统下使用 cat 命令进行多个小文件的合并也很方便

⑥、语法:

cat [选项] [文件名]

-b: #空行不计入行号的统计
-n: #显示行号
-e: #以$字符作为每行的结尾
-t: #显示TAB字符(^I),禁用制表符

⑦、使用实例

# 合并文件
[root@admin home]# cat /data/users_* > users.sql

[root@admin home]# cat demo.txt
sdfsdfsdf

1354354

34sdr23424sdfs

[root@admin home]# cat -n demo.txt
     1  sdfsdfsdf
     2
     3  1354354
     4
     5  34sdr23424sdfs
     6
[root@admin home]# cat -b demo.txt
     1  sdfsdfsdf

     2  1354354

     3  34sdr23424sdfs

[root@admin home]# cat -T demo.txt
sdfsdfsdf

1354354

34sdr23424sdfs

# 替换全部内容
cat -s <<EOF > /home/test/k8s.conf
vm.swappiness=0
EOF

# 追加内容
cat -s <<EOF >> /home/test/k8s.conf
vm.swappiness=0
EOF

⑧、帮助信息

# 帮助信息
$ cat --h
Usage: cat [OPTION]... [FILE]...
Concatenate FILE(s) to standard output.

With no FILE, or when FILE is -, read standard input.

  -A, --show-all           equivalent to -vET
  -b, --number-nonblank    number nonempty output lines, overrides -n
  -e                       equivalent to -vE
  -E, --show-ends          display $ at end of each line
  -n, --number             number all output lines
  -s, --squeeze-blank      suppress repeated empty output lines
  -t                       equivalent to -vT
  -T, --show-tabs          display TAB characters as ^I
  -u                       (ignored)
  -v, --show-nonprinting   use ^ and M- notation, except for LFD and TAB
      --help     display this help and exit
      --version  output version information and exit

Examples:
  cat f - g  Output f's contents, then standard input, then g's contents.
  cat        Copy standard input to standard output.

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
Full documentation at: <http://www.gnu.org/software/coreutils/cat>
or available locally via: info '(coreutils) cat invocation'

more 向后分页

①、命令名称:

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:

⑥、语法:

/bin/more文件,执行效果是翻页翻行——只能往后面翻

执行more的时候,按enter是往下走一行,space空格键是往下翻一页,q或者Q退出翻页模式

[root@admin home]# more a
rh
r
th
df
sdf
gffd
ghgh
werwer
hyughj
gyhjg
e
r
--More--(5%)

less 前后翻页

①、命令名称:

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:

⑥、语法:

pgdn后翻一页,pgup前翻一页,enter翻一行,空格后翻一页

上键上翻一行,下键下翻一行

输入/ 后输入关键字例如/echo +enter键 查找当页索引内容

q或者是Q,直接退出

[root@admin home]# less a

find 查找文件或者目录

①、命令名称: find

②、英文原意:

③、命令所在路径: /usr/bin/find

④、执行权限:所有用户

⑤、功能描述: find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。

⑥、语法:

find 【搜索范围】 【选项】

选项:

  • -name<查询方式> 按照指定的文件名查找模式查找文件
  • -user<用户名> 查找属于指定用户名所有文件
  • -size<文件大小> 按照指定的文件大小查找文件
    +n大于 -n小于 n等于)

我们可以将其计量单位指定为以下约定:

  • b:512 字节块(默认)
  • c:字节
  • w:双字节字
  • k:KB
  • M:MB
  • G:GB

(1)按文件名:根据名称查找/目录下的所有 txt 文件。

find xiaoyu/ -name “*.txt”

(2)按拥有者:查找/opt目录下,所属用户名称为 user1 的文件

find xiaoyu/ -user user1

(3)按文件大小:在/home目录下查找大于200m的文件

find /home -size +204800
find /home -type f -size +10M -size -1G

(4)删除该目录下最后一次访问时间超过一年的日志文件呢?

find . -type f -atime +365 -exec rm -rf {} \;

(5)按名称或正则表达式查找文件

find . -name test.txt
find ./books -name "*.pdf"
find ./books -type f -name "*.pdf"

默认情况下,find 命令会搜索常规文件,但最好进行指定(-type f)以使所有内容更清晰。

(6)查找不同类型的文件

除了搜索常规文件外,我们还可以通过指定 -type 选项来搜索其他类型的文件。

例如目录:

find . -type d -name "yu*"

或者符号链接:

find . -type l -name "yu*"

(7)按指定的时间戳查找文件

要按指定的时间戳搜索文件,我们需要知道 Linux 系统中的 3 个不同的时间戳:

访问时间戳(atime) :最后一次读取文件的时间。

修改时间戳(mtime) :文件内容最后一次被修改的时间。

更改时间戳(ctime) :上次更改文件元数据的时间(如,所有权、位置、文件类型和权限设置)

find . -type f -atime +365
find . -type f -mtime 5
find . -type f -ctime +5 -ctime -10

(9)按权限查找文件

-perm 选项可以帮助我们按指定权限查找文件

find . -type f -perm 777

(10)按所有权查找文件

使用 -user 选项指定用户名。

例如,以下命令将查找所有属于 yu 的文件:

find -type f -user yu

(11)在找到文件后执行命令

在找到我们需要的文件后进行后续操作。

例如将其删除,或检查它们的详细信息等等。

-exec 命令使这些所有事情变得更加容易

find . -type f -atime +365 -exec rm -rf {} \;

{} 是用于查找结果的占位符。

注意:占位符 {} 非常重要,尤其是在您想删除文件时。
因为,如果您不使用它,该命令将对所有文件执行
(而不是您刚刚通过 find 命令找到的文件)。

一个使用占位符:

find . -type f -atime +5 -exec ls {} \;

另一个不使用:

find . -type f -atime +5 -exec ls \;

-exec 选项后面的命令必须以分号(;)结束。
众所周知,转义字符用于去除单个字符的特殊含义。
在 Linux 中,反斜杠 \ 用作转义字符。
所以我们将它用于分号字符。

head 查看文件内容

①、命令名称:head

②、英文原意:

③、命令所在路径:/usr/bin/head

④、执行权限:所有用户

⑤、功能描述: 查看文件内容,通常查看文件前10行

⑥、语法

head 【选项】 【文件】

  • -c, --bytes=[-]K 显示每个文件的前 K 字节内容,如果附加"-"参数,则除了每个文件的最后 K 字节数据外显示剩余全部内容;
  • -n, --lines=[-]K 显示每个文件的前 K 行内容,如果附加"-"参数,则除了每个文件的最后 K 行外显示剩余全部内容
  • -q, --quiet, --silent 不显示包含给定文件名的文件头
  • -v, --verbose 总是显示包含给定文件名的文件头
[root@admin home]# head demo.txt
sdfsdfsdf

1354354

34sdr23424sdfs

34sdr23424sdfs
34sdr23424sdfs
34sdr23424sdfs
34sdr23424sdfs
[root@admin home]# head -3 demo.txt
sdfsdfsdf

1354354

tail 查看文件内容后10行

①、命令名称:tail

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:查看文件内容后10行

⑥、语法:

tail 【选项】 【文件】

[root@admin home]# tail demo.txt
34sdr23424sdfs1
34sdr23424sdfs2
34sdr23424sdfs3
34sdr23424sdfs4
34sdr23424sdfs5
34sdr23424sdfs6
34sdr23424sdfs7
34sdr23424sdfs8
34sdr23424sdfs9
34sdr23424sdfs10

[root@admin home]# tail -n 2 demo.txt
34sdr23424sdfs9
34sdr23424sdfs10

file 查看文件类型

①、命令名称:file

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:查看文件类型

⑥、语法:

file 【文件】

[root@admin home]# file user1
user1: directory
[root@admin home]# file demo.txt
demo.txt: empty
[root@admin home]# ln -s ./demo.txt ./user1/
[root@admin home]# ls -l user1/
总用量 0
lrwxrwxrwx 1 root root 10 913 15:23 demo.txt -> ./demo.txt
[root@admin home]# file user1/demo.txt
user1/demo.txt: broken symbolic link to `./demo.txt'
[root@admin home]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=c8ada1f7095f6b2bb7ddc848e088c2d615c3743e, stripped

whereis

①、命令名称:

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:

⑥、语法:

whereis [选项] 文件

选项:

  • -b 只搜索二进制文件
  • -B <目录> 定义二进制文件查找路径
  • -m 只搜索 man 手册
  • -M <目录> 定义 man 手册查找路径
  • -s 只搜索源代码
  • -S <目录> 定义源代码查找路径
  • -f 终止 <目录> 参数列表
  • -u 搜索不常见记录
  • -l 输出有效查找路径

sort 排序数据

①、命令名称:sort

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:对数据进行排序

⑥、语法:

cat 【选项】 【文件】

[root@admin home]# cat demo.txt
one
two
three
four
five

[root@admin home]# sort demo.txt

five
four
one
three
two

[root@admin home]# sort ds.log
1
10
100
145
2
3
45
75
[root@admin home]# sort -n ds.log
1
2
3
10
45
75
100
145

[root@admin home]# sort df.log
Apr
Aug
Dec
Feb
Jan
Jul
Jun
Mar
May
Nov
Oct
Sep
[root@admin home]# sort -M df.log
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec

-k 和 -t 参数在对按字段分隔的数据进行排序时非常有用

[root@admin home]# sort -t ':' -k 3 -n /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
pkiuser:x:17:17:Certificate System:/usr/share/pki:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin

按第三个字段——用户ID的数值排序

-n 参数在排序数值时非常有用,比如 du 命令的输出:( -r 参数将结果按降序输出)

[root@admin home]# du -sh * | sort -nr
921M    soft
16K     user1
4.0K    ds.log
4.0K    df.log
4.0K    demo.txt
0       ddopff.log
0       ddgff.log
0       ddg2ff.log

符号含义

符号含义
l管道符或者正则
>输出重定向
>>输出追加重定向
<输入重定向
<<输入追加重定向
~当前用户家的目录
$() ``引用命令被执行后的结果
$以 xx结尾的(正则表达式)
^以 xx开头的(正则表达式)
*匹配全部字符,通配符
?任意一个字符,通配符
#注释
&让脚本或程序在后台执行
&&并且,条件同时成立
[]表示一个范围(正则表达式,通配符)
{}产生一个系列(通配符)
.当前目录的硬链接
..上级目录的硬链接

编辑器

vim

①、命令名称:

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:

⑥、语法:

vi filename,创建文件的同时写入内容

vim 是 vi 编辑器的增强

vim进入编辑文本,i开始输入,esc命令模式,: 在命令模式下输入冒号进入编辑模式,输入命令+enter回到命令模式,:wq保存退出:q不保存退出 :q ! 强制退出:x 保存并退出

快捷键:

dd 删除当前行,yy 复制当前行,p复制当前行,:set nu 设置行号,:set nonu取消行号,:n到第n行,$移动到行尾,0移动到行首

用户及权限管理

chown 所属组

①、命令名称:

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:

⑥、语法:

chown 【选项】 【所属用户:所属组】 【文件目录】

#将demo文件所属的用户为 root,组为 kong。
chown -R root:kong demo.txt
#修改 demo 文件夹所属的组为 root
chown -R :root demo.txt
chgrp –R root demo.txt

chmod 文件权限

①、命令名称:chmod

②、英文原意:change the permissions mode of a file

③、命令所在路径:/bin/chmod

④、执行权限:所有用户

⑤、功能描述:改变文件或目录权限

⑥、语法:

  • chmod 【{ugoa}{+-=}{rwx}】【文件或目录】
  • chmod 【mode=421】 【文件或目录】

u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)

mode=421, 读 r 表示4,写 w表示2,执行 x表示1;rwx=7,rw-=6,r--=4,---=0

-R 递归修改

u:user 所有者,g:group组,o:other其他访问者,a:all 所有使用者

对应的位置是前 中 后三个位置

chmod -R 777 demo.txt
chmod -R 740 demo.txt
chmod -R 651 demo.txt

(1)授予用户对 demo 目录拥有 rwx 权限

chmod –R u+rwx demo

(2)授予组对 demo 目录拥有 rwx 权限

chmod –R g+rwx demo

(3)授予用户、组、其他人对 demo 目录拥有 rwx 权限

chmod –R u+rwx,g+rwx,o+rwx demo

(4) 撤销用户对 demo 目录拥有 w 权限

chmod –R u-w demo

(5) 撤销用户、组、其他人对 demo 目录拥有 x 权限

chmod –R u-x,g-x,o-x demo

(6) 授予用户、组、其他人对 demo 目录只有 rx 权限

chmod –R u=rx,g=rx,o=rx demo

usermod 将用户添加到其他组

①、命令名称:

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:

⑥、语法:

usermod -aG root kong ;将kong添加到root组

umask 显示、设置文件的缺省权限

①、命令名称:umask

②、英文原意:the user file-creation mask

③、命令所在路径:shell 内置命令

④、执行权限:所有用户

⑤、功能描述:显示、设置文件的缺省权限

⑥、语法: umask 【-S】

-S 以rwx形式显示新建文件的缺省权限

注意:可能大家不太明白这个命令的意思,我们分别执行umask 和 umask -S 如下:

[root@admin home]# umask
0022
[root@admin home]# umask -S
u=rwx,g=rx,o=rx

其中umask 执行显示结果是 0022,第一个0表示特殊权限,后面我们会单独进行讲解有哪几种特殊权限。022表示权限的掩码值,我们用7 7 7 减去 0 2 2得到755(是每一位相减),表示的就是下面通过加上-S输出的rwxr-xr-x,这个值用数字表示就是755.

这个意思说明创建一个文件的默认权限所有者为rwx,所属组为rx,其他人为rx。也就是说创建一个新文件默认权限为 rwxr-xr-x,我们创建一个文件来验证一下:

[root@admin home]# touch a.log
[root@admin home]#
[root@admin home]# ll a.log
-rw-r--r-- 1 root root 0 99 22:42 a.log

我们发现使用touch命令创建了一个文件a.txt,然后发现权限并不是rwxr-xr-x,而是rw-r--r--。对比发现少了三个x,也就是少了可执行权限。这是为什么呢?

这是因为在Linux系统中,所有新创建的文件都是没有可执行权限的。这是出于Linux系统的一种自我保护,因为类似的病毒木马程序都是具有可执行权限的。所以在Linux系统中,新创建的文件是没有可执行权限的。

那么我们如何设置默认权限呢?比如我们想将新创建的文件权限设置为rwxr-xr--,也就是754。我们用777减去754得到023。也就是通过执行 umask 023 来完成默认权限设置。


文件传输


sed

# 设置IP
  sed -ri "/IPADDR/s#(.*.)\..*#\1.${ip}\"#" /etc/sysconfig/network-scripts/ifcfg-ens33
# 设置UUID
  sed -ri "s/UUID=.*/UUID=\"${UUID}\"/" /etc/sysconfig/network-scripts/ifcfg-ens33
  #$(sed -n '3,100p) 读取文件的3-100行
  cat /etc/hosts\n$(sed -n '3,100p' /etc/hosts)

gawk

正则表达式

系统管理

ps 进程管理

①、命令名称:ps

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:进程管理,显示了程序的进程ID(Process ID,PID)、它们运行在哪个终端(TTY)
以及进程已用的CPU时;它只能显示某个特定时间点的信息

⑥、语法:

ps 【选项】

Unix风格的参数

  • -A 显示所有进程
  • -N 显示与指定参数不符的所有进程
  • -a 显示除控制进程(session leader ① )和无终端进程外的所有进程
  • -d 显示除控制进程外的所有进程
  • -e 显示所有进程
  • -C cmdlist 显示包含在 cmdlist 列表中的进程
  • -G grplist 显示组ID在 grplist 列表中的进程
  • -U userlist 显示属主的用户ID在 userlist 列表中的进程
  • -g grplist 显示会话或组ID在 grplist 列表中的进程 ②
  • -p pidlist 显示PID在 pidlist 列表中的进程
  • -s sesslist 显示会话ID在 sesslist 列表中的进程
  • -t ttylist 显示终端ID在 ttylist 列表中的进程
  • -u userlist 显示有效用户ID在 userlist 列表中的进程
  • -F 显示更多额外输出(相对 -f 参数而言)
  • -O format 显示默认的输出列以及 format 列表指定的特定列
  • -M 显示进程的安全信息
  • -c 显示进程的额外调度器信息
  • -f 显示完整格式的输出
  • -j 显示任务信息
  • -l 显示长列表
  • -o format 仅显示由 format 指定的列
  • -y 不要显示进程标记(process flag,表明进程状态的标记)
  • -Z 显示安全标签(security context) ① 信息
  • -H 用层级格式来显示进程(树状,用来显示父进程)
  • -n namelist 定义了 WCHAN 列显示的值
  • -w 采用宽输出模式,不限宽度显示
  • -L 显示进程中的线程
  • -V 显示 ps 命令的版本号
[root@admin home]# ps
   PID TTY          TIME CMD
  2048 pts/0    00:00:00 bash
 19813 pts/0    00:00:00 head
 91275 pts/0    00:00:05 ls
108430 pts/0    00:00:00 cat
116369 pts/0    00:00:00 ps

[root@admin home]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          2      0  0 10:54 ?        00:00:00 [kthreadd]
root          3      2  0 10:54 ?        00:00:00 [rcu_gp]
root          4      2  0 10:54 ?        00:00:00 [rcu_par_gp]
root          6      2  0 10:54 ?        00:00:00 [kworker/0:0H-kb]
root          8      2  0 10:54 ?        00:00:00 [mm_percpu_wq]
root          9      2  0 10:54 ?        00:00:00 [ksoftirqd/0]
  • UID:启动这些进程的用户。
  • PID:进程的进程ID。
  • PPID:父进程的进程号(如果该进程是由另一个进程启动的)。
  • C:进程生命周期中的CPU利用率。
  • STIME:进程启动时的系统时间。
  • TTY:进程启动时的终端设备。
  • TIME:运行进程需要的累计CPU时间。
  • CMD:启动的程序名称。
[root@admin home]# ps -l
F S   UID    PID   PPID  C PRI  NI ADDR SZ   WCHAN  TTY          TIME CMD
4 S     0   2048   2043  0  80   0  -  29250 do_wai pts/0    00:00:00 bash
0 T     0  19813   2048  0  80   0  -  27071 do_sig pts/0    00:00:00 head
4 T     0  91275   2048  0  80   0  -  30984 do_sig pts/0    00:00:05 ls
0 T     0 108430   2048  0  80   0  -  27020 do_sig pts/0    00:00:00 cat
4 R     0 119231   2048  0  80   0  -  38333 -      pts/0    00:00:00 ps
  • F :内核分配给进程的系统标记。
  • S :进程的状态(O代表正在运行;S代表在休眠;R代表可运行,正等待运行;Z代表僵化,进程已结束但父进程已不存在;T代表停止)。
  • PRI :进程的优先级(越大的数字代表越低的优先级)。
  • NI :谦让度值用来参与决定优先级。
  • ADDR :进程的内存地址。
  • SZ :假如进程被换出,所需交换空间的大致大小。
  • WCHAN :进程休眠的内核函数的地址

BSD风格的参数

参 数

  • T 显示跟当前终端关联的所有进程
  • a 显示跟任意终端关联的所有进程
  • g 显示所有的进程,包括控制进程
  • r 仅显示运行中的进程
  • x 显示所有的进程,甚至包括未分配任何终端的进程
  • U userlist 显示归 userlist 列表中某用户ID所有的进程
  • p pidlist 显示PID在 pidlist 列表中的进程
  • t ttylist 显示所关联的终端在 ttylist 列表中的进程
  • O format 除了默认输出的列之外,还输出由 format 指定的列
  • X 按过去的Linux i386寄存器格式显示
  • Z 将安全信息添加到输出中
  • j 显示任务信息
  • l 采用长模式
  • o format 仅显示由 format 指定的列
  • s 采用信号格式显示
  • u 采用基于用户的格式显示
  • v 采用虚拟内存格式显示
  • N namelist 定义在 WCHAN 列中使用的值
  • O order 定义显示信息列的顺序
  • S 将数值信息从子进程加到父进程上,比如CPU和内存的使用情况
  • c 显示真实的命令名称(用以启动进程的程序名称)
  • e 显示命令使用的环境变量
  • f 用分层格式来显示进程,表明哪些进程启动了哪些进程
  • h 不显示头信息
  • k sort 指定用以将输出排序的列
  • n 和 WCHAN 信息一起显示出来,用数值来表示用户ID和组ID
  • w 为较宽屏幕显示宽输出
  • H 将线程按进程来显示
  • m 在进程后显示线程
  • L 列出所有格式指定符
  • V 显示 ps 命令的版本号
[root@admin home]# ps l
F   UID    PID   PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0   1155      1  20   0 110212  1832 wait_w Ss+  tty1       0:00 /sbin/agetty --noclear tty1 linux
4     0   2048   2043  20   0 117000  5112 do_wai Ss   pts/0      0:00 -bash
0     0  19813   2048  20   0 108284  1784 do_sig T    pts/0      0:00 head
4     0  91275   2048  20   0 123936  3304 do_sig T    pts/0      0:05 ls --color=auto -F -R /
0     0 108430   2048  20   0 108080   656 do_sig T    pts/0      0:00 cat
4     0 120675   2048  20   0 153332  3776 -      R+   pts/0      0:00 ps l
  • VSZ:进程在内存中的大小,以千字节(KB)为单位。
  • RSS:进程在未换出时占用的物理内存。
  • STAT:代表当前进程状态的双字符状态码
    • < :该进程运行在高优先级上。
    • N :该进程运行在低优先级上。
    • L :该进程有页面锁定在内存中。
    • s :该进程是控制进程。
    • l :该进程是多线程的。
    • + :该进程运行在前台.

top 实时监测进程

①、命令名称:top

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:实时监测进程

⑥、语法:

top

[root@admin home]# top
      当前时间     系统的运行时间  登录的用户数  平均负载(最近1、5、15分钟的平均负载) 
top - 16:11:29 up  5:17,       1 user,     load average: 0.03, 0.04, 0.01
Tasks: 172 total,   1 running,  94 sleeping,   3 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.2 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :  8125040 total,  7215700 free,   497648 used,   411692 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  7312988 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
   386 root     -51   0       0      0      0 S   0.3  0.0   0:02.21 irq/16-vmwgfx
  1341 mysql     20   0 2145300 278712  15668 S   0.3  3.4   0:11.85 mysqld
  2049 root      20   0  114216   4088   2888 S   0.3  0.1   0:53.76 bash
100754 root      20   0       0      0      0 I   0.3  0.0   0:02.57 kworker/1:0-eve
121612 root      20   0       0      0      0 I   0.3  0.0   0:00.08 kworker/2:1-mm_
125813 root      20   0  162108   4536   3800 R   0.3  0.1   0:00.09 top
     1 root      20   0  125556   5464   3940 S   0.0  0.1   0:06.66 systemd
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.02 kthreadd
     3 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 rcu_gp
     4 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 rcu_par_gp
     6 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 kworker/0:0H-kb
     8 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 mm_percpu_wq
     9 root      20   0       0      0      0 S   0.0  0.0   0:00.02 ksoftirqd/0
    10 root      20   0       0      0      0 I   0.0  0.0   0:10.64 rcu_sched
    11 root      rt   0       0      0      0 S   0.0  0.0   0:00.05 migration/0
    13 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/0
    14 root      20   0       0      0      0 S   0.0  0.0   0:00.00 cpuhp/1
  • 第一行显示了当前时间、系统的运行时间、登录的用户数以及系统的平均负载(最近1分钟的、
    最近5分钟的和最近15分钟的平均负载)
    值越大说明系统的负载越高。由于进程短期的突发性活动,出现最近1分钟的高负载值也很常见,
    但如果近15分钟内的平均负载都很高,就说明系统可能有问题
  • 第二行显示了进程概要信息—— top 命令的输出中将进程叫作任务(task):有多少进程处在
    运行、休眠、停止或是僵化状态(僵化状态是指进程完成了,但父进程没有响应)
  • 第三行显示了CPU的概要信息。 top 根据进程的属主(用户还是系统)和进程的状态(运行、
    空闲还是等待)将CPU利用率分成几类输出
  • 其后的两行说明了系统内存的状态。
    • 第一行说的是系统的物理内存:总共有多少内存,当前用了多少,还有多少空闲。
    • 后一行说的是同样的信息,不过是针对系统交换空间(如果分配了的话)的状态而言的。
  • PID:进程的ID。
  • USER:进程属主的名字。
  • PR:进程的优先级。
  • NI:进程的谦让度值。
  • VIRT:进程占用的虚拟内存总量。
  • RES:进程占用的物理内存总量。
  • SHR:进程和其他进程共享的内存总量。
  • S:进程的状态(D代表可中断的休眠状态,R代表在运行状态,S代表休眠状态,T代表跟踪状态或停止状态,Z代表僵化状态)。
  • %CPU:进程使用的CPU时间比例。
  • %MEM:进程使用的内存占可用内存的比例。
  • TIME+:自进程启动到目前为止的CPU时间总量。
  • COMMAND:进程所对应的命令行名称,也就是启动的程序名。

Linux进程信号

具体操作命令

kill 终止进程

CSDN博客open in new window

①、命令名称:kill

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:终止进程

⑥、语法:

kill [参数] 进程号

代码名称描述
0EXIT程序退出时收到该信息
1HUP挂起,也会造成某些进程在没有终止的情况下重新初始化。
2INT中断,表示结束进程,但并不是强制性的,常用的 “Ctrl+C” 组合键发出就是一个 kill -2 的信号。
3QUIT结束运行
9KILL杀死进程,即强制结束进程
11SEGV段错误
15TERM正常结束进程,是 kill 命令的默认信号。
17STOP无条件停止运行,但不终止
18TSTP停止或暂停,但继续在后台运行
19CONT在 STOP 或 TSTP 之后恢复执行
kill -3 $$
kill -0 $PPID
kill -9 5215

killall

killall http*

警告:以root用户身份登录系统时,使用 killall 命令要特别小心,因为很容易就会误用通配符
而结束了重要的系统进程。这可能会破坏文件系统。

防火墙

实际应用场景中防火墙是要打开的,只能开放端口来外部访问。一般是通过开放端口来实现,关闭防火墙容易导致安全问题。

启动命令systemctl start firewalldsystemctl restart firewalldsystemctl status firewalld

自动启动systemctl disable firewalld | systemctl enablefirewalld

开放端口firewall-cmd --zone=public --add-port=3306/tcp --permanent

--zone #作用域

--add-port=3306/tcp #添加端口,格式为:端口/通讯协议

--permanent #永久生效,没有此参数重启后失效

查看开启端口netstat -ntlp 或:firewall-cmd --list-ports

deepin 防火墙

获取更新sudo apt-get update

更新系统sudo apt-get dist-upgrade -y

清理更新缓存sudo apt-get autoclean

sudo apt-get install ufw || sudo apt install gufw

sudo ufw status:active 启动,inactive 未启动

sudo ufw enable 开启

sudo ufw disable 关闭

端口

查看:netstat -tunlp |grep port

netstat -ntlp 或:firewall-cmd --list-ports

修改文件监视程序数量的系统限制

sudo echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf

系统设置

安装软件程序

包管理基础

使用Debian包

使用Red Hat包

从源码安装

备份压缩

命令文件格式描述
bzip2.bz2采用Burrows-Wheeler块排序文本压缩算法和霍夫曼编码
gzip.gz用来压缩文件;输出.gz
gunzip用来解压文件
gzcat.gz用来查看压缩过的文本文件的内容
zip.zipWindows上PKZIP工具的Unix实现
zipinfo
gzexe
tar.tar

tar 归档数据

①、命令名称:tar

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:归档数据

⑥、语法:

tar function [options] object1 object2 ...

tar -zxvf xxx.tar
tar -zxvf xxx.tar.gz

首先,你可以用下列命令来创建一个归档文件:

tar -cvf test.tar test/ test2/

上面的命令创建了名为test.tar的归档文件,含有test和test2目录内容。接着,用下列命令:

tar -tf test.tar

列出tar文件test.tar的内容(但并不提取文件)。最后,用命令:

tar -xvf test.tar

磁盘管理

  • df(英文全称:disk free):列出文件系统的整体磁盘使用量
  • du(英文全称:disk used):检查磁盘空间使用量
  • fdisk:用于磁盘分区

df 检查文件系统的磁盘空间占用情况

①、命令名称:df

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

⑥、语法:

df [-ahikHTm] [目录或文件名]

选项与参数:

  • -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
  • -k :以 KBytes 的容量显示各文件系统;
  • -m :以 MBytes 的容量显示各文件系统;
  • -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
  • -H :以 M=1000K 取代 M=1024K 的进位方式;
  • -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
  • -i :不用硬盘容量,而以 inode 的数量来显示

实例 1

将系统内所有的文件系统列出来!

[root@admin home]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
devtmpfs                 4049260       0  4049260    0% /dev
tmpfs                    4062520       0  4062520    0% /dev/shm
tmpfs                    4062520    9236  4053284    1% /run
tmpfs                    4062520       0  4062520    0% /sys/fs/cgroup
/dev/mapper/centos-root 83845120 7093704 76751416    9% /
/dev/sda1                1038336  148440   889896   15% /boot
/dev/mapper/centos-home 95496644  975504 94521140    2% /home
tmpfs                     812504       0   812504    0% /run/user/0

在 Linux 底下如果 df 没有加任何选项,那么默认会将系统内所有的 (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来!

实例 2

将容量结果以易读的容量格式显示出来

[root@admin home]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 3.9G     0  3.9G    0% /dev
tmpfs                    3.9G     0  3.9G    0% /dev/shm
tmpfs                    3.9G  9.1M  3.9G    1% /run
tmpfs                    3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   80G  6.8G   74G    9% /
/dev/sda1               1014M  145M  870M   15% /boot
/dev/mapper/centos-home   92G  953M   91G    2% /home
tmpfs                    794M     0  794M    0% /run/user/0

实例 3

将系统内的所有特殊文件格式及名称都列出来

[root@admin home]# df -aT
文件系统                类型           1K-块    已用     可用 已用% 挂载点
sysfs                   sysfs              0       0        0     - /sys
proc                    proc               0       0        0     - /proc
devtmpfs                devtmpfs     4049260       0  4049260    0% /dev
securityfs              securityfs         0       0        0     - /sys/kernel/security
tmpfs                   tmpfs        4062520       0  4062520    0% /dev/shm
devpts                  devpts             0       0        0     - /dev/pts
cgroup                  cgroup             0       0        0     - /sys/fs/cgroup/systemd
pstore                  pstore             0       0        0     - /sys/fs/pstore
configfs                configfs           0       0        0     - /sys/kernel/config
/dev/mapper/centos-root xfs         83845120 7093704 76751416    9% /
systemd-1               -                  -       -        -     - /proc/sys/fs/binfmt_misc
debugfs                 debugfs            0       0        0     - /sys/kernel/debug
mqueue                  mqueue             0       0        0     - /dev/mqueue
hugetlbfs               hugetlbfs          0       0        0     - /dev/hugepages
fusectl                 fusectl            0       0        0     - /sys/fs/fuse/connections
/dev/sda1               xfs          1038336  148440   889896   15% /boot
/dev/mapper/centos-home xfs         95496644  975504 94521140    2% /home
sunrpc                  rpc_pipefs         0       0        0     - /var/lib/nfs/rpc_pipefs
binfmt_misc             binfmt_misc        0       0        0     - /proc/sys/fs/binfmt_misc
tmpfs                   tmpfs         812504       0   812504    0% /run/user/0

实例 4

将 /etc 底下的可用的磁盘容量以易读的容量格式显示

[root@admin home]# df -h /etc
文件系统                   容量  已用    可用  已用%   挂载点
/dev/mapper/centos-root   80G  6.8G   74G   9%    /

du 查看使用空间

①、命令名称:du

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:Linux du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍 Linux du 命令。

⑥、语法:

du [-ahskm] 文件或目录名称

选项与参数:

  • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
  • -h :以人们较易读的容量格式 (G/M) 显示;
  • -s :列出总量而已,而不列出每个各别的目录占用容量;
  • -S :不包括子目录下的总计,与 -s 有点差别。
  • -k :以 KBytes 列出容量显示;
  • -m :以 MBytes 列出容量显示;

实例 1

只列出当前目录下的所有文件夹容量(包括隐藏文件夹):

[root@admin home]# du
4       ./c  <==每个目录都会列出来
942476  ./soft <==每个目录都会列出来
942480  .  <==这个目录(.)所占用的总量
....中间省略....
12      ./.gconfd   <==包括隐藏文件的目录          

直接输入 du 没有加任何选项时,则 du 会分析当前所在目录里的子目录所占用的硬盘空间。

实例 2

将文件的容量也列出来

[root@admin ~]# du -a
4       ./.bash_logout
4       ./.bash_profile
4       ./.bashrc
4       ./.ssh/id_rsa
4       ./.ssh/id_rsa.pub
4       ./.ssh/known_hosts
12      ./.ssh
....中间省略....
8080    .

实例 3

检查根目录底下每个目录所占用的容量

[root@admin ~]# du -sm /*
0       /bin
113     /boot
0       /data
0       /dev
1       /dump.rdb
367     /etc
921     /home
0       /lib
0       /lib64
1       /main.log
0       /media
0       /mnt
0       /opt
du: 无法访问"/proc/14950": 没有那个文件或目录
du: 无法访问"/proc/14951/task/14951/fd/3": 没有那个文件或目录
du: 无法访问"/proc/14951/task/14951/fdinfo/3": 没有那个文件或目录
du: 无法访问"/proc/14951/fd/3": 没有那个文件或目录
du: 无法访问"/proc/14951/fdinfo/3": 没有那个文件或目录
0       /proc
8       /root
10      /run
0       /sbin
0       /srv
0       /sys
1       /tmp
4724    /usr
1725    /var

通配符 * 来代表每个目录。

与 df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。

fdisk 磁盘分区表

①、命令名称:

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:

⑥、语法:

fdisk 是 Linux 的磁盘分区表操作工具。

语法:

fdisk [-l] 装置名称
fdisk [选项] <磁盘>    更改分区表
fdisk [选项] -l <磁盘> 列出分区表
fdisk -s <分区>        给出分区大小(块数)
选项:
 -b <大小>             扇区大小(512、1024、2048或4096)
 -c[=<模式>]           兼容模式:“dos”或“nondos”(默认)
 -h                    打印此帮助文本
 -u[=<单位>]           显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)
 -v                    打印程序版本
 -C <数字>             指定柱面数
 -H <数字>             指定磁头数
 -S <数字>             指定每个磁道的扇区数

选项与参数:

  • -l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时,则系统将会把整个系统内能够搜寻到的装置的分区均列出来。

实例 1

列出所有分区信息

[root@admin ~]# fdisk -l

磁盘 /dev/sda:193.3 GB, 193273528320 字节,377487360 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000ab2a1

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   377487359   187694080   8e  Linux LVM

磁盘 /dev/mapper/centos-root:85.9 GB, 85899345920 字节,167772160 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:8455 MB, 8455716864 字节,16515072 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-home:97.8 GB, 97836335104 字节,191086592 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

实例 2

找出你系统中的根目录所在磁盘,并查阅该硬盘内的相关信息

[root@admin ~]# df /
文件系统                   1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root 83845120 7093716 76751404    9% /
[root@admin ~]#
[root@admin ~]# fdisk /dev/mapper/centos-root
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x49e1bab1 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助)<==等待你的输入!

命令操作

命令(输入 m 获取帮助):m   <== 输入 m 后,就会看到底下这些命令介绍
命令操作
    a 切换可引导标志
    b 编辑bsd磁盘标签
    c 切换dos兼容性标志
    d 删除分区
    g 创建一个新的空GPT分区表
    G 创建IRIX(SGI)分区表
    l 已知分区类型列表
    m 打印此菜单
    n 添加新分区
    o 创建一个新的空DOS分区表
    p 打印分区表
    q 退出而不保存更改
    s 创建一个新的空Sun磁盘标签
    t 更改分区的系统id
    u 更改显示/输入单位
    v 验证分区表
    w 将表写入磁盘并退出
    x 额外功能(仅限专家)

离开 fdisk 时按下 q,那么所有的动作都不会生效!相反的, 按下w就是动作生效的意思。

Command (m for help): p  <== 这里可以输出目前磁盘的状态

Disk /dev/hdc: 41.1 GB, 41174138880 bytes        <==这个磁盘的文件名与容量
255 heads, 63 sectors/track, 5005 cylinders      <==磁头、扇区与磁柱大小
Units = cylinders of 16065 * 512 = 8225280 bytes <==每个磁柱的大小

   Device Boot      Start         End      Blocks   Id  System
/dev/hdc1   *           1          13      104391   83  Linux
/dev/hdc2              14        1288    10241437+  83  Linux
/dev/hdc3            1289        1925     5116702+  83  Linux
/dev/hdc4            1926        5005    24740100    5  Extended
/dev/hdc5            1926        2052     1020096   82  Linux swap / Solaris
# 装置文件名 启动区否 开始磁柱    结束磁柱  1K大小容量 磁盘分区槽内的系统

Command (m for help): q

想要不储存离开吗?按下 q 就对了!不要随便按 w 啊!

使用 p 可以列出目前这颗磁盘的分割表信息,这个信息的上半部在显示整体磁盘的状态。

mkfs 磁盘格式化

①、命令名称:

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:

⑥、语法:

磁盘分割完毕后自然就是要进行文件系统的格式化,格式化的命令非常的简单,使用 mkfs(make filesystem) 命令。

语法:

mkfs [-t 文件系统格式] 装置文件名
mkfs [选项] [-t <类型>] [文件系统选项] <设备> [<大小>]
选项:
 -t, --type=<类型>   文件系统类型;若不指定,将使用 ext2
     fs-options     实际文件系统构建程序的参数
     <设备>          要使用设备的路径
     <大小>          要使用设备上的块数
 -V, --verbose       解释正在进行的操作;
                      多次指定 -V 将导致空运行(dry-run)
 -V, --version       显示版本信息并退出
                      将 -V 作为 --version 选项时必须是惟一选项
 -h, --help          显示此帮助并退出

实例 1

查看 mkfs 支持的文件格式

[root@admin ~]# mkfs[tab][tab]
mkfs         mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.msdos   mkfs.vfat

按下两个[tab],会发现 mkfs 支持的文件格式如上所示。

实例 2

将分区 /dev/hdc6(可指定你自己的分区) 格式化为 ext3 文件系统:

[root@admin ~]# mkfs -t ext3 /dev/hdc6
mke2fs 1.39 (29-May-2006)
Filesystem label=                <==这里指的是分割槽的名称(label)
OS type: Linux
Block size=4096 (log=2)          <==block 的大小配置为 4K 
Fragment size=4096 (log=2)
251392 inodes, 502023 blocks     <==由此配置决定的inode/block数量
25101 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=515899392
16 block groups
32768 blocks per group, 32768 fragments per group
15712 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912

Writing inode tables: done
Creating journal (8192 blocks): done <==有日志记录
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
# 这样就创建起来我们所需要的 Ext3 文件系统了!简单明了!

fsck 磁盘检验

①、命令名称:

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:

⑥、语法:

fsck(file system check)用来检查和维护不一致的文件系统。

若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。

语法:

fsck [-t 文件系统] [-ACay] 装置名称

选项与参数:

  • -t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
  • -s : 依序一个一个地执行 fsck 的指令来检查
  • -A : 对/etc/fstab 中所有列出来的 分区(partition)做检查
  • -C : 显示完整的检查进度
  • -d : 打印出 e2fsck 的 debug 结果
  • -p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
  • -R : 同时有 -A 条件时,省略 / 不检查
  • -V : 详细显示模式
  • -a : 如果检查有错则自动修复
  • -r : 如果检查有错则由使用者回答是否修复
  • -y : 选项指定检测每个文件是自动输入yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复。

实例 1

查看系统有多少文件系统支持的 fsck 命令:

[root@admin ~]# fsck[tab][tab]
fsck         fsck.cramfs  fsck.ext2    fsck.ext3    fsck.msdos   fsck.vfat

实例 2

强制检测 /dev/hdc6 分区:

[root@admin ~]# fsck -C -f -t ext3 /dev/hdc6 
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
vbird_logical: 11/251968 files (9.1% non-contiguous), 36926/1004046 blocks

如果没有加上 -f 的选项,则由于这个文件系统不曾出现问题,检查的经过非常快速!若加上 -f 强制检查,才会一项一项的显示过程。

mount 磁盘挂载与卸除

①、命令名称:

②、英文原意:

③、命令所在路径:

④、执行权限:所有用户

⑤、功能描述:

⑥、语法:

Linux 的磁盘挂载使用 mount 命令,卸载使用 umount 命令。

磁盘挂载语法:

mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n]  装置文件名  挂载点
mount [-lhV]
mount -a [选项]
mount [选项] [--source] <> | [--target] <目录>
mount [选项] <> <目录>
mount <操作> <挂载点> [<目标>]
  • -a 挂载/etc/fstab文件中指定的所有文件系统
  • -f 使 mount 命令模拟挂载设备,但并不真的挂载
  • -F 和 -a 参数一起使用时,会同时挂载所有文件系统
  • -v 详细模式,将会说明挂载设备的每一步
  • -I 不启用任何/sbin/mount.filesystem下的文件系统帮助文件
  • -l 给ext2、ext3或XFS文件系统自动添加文件系统标签
  • -n 挂载设备,但不注册到/etc/mtab已挂载设备文件中
  • -p num 进行加密挂载时,从文件描述符 num 中获得密码短语
  • -s 忽略该文件系统不支持的挂载选项
  • -r 将设备挂载为只读的
  • -w 将设备挂载为可读写的(默认参数)
  • -L label 将设备按指定的 label 挂载
  • -U uuid 将设备按指定的 uuid 挂载
  • -O 和 -a 参数一起使用,限制命令只作用到特定的一组文件系统上
  • -o 给文件系统添加特定的选项

-o 参数允许在挂载文件系统时添加一些以逗号分隔的额外选项。以下为常用的选项。

  • ro :以只读形式挂载。
  • rw :以读写形式挂载。
  • user :允许普通用户挂载文件系统。
  • check=none :挂载文件系统时不进行完整性校验。
  • loop :挂载一个文件。

mount 命令提供如下四部分信息:

  • 媒体的设备文件名
  • 媒体挂载到虚拟目录的挂载点
  • 文件系统类型
  • 已挂载媒体的访问状态
[root@admin home]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=4049260k,nr_inodes=1012315,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)

用默认的方式,将刚刚创建的 /dev/hdc6 挂载到 /mnt/hdc6 上面!

[root@admin ~]# mkdir /mnt/hdc6
[root@admin ~]# mount /dev/hdc6 /mnt/hdc6
[root@admin ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
.....中间省略.....
/dev/hdc6              1976312     42072   1833836   3% /mnt/hdc6

手动挂载媒体设备的基本命令

mount -t type device directory

手动将U盘/dev/sdb1挂载到/media/disk

mount -t vfat /dev/sdb1 /media/disk

磁盘卸载命令 umount 语法:

umount [-fn] 装置文件名或挂载点

选项与参数:

  • -f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
  • -n :不升级 /etc/mtab 情况下卸除。

卸载 /dev/hdc6

[root@admin ~]# umount /dev/hdc6     

磁盘维护

网络通讯

设备管理

电子邮件与新闻组

其他命令

bc

tail

head

xargs

ip

nohub

killall

kill

pkill

启动 java 服务

nohub java -jar xxx.jar

sh start.shopen in new window start

实用的工具

https://www.zhihu.com/question/59227720/answer/163594782open in new window