- Linux 基础命令
- 一、 简介
- 1、 基本介绍
- 2、 运行过程
- 3、 关机过程
- 4、 目录结构
- 5、 常用命令
- 二、 基本配置
- 1、 网卡配置
- 1.1 动态网卡
- 1.2 静态网卡
- 2、 防火墙
- 3、 安装软件的限制
- 4、 换yum源
- 1、 网卡配置
- 三、 文件系统
- 1、 概述
- 2、 文件目录管理
- 3、 文件解压缩
- 4、 文件权限管理
- 4.1 用户
- 4.2 组
- 4.3 用户组权限
- 4.3.1 概念
- 4.3.2 修改文件权限
- 5、 管道和重定向
- 5.1 管道
- 5.2 重定向
- 四、 vim编辑器
- 1、 键盘图
- 2、 打开文件
- 3、 三种模式
- 4、 模式切换
- 五、 网络信息
- 1、 主机名称
- 2、 DNS 解析
- 3、 常用网络命令
- 4、 防火墙
- 5、 免秘钥连接
- 六、 日期和时间
- 1、 时间命令
- 2、 自动同步时间
- 七、 磁盘管理
- 1、 简介
- 2、 详细介绍
- 3、 其他命令
- 八、 系统进程
- 1、 进程信息
- 2、 后台进程
- 3、 杀死进程
- 九、 软件安装
- 1、 源码安装
- 2、 rpm安装
- 3、 deb安装
- 4、 解压包安装
- 5、 yum安装
- 6、 apt安装
- 十、 三剑客
- 1、 普通剑客
- 2、 grep
- 3、 sed
- 4、 awk
- 一、 简介
Linux 遵循 GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用 Linux 的所有底层源代码,也可以自由地修改和再发布。
由于 Linux 是自由软件,任何人都可以创建一个符合自己需求的 Linux 发行版。
目前主流的 Linux 版本有:
- Debian(及其派生版本Ubuntu、Linux Mint)
- Fedora(及其相关版本Red Hat Enterprise Linux、CentOS)
- openSUSE
- ...
这里,我们使用CentOS7
来学习基础命令
Linux文档在线查询:【https://www.linuxcool.com/】
2、 运行过程Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段:
- 内核的引导
- 运行 init
- 系统初始化
- 建立终端
- 用户登录系统
具体流程,请看文章:【https://cloud.tencent.com/developer/article/1114481】
3、 关机过程在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
正确的关机流程为:sync > shutdown > reboot > halt
关机指令为:shutdown
,你可以man shutdown
来看一下帮助文档。
例如你可以运行如下命令关机:
sync # 将数据由内存同步到硬盘中。
shutdown # 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:
shutdown –h 10 ‘This server will shutdown after 10 mins’ # 这个命令告诉大家,计算机将在10分钟后关机,并且会显示在登陆用户的当前屏幕中。
shutdown –h now # 立马关机
shutdown –h 20:25 # 系统会在今天20:25关机
shutdown –h +10 # 十分钟后关机
shutdown –r now # 系统立马重启
shutdown –r +10 # 系统十分钟后重启
reboot # 就是重启,等同于 shutdown –r now
halt # 关闭系统,等同于shutdown –h now 和 poweroff
4、 目录结构
目录解释:
-
/bin
:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。 -
/boot
:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。 -
/dev
:
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。 -
/etc
:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。 -
/home
:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。 -
/lib
:
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。 -
/lost+found
:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 -
/media
:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。 -
/mnt
:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。 -
/opt
:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 -
/proc
:
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
-
/root
:
该目录为系统管理员,也称作超级权限者的用户主目录。 -
/sbin
:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。 -
/selinux
:
这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。 -
/srv
:
该目录存放一些服务启动之后需要提取的数据。 -
/sys
:
这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
-
/tmp
:
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。 -
/usr
:
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。 -
/usr/bin
:
系统用户使用的应用程序。 -
/usr/sbin
:
超级用户使用的比较高级的管理程序和系统守护程序。 -
/usr/src
:
内核源代码默认的放置目录。 -
/var
:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 -
/run
:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc
: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。/bin, /sbin, /usr/bin, /usr/sbin
: 这是系统预设的执行文件的放置目录,比如ls
就是在/bin/ls
目录下的。- 值得提出的是
/bin、/usr/bin
是给系统用户使用的指令(除 root 外的通用用户),而/sbin, /usr/sbin
则是给 root 使用的指令。
- 值得提出的是
/var
: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log
目录下,另外 mail 的预设放置也是在这里。
whereis # 查询`命令`文件的位置
file # 查看文件的类型
who # 查看当前在线的用户
whoami # 我是谁
pwd # 我在哪
uname -a # 查看内核信息
echo # 打印语句
clear # 清屏
history # 历史
alias # 取别名
二、 基本配置
1、 网卡配置
1.1 动态网卡
su root # 切换到root用户
chmod +w /etc/sysconfig/network-scripts/ifcfg-enp0s3 # 添加写入权限
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 # 配置网卡信息
# 打开后,把最后一行的 ONBOOT=no 改成 ONBOOT=yes
service network restart # 重启服务
ip addr # 查看网卡信息
yum install net-tools.x86_64 # 使得可以使用 ifconfig
1.2 静态网卡
su root # 切换到root用户
chmod +w /etc/sysconfig/network-scripts/ifcfg-enp0s3 # 添加写入权限
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 # 配置网卡信息
打开后,把最后一行的 ONBOOT=no 改成 ONBOOT=yes # 作用,开机自启动
同时,将 BOOTPROTO=dhcp 改成 BOOTPROTO=static # 改成静态网卡协议
再添加:
DNS1=114.114.114.114.114 # 域名解析
IPADDR=192.168.45.126 # 设置固定的ip地址
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.45.1 # 网关
service network restart # 重启服务
ip addr # 查看网卡信息
yum install net-tools.x86_64 # 使得可以使用 ifconfig
2、 防火墙
我们需要关闭全部的防火墙,防止出现端口问题的报错
systemctl start firewalld # 启动防火墙
systemctl status firewalld # 查看防火墙
systemctl disable firewalld # 停止防火墙:本次停止,下次会开启
systemctl stop firewalld # 禁用防火墙:永久禁用
配置完网卡,关闭防火墙后,就可以使用ssh
连接我们的CentOS
了
ssh kun@192.168.45.126
3、 安装软件的限制
操作系统对未知软件的安装有可能拒绝或警告,我们需要禁用这个功能
vi /etc/selinux/config
将 SELINUX=enforcing, 改为 SELINUX=disabled # 禁用此项功能
4、 换yum源
yum install -y wget # 安装wget
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 将原文件修改为备份文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 换成阿里云镜像源
yum clean all # 清除缓存
yum makecache # 生成缓存
yum update # 更新文件
三、 文件系统
1、 概述
万事万物皆文件
-
文件系统
- 操作系统如何管理文件,内部定义了一些规则或者定义
-
所以在Linux中所有的东西都是以文件的方式进行操作
-
在Linux中,文件的访问不和Windows的一样,Windows依靠的是通过盘符进行访问
-
Linux维护着一个树状结构的文件模型
- 只有一个根节点
- 一个节点上可以有多个子节点
-
查找文件的方式
- 相对路径
- 以当前路径为基准点,查找其他资源
vim ../etc/sysconfig/network
- 绝对路径
- 以根目录为基准点,查找其他资源
vim /etc/sysconfig/network
- 日常生活中,只要找到路径即可,但是如果是一些配置文件,尽量写绝对路径
- 相对路径
-
可以随意的挂在磁盘
-
mount /dev/disk1 /usr/download # 把磁盘disk1挂载到download 目录下
-
常用命令:
ls
(英文全拼:list files): 列出目录及文件名cd
(英文全拼:change directory):切换目录pwd
(英文全拼:print work directory):显示目前的目录mkdir
(英文全拼:make directory):创建一个新的目录rmdir
(英文全拼:remove directory):删除一个空的目录cp
(英文全拼:copy file): 复制文件或目录rm
(英文全拼:remove): 删除文件或目录mv
(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称touch
:创建一个文件cat
:查看文件内容more
:分页查看文件内容head / tail
:查看开头或结尾的部分内容tail -f
:监听文件名结尾内容的增加tail -F
:监听文件地址对应内容的增加
stat
:查看文件的属性ln
:创建文件的链接- 软链接:
ln -s src dest
- 相当于快捷方式,其间接指向存储的空间,当
src
删除之后,dest
就不能找到源文件
- 硬链接:
ln src dest
- 创建一个硬链接,其直接指向存储的空间,当
src
删除之后,dest
还可以找到源文件,反正文件被恶意删除
- 软链接:
find
:查找文件地址,可以结合通配符
使用示例
cd /usr/bin # 切换到/usr/bin/目录下
ll /usr/bin # 展示/usr/bin/目录下的所有文件信息,加个 -a 代表也展示隐藏文件 ll -> ls -l --color=auto
cd # 回到家目录
pwd # 查看当前在哪个目录
mkdir python_ # 创建一个名为 python_ 文件目录
mkdir p{1, 2, 3} # 创建文件夹p1, p2, p3
mkdir -p a/b/c # 创建多级目录
rmdir -p a/b/c # 删除多级目录
rm -rf python_ # 删除目录,无论是否为空
cp c /bin/ # 把c拷贝到bin目录下
mv a b # 把文件a改名为b,也可以像cp一样使用
touch hello.py # 创建一个hello.py的空文件;如果文件存在,则修改文件的访问修改的时间
cat hello.py # 查看hello.py里面的内容
stat hello.py # 查看hello.py的属性
# Access:查看文档触发;Modify:修改文本内容触发;Change:修改文件配置信息时触发
ln -s hello.py a # 给hello.py创建一个软链接,访问a即为访问py文件
head -8 profile/ | tail -1 # 先查询前8行,再把前8行的结果返回给后面,等于是返回第8行的内容
find /home/kun/ --name *.py # 查找家目录下所有的py文件,并返回路径
查看文件的大小
df -h # 查看文件分区信息
du -h --max-depth=1 a # 查看指定目录大小
3、 文件解压缩
文件解压:
tar -zxvf nodejs.tar.gz -C /usr/bin/node # -C 参数指定解压出来的文件的存储位置,v是显示解压过程,可以省略
yum install unzip -y # 安装unzip
unzip test.zip -d /usr/bin/test # 将文件解压到test目录下
文件压缩:
tar -zcvf nodejs.tar.gz /usr/bin/node # 将node目录打包为压缩包,v参数是显示压缩的过程,可以省略
yum install zip -y # 安装zip
zip -r test.zip test # 将test目录压缩到test.zip里面
4、 文件权限管理
4.1 用户
新增用户:
useradd user_new
- 会创建同名的组和家目录,可以使用
-g/-G
设置组
设置密码:
password user_new
删除用户:
userdel -r user_new
- 级联删除家目录和组
修改用户信息
usermod -l newname oldname
sermod -l newname -d /home/newname -m oldname
- 修改用户名,同时将家目录改名
usermod -L user_new
- 锁定用户
usermod -U user_new
- 解锁用户名
常用用户文件:
cat /etc/shadow
- 用户名和密码
cat /etc/passwd
- 用户名,编号,组编号,家目录,命令码,目录
- 系统:0-999,普通:1000+
切换账户:
su root
- 切换到
root
账户
- 切换到
useradd 注:添加用户
adduser 注:添加用户
passwd 注:为用户设置密码
usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;
pwcov 注:同步用户从/etc/passwd 到/etc/shadow
pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;
pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;
finger 注:查看用户信息工具
id 注:查看用户的UID、GID及所归属的用户组
chfn 注:更改用户信息工具
su 注:用户切换工具
sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;
visudo 注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的;
sudoedit 注:和sudo 功能差不多;
4.2 组
创建组:
groupadd group1
删除组:
groupdel group1
修改组的名字:
groupmod -n new old
查看所有组:
getent group
查看用户对应的组
groups
groups user1
- 当我们创建用户的时候,会默认创建一个同名的主组
修改用户的组
usermod -g group user1
:将用户的主组修改usermod -G group user1
:将用户的副组修改gpasswd -d userName groupName
:将用户从组中移除
groupadd 注:添加用户组;
groupdel 注:删除用户组;
groupmod 注:修改用户组信息
groups 注:显示用户所属的用户组
grpck
grpconv 注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;
grpunconv 注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;
4.3 用户组权限
4.3.1 概念
三组权限:每组三个字母
4.3.2 修改文件权限-
修改文件所属
chown user1 file chown u1:u2 file # 修改文件夹时,让子目录迭代修改 chown -R u1:g1 file chgrp g1 file # 当用户的组被修改之后,需要重新登陆才能获取新组的权限
-
修改文件的rwx
# 直接修改 chmod o+w file # 使的其他用户可以写入文件 chmod ug+r file # 使得用户和组有读取的权限 # -R 可以递归变更 # 通过数字修改 r->4 w->2 x->1 chmod 635 file # o: rwx; g: -wx; r-x; a:all -> ugo
将前面命令的结构作为参数传递给后面的命令
grep:
强大的文本搜索工具
cat /etc/profile | grep if
5.2 重定向
改变数据输出的位置,方向
ls / 1> a.log # 标准输出 ls / > a.log 也是标准输出
ls / 2> err.log # 错误输出
# 如果把 > 替换为 >> 则为追加
信息黑洞:
ping baidu.com > /dev/null # 其不会占用内存,而是直接销毁
ping baidu.com > /dev/null 2>&1 # 不管信息的正确性,只要有信息,就输入到null里面
四、 vim编辑器
1、 键盘图
2、 打开文件
正常打开:
vim a.py
打开文件,并将光标置于第8行
vim +8 a.py
打开最后一行
vim + a.py
打开指定搜索单词的位置
vim +/word a.py
- 命令模式
该模式是进入 vi 编辑器后的默认模式。任何时候,不管用户处于何种模式,按下Esc
在命令模式下,用户可以输入 vi 命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释。若输入的字符是合法的 vi 命令,则 vi 在接受用户命令之后完成相应的动作
- 输入模式
在命令模式下输入插入命令i、a、o、I、A、O
在该模式下,用户输入的任何字符都被 vi 当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按下esc
键即可
- 末行模式
末行模式也称 ex 转义模式。
:
末行命令执行完后,vi 自动回到命令模式
常用命令,请看这篇文章:【https://www.cnblogs.com/chenyablog/p/10399601.html】
4、 模式切换 五、 网络信息 1、 主机名称hostname school # 临时修改主机名称
vim /etc/hostname # 长期修改主机名称
2、 DNS 解析
- 域名解析服务
- 可以将域名转换为IP地址
- DNS域名劫持
- 修改主机域名
vim /etc/hosts
vim "C:\Windows\System32\drivers\etc\hosts"
- 将来我们需要把所有的虚拟机都配置
hosts
文件中
ifconfig
:查询本机地址
yum search ifconfig # 查找包
yum install net-tools.x86_64 # 安装工具包
ifconfig # 查看网络信息
netstat
:查看当前网络的状态信息
netstat -anp # 查看所有被占用的端口
netstat -r # 显示核心路由表
ping
:查看ip地址能否连通,同时查看本机网络配置是否正确
ping baidu.com
telnet
:查看对应IP地址的端口是否能够连通
telnet 192.168.45.127:22
curl
:通过唯一定位标识查找指定资源
curl -X GET http://www.baidu.com # 获取百度源码
4、 防火墙
防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络与其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术
systemctl status firewalld.service # 查看防火墙状态
systemctl stop firewalld.service # 临时停止防火墙
systemctl disabled firewalld.service # 禁止防火墙开机自启动
firewall-cmd --state # 查看防火墙的状态
firewall-cmd --reload # 重新载入配置
firewall-cmd --get-zones # 列出支持的zone
firewall-cmd --get-services # 列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-services ftp # 查看ftp服务是否支持
firewall-cmd --add-services=ftp # 临时开放ftp服务
firewall-cmd --add-services=ftp --permanent # 永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent # 永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent # 永久添加80端口
开放一个端口的正确操作
# 添加
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重新载入配置
firewall-cmd --reload
# 查看端口开放是否开放
firewall-cmd --zone=public --query-port=80/tcp
lsof -i:80 # 也可以查看
# 移除端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
5、 免秘钥连接
可以通过ssh命令免秘钥连接到其他的主机
如果是第一次建立连接,需要输入yes
- 在
~/.ssh/known_hosts
文件记录了以前访问地址的信息 - 在访问地址的时候如果没有收录到
known_hosts
文件中,就需要输入yes - 如果以前收录到
known_hosts
中,直接输入密码即可
需要输入密钥:
-
生成密钥
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
-
如果你想要免秘钥登录谁,只需要把自己的公钥传递给对方主机即可
- 这个密钥要放在
~/.ssh/id_rsa.pub root@192.168.45.127
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.58.127
- 这个密钥要放在
date
:查看当前系统时间
cal
:查看日历
修改时间:
date -s 11:11:11
date -s 2022-7-3
date -s '20227-3 11:11:11'
2、 自动同步时间
sudo yum install ntp -y
sudo ntpdate cn.ntp.org.cn # 标准服务器时间
# 开启ntp同步时间的服务器
service ntpd start
七、 磁盘管理
1、 简介
Linux 磁盘管理好坏直接关系到整个系统的性能问题。
Linux 磁盘管理常用三个命令为 df、du 和 fdisk。
- df(英文全称:disk free):列出文件系统的整体磁盘使用量
- du(英文全称:disk used):检查磁盘空间使用量
- fdisk:用于磁盘分区
-
df
:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息选项与参数:
-a
:列出所有的文件系统,包括系统特有的 /proc 等文件系统;-k
:以 KBytes 的容量显示各文件系统;-m
:以 MBytes 的容量显示各文件系统;-h
:以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;-H
:以 M=1000K 取代 M=1024K 的进位方式;-T
:显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;-i
:不用硬盘容量,而以 inode 的数量来显示
-
du
:查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍 Linux du 命令选项与参数:
-a
:列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。-h
:以人们较易读的容量格式 (G/M) 显示;-s
:列出总量而已,而不列出每个各别的目录占用容量;-S
:不包括子目录下的总计,与 -s 有点差别。-k
:以 KBytes 列出容量显示;-m
:以 MBytes 列出容量显示;
-
fdisk
:磁盘分区表操作工具选项与参数
-l
:输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
-
mkfs
:磁盘格式化选项与参数:
-t
:可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
-
fsck
:用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查
选项与参数:
-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 全部检查修复。
-
mount
:磁盘挂载使用mount
命令,卸载使用umount
命令
ps -ef
:
- 显示当前所有进程信息
ps -ef | grep redis
:
- 显示关于
redis
的进程信息
ps -aux
:
- 显示所有信息
top
:
- 当前服务器内存使用率
- 在命令的后面添加一个
&
符号ping baidu.com >> baidu.log &
jobs -i
- 可以查看当前的后台进程
- 但是只有当前用户界面可以获取到
nohup
:可以防止后台进程被挂起nohup ping baidu.com >> baidu 2>&1 &
- 使用这个方法的话,要把错误信息和正确信息都输出
kill -9 8655 # 杀死进程号为 8655 的进程
九、 软件安装
1、 源码安装
- 获取源码 将软件的源码下载至
/usr/local/
,并解压 - 查看
INSTALL
与README
文件 解压后查看INSTALL
与README
文件,这两个文件中详细介绍了本软件的安装方法和注意事项 - 创建
Makefile
文件 执行configure
命令,生成Makefile文件 - 编译 执行make clean;make命令将源码编译成二进制文件。 PS:make clean命令用来清除上一次编译生成的目标文件。这个步骤可有可无,但为了确保编译的成功,还是加上为好。防止由于软件中含有残留的目标文件导致编译失败
- 安装 执行make install命令将上一步编译好的二进制文件安装到指定的目录中去
安装:rpm -ivh 包全名
查询安装的软件:
rpm -qa
升级:rpm -Uvh 包全名
- 不存在则安装
卸载: rpm -e 包名
安装/升级:dpkg -i file.deb
卸载:dpkg -P file.deb
tar -zxf test.tar.gz
mv test /usr/bin/test/
5、 yum安装
1.列出所有可更新的软件清单命令:yum check-update
2.更新所有软件命令:yum update
3.仅安装指定的软件命令:yum install <package_name>
4.仅更新指定的软件命令:yum update <package_name>
5.列出所有可安裝的软件清单命令:yum list
6.删除软件包命令:yum remove <package_name>
7.查找软件包命令:yum search <keyword>
8.清除缓存命令:
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers
6、 apt安装
sudo apt-get update 更新源
sudo apt-get install package 安装包
sudo apt-get remove package 删除包
sudo apt-cache search package 搜索软件包
sudo apt-cache show package 获取包的相信息,如说明、大小、版本等
sudo apt-get install package --reinstall 重新安装包
sudo apt-get -f install 修复安装
sudo apt-get remove package --purge 册除包,包括配直文件等
sudo apt-get build-dep package 安装相关的编译环境
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-cache depends package 了解使用该包依赖那些包
sudo apt-cache rdepends package 查看该包被哪些包依赖
sudo apt-get source package 下载该包的源代码
十、 三剑客
1、 普通剑客
cut
- 用指定的规则来切分文本
cut -d':' -f1,2,3 passwd | grep root
- 以
:
进行切分,获取1~3
列,并且,只要含有root的那行
- 以
sort
sort lucky
- 对文本中的行进行排序
sort -t'' -k2 lucky
- 对每一行的数据进行切分,按照第二列进行排序
sort -t'' -k2 -r lucky
- 逆序
sort -t'' -k2 -n lucky
- 按照数值大小进行排序,如果有字母,字母在前
wc
- 统计字母出现的次数
- 行数 单词个数 字符数量 文件名 —— 返回的数据
可以对文本进行搜索,查找文件里面的内容
同时搜索多个文件
- 从文档中查询指定的数据
grep word1 file
同时显示行号
grep -n word1 file
显示不匹配的内容,忽略大小写
grep -nvi root passwd --color=auto
使用正则表达式匹配
grep -E "[1-9]+" passwd --color=auto
这个太难了,我也没弄懂
观看大佬写的文章:【https://www.cnblogs.com/chensiqiqi/p/6382080.html】
4、 awk这个太难了,我不会
观摩大佬写的文章:【https://www.cnblogs.com/chensiqiqi/p/6481647.html】