一、帮助命令
1.1 man 帮助命令
获得帮助信息
man [命令或配置文件]
- NAME 命令的名称和单行描述
- SYNOPSIS 怎样使用命令
- DESCRIPTION 命令功能的深入讨论
- EXAMPLES 怎样使用命令的例子
- SEE ALSO 相关主题(通常是手册页)
1.2 help 获得shell内置命令的帮助信息
help
二、文件命令类
2.1 pwd 显示当前工作目录的绝对路径
显示当前工作目录的绝对路径
pwd
2.2 ls 列出目录的内容
ls [选项] [目录或是文件]
选项:
-a :全部的文件,连同隐藏档(开头为 . 的文件)一起列出来(常用)
-l :长数据串列出,包含文件的属性与权限等等数据(常用)
2.3 mkdir 创建一个新的目录
mkdir [-p] 要创建的目录
# 例
mkdir test
mkdir -p /usr/test
-p:创建多层目录
2.4 rmdir 删除一个空的目录
rmdir 空目录
2.5 touch 创建空文件
touch 文件名称
2.6 cd 切换目录
cd 绝对路径
cd 相对路径
cd ~或者cd # 回到自己的家目录
cd - # 回到上一次所在目录
cd .. # 回到当前目录的上一级目录
2.7 cp 复制文件或目录
cp source dest # 复制source文件到dest
cp -r sourceFolder targetFolder # 递归复制整个文件夹
# 例
cp test.txt test # 复制文件
cp -r test test1 # 递归复制整个文件夹
2.8 rm 移除文件或目录
rmdir deleteEmptyFolder # 删除空目录
rm -rf deleteFile # 递归删除目录中所有内容
2.9 mv 移动文件与目录或重命名
mv oldNameFile newNameFile # 重命名
mv /temp/movefile /targetFolder # 移动文件
2.10 cat 查看文件内容
查看文件内容,从第一行开始显示。
cat [选项] 要查看的文件
选项:
-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
2.11 tac 查看文件内容
查看文件内容,从最后一行开始显示,可以看出 tac 是 cat 的逆序。
tac [选项参数] 要查看的文件
2.12 more 查看文件内容
查看文件内容,一页一页的显示文件内容。
more 要查看的文件
- 空白键 (space):代表向下翻一页;
- Enter:代表向下翻『一行』;
- q:代表立刻离开 more ,不再显示该文件内容
- Ctrl+F 向下滚动一屏
- Ctrl+B 返回上一屏
- = 输出当前行的行号
- :f 输出文件名和当前行的行号
# 从第20行开始显示test.txt文档内容
more +20 test.txt
# 每页显示10行
more -10 test.txt
2.13 less 查看文件内容
less 的作用与 more 十分相似,都可以用来浏览文字档案的内容,不同的是 less 允许使用[pageup] [pagedown]来回滚动。
less 要查看的文件
- 空白键 :向下翻动一页
- [pagedown]:向下翻动一页
- [pageup] :向上翻动一页
- /字串:向下搜寻『字串』的功能;n:向下查找;N:向上查找
- ?字串:向上搜寻『字串』的功能;n:向上查找;N:向下查找
- q:离开 less 这个程序
2.14 head查看文件内容
查看文件内容,只看头几行。
head -n 10 文件 # 查看文件头10行内容,10可以是任意行数
2.15 tail 查看文件内容
查看文件内容,只看尾巴几行。
tail -n 10 文件 # 查看文件头10行内容,10可以是任意行数
tail –f 文件 # 实时追踪该档的更新
tail –F 文件 # 可以实时追踪由vi编辑的文件更新
2.16 重定向命令
ls –l >文件名 # 列表的内容写入文件a.txt中(覆盖写入)
ls –al >>文件名 # 列表的内容追加到文件aa.txt的末尾
2.17 echo
1)基本语法:
echo 要显示的内容 >> 存储内容的文件 # 将要显示的内容,存储到文件中
echo 变量 # 显示变量的值
2.18 ln 软链接
ln –s [原文件] [目标文件] # 给原文件创建一个软链接,软链接存放在目标文件目录
- 软链接:
- 软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
- 软链接可以 跨文件系统 ,硬链接不可以
- 软链接可以对一个不存在的文件名进行链接
- 软链接可以对目录进行链接
- 硬链接:
- 硬链接,以文件副本的形式存在。但不占用实际空间。
- 不允许给目录创建硬链接
- 硬链接只有在同一个文件系统中才能创建
2.19 history 查看所使用过命令历史
history
三、时间日期类
date [OPTION]... [+FORMAT]
3.1 date 显示当前时间
date # 显示当前时间
date +%Y # 功能描述:显示当前年份
date +%m # 显示当前月份
date +%d # 显示当前是哪一天
date +%Y%m%d date +%Y/%m/%d … # 显示当前年月日各种格式
date "+%Y-%m-%d %H:%M:%S" # 显示年月日时分秒
3.2 date 显示非当前时间
date -d '1 days ago' # 显示前一天日期
date -d yesterday +%Y%m%d # 同上
date -d next-day +%Y%m%d # 显示明天日期
date -d 'next monday' # 显示下周一时间
3.3 date 设置系统时间
date -s 字符串时间
3.4 cal 查看日历
cal [选项] # 不加选项,显示本月日历
选项:
-3 ,显示系统前一个月,当前月,下一个月的日历
年数,具体某一年,显示这一年的日历。
四、用户管理命令
4.1 useradd 添加新用户
useradd 用户名 # 添加新用户
4.2 passwd 设置用户密码
passwd 用户名 # 设置用户密码
4.3 id 判断用户是否存在
id 用户名
4.4 su 切换用户
su 用户名称 # 切换用户
4.5 userdel 删除用户
userdel 用户名 # 删除用户但保存用户主目录
userdel -r 用户名 # 用户和用户主目录,都删除
4.6 who 查看登录用户信息
whoami # 显示自身用户名称
who am i # 显示登录用户的用户名
who # 看当前有哪些用户登录到了本台机器上
4.7 设置 test 普通用户具有 root 权限
-
修改配置文件
修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行
root ALL=(ALL) ALL test ALL=(ALL) ALL
-
修改完毕,现在可以用test帐号登录,然后用命令 su - ,即可获得root权限进行操作
4.8 查看创建了哪些用户
cat /etc/passwd
4.9 usermod 修改用户
usermod -g 用户组 用户名
# 将用户test加入dev用户组
usermod –g dev test
五、用户组管理命令
- 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
- 用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
5.1 groupadd 新增组
groupadd 组名
5.2 groupdel 删除组
groupdel 组名
5.3 groupmod 修改组
groupmod -n 新组名 老组名
5.4 查看创建了哪些组
cat /etc/group
六、文件权限类
6.1 文件属性
- Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。
- 为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
- 在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组。
- 从左到右的10个字符表示:
如果没有权限,就会出现减号 [ - ] 而已,从左至右用0-9这些数字来表示。- (1)首位表示类型
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。
- 代表文件
d 代表目录
c 字符流,装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
s socket
p 管道
l 链接文档(link file);
b 设备文件,装置文件里面的可供储存的接口设备(可随机存取装置) - (2)第2-4位确定属主(该文件的所有者)拥有该文件的权限。—user
- (3)第5-7位确定属组(所有者的同组用户)拥有该文件的权限,—group
- (4)第8-10位确定其他用户拥有该文件的权限 —other
- (1)首位表示类型
文件类型 | 属主权限 | 属组权限 | 其他用户权限 |
---|---|---|---|
0 | 1 2 3 | 4 5 6 | 7 8 9 |
d | r w x | r - x | r - x |
目录文件 | 读 写 执行 | 读 写 执行 | 读 写 执行 |
- rwx作用文件和目录的不同解释
- 作用到文件:
[ r ] 代表可读(read): 可以读取,查看
[ w ] 代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
[ x ] 代表可执行(execute):可以被系统执行 - 作用到目录:
[ r ]代表可读(read): 可以读取,ls查看目录内容
[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
[ x ]代表可执行(execute):可以进入该目录 - 数字权限使用格式
- 首先,我们规定数字4 、2 和 1表示读、写、执行权限,即r=4,w=2,x=1。
- 此时其他的权限组合也可以用其他的八进制数字表示出来,如: rwx = 4 + 2 + 1 = 7 ,rw = 4 + 2 = 6 ,rx = 4 +1 = 5。
- 若要同时设置 rwx (可读写运行)权限则将该权限位设置为 4 + 2 + 1 = 7
- 若要同时设置 rw- (可读写不可运行)权限则将该权限位设置为 4 + 2 = 6
- 若要同时设置 r-x (可读可运行不可写)权限则将该权限位 设置为 4 +1 = 5
- 作用到文件:
6.2 chmod 改变权限
chmod [{ugoa}{+-=}{rwx}] [文件或目录] [mode=421 ] [文件或目录]
- 改变文件或者目录权限
- 文件:r-查看;w-修改;x-执行文件
- 目录:r-列出目录内容;w-在目录中创建和删除;x-进入目录
【删除一个文件的前提条件:该文件所在的目录有写权限,你才能删除该文件】 - 参数:
- u 表示该文件的拥有者
- g 表示与该文件的拥有者属于同一个群体(group)者
- o 表示其他以外的人,a 表示这三者皆是
- + 表示增加权限
- - 表示取消权限
- = 表示唯一设定权限
- r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行
其他参数说明: - -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
6.3 chgrp 改变所属组
chgrp [最终用户组] [文件或目录] # 改变文件或者目录的所属组
6.4 chown 改变所有者
chown [最终用户] [文件或目录] # 改变文件或者目录的所有者
七、磁盘分区类
7.1 fdisk 查看分区
fdisk –l # 查看磁盘分区详情
【注意:在root用户下才能使用】
7.2 df 查看硬盘
df 参数 # 列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况
参数:
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型,连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
八、搜索查找类
8.1 find 查找文件或者目录
find [搜索范围] [匹配条件]
# 按文件名:根据名称查找/目录下的.txt文件
find /root/ -name "*.txt"
# 按拥有者:查找/root目录下,用户名称为test的文件
find /root/ -user test
# 按文件大小:在/root目录下查找大于1k的文件(+n 大于 -n小于 n等于)
find /root -size +1
# 按文件大小:在/root目录下查找文件长度为0的文件
find /root -size 0
8.2 grep 在文件内搜索字符串匹配的行并输出
grep+参数+查找内容+源文件
参数:
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
8.3 which 文件搜索命令
which 命令 # 搜索命令所在目录及别名信息
which指令会在环境变量$PATH设置的目录里查找符合条件的文件
九、进程线程类
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。
9.1 ps 查看系统中所有进程
ps –aux # 查看系统中所有进程
USER:该进程是由哪个用户产生的
PID:进程的ID号
%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
VSZ:该进程占用虚拟内存的大小,单位KB;
RSS:该进程占用实际物理内存的大小,单位KB;
TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。
STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台
START:该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
9.2 top 查看系统健康状态
top [选项]
选项:
-d 秒数:指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令:
-i:使top不显示任何闲置或者僵死进程。
-p:通过指定监控进程ID来仅仅监控某个进程的状态。
-s : 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
操作选项:
P: 以CPU使用率排序,默认就是此项
M: 以内存的使用率排序
N: 以PID排序
q: 退出top
9.3 pstree 查看进程树
pstree [选项]
选项
-p: 显示进程的PID
-u: 显示进程的所属用户
9.4 kill 终止进程
kill -9 PID进程号
选项
-9 表示强迫进程立即停止
9.5 netstat 显示网络统计信息
netstat –anp # 此命令用来显示整个系统目前的网络情况。例如目前的连接、数据包传递数据、或是路由表内容
选项:
-an 按一定顺序排列输出
-p 表示显示哪个进程在调用
-nltp 查看tcp协议进程端口号
十、压缩和解压类
10.1 gzip/gunzip 压缩
gzip + 文件 # 压缩文件,只能将文件压缩为*.gz文件
gunzip + 文件.gz # 解压缩文件命令
- 只能压缩文件不能压缩目录
- 不保留原来的文件
10.2 zip/unzip 压缩
zip + 参数 + XXX.zip + 将要压缩的内容 # 压缩文件和目录的命令,window/linux通用且可以压缩目录且保留源文件
参数:
-q 不显示指令执行过程。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-d 从压缩文件内删除指定的文件。
10.3 tar 打包
tar + 参数 + XXX.tar.gz + 将要打包进去的内容 # 打包目录,压缩后的文件格式.tar.gz
参数:
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包.tar文件
-C<目的目录>或–directory=<目的目录> 切换到指定的目录。
# 压缩
tar -zcvf test.tar.gz test.txt test 2.txt
# 压缩多个文件
tar -zcvf test.tar.gz test.txt test2.txt
# 压缩目录
# tar -zcvf test.txt.tar.gz test
# 解压
tar -zxvf XXX.tar.gz
# 解压到当前目录
tar -zxvf test.tar.gz
# 解压到/opt目录
tar -zxvf test.tar.gz –C /opt
十一、rpm
11.1 查询
rpm –qa # 查询所安装的所有rpm软件包
# 过滤
rpm –qa | grep rpm软件包
11.2 卸载
rpm -e RPM软件包
或 rpm -e --nodeps 软件包
–nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强行安装。
11.3 安装
rpm –ivh RPM包全名
-i=install,安装
-v=verbose,显示详细信息
-h=hash,进度条
–nodeps,不检测依赖进度
十二、yum仓库配置
12.1 概述
YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。在Linux上使用yum可以简化安装的过程。
12.2 yum的常用命令
yum install -y httpd # 安装httpd并确认安装
yum list # 列出所有可用的package和package组
yum clean all # 清除所有缓冲数据
yum deplist httpd # 功能描述:列出一个包所有依赖的包
yum remove httpd # 功能描述:删除httpd
yum makecache # 是将服务器上的软件包信息先在本地缓存,以提高搜索安装软件的速度