admin 管理员组

文章数量: 887021

目录

  • 一.帮助命令
    • 1.man获取帮助信息
    • 2.help获取shell内置命令的帮助信息
    • 3.怎么判断命令的类型
    • 4.使用man查看内置命令
    • 5.常用快捷键
  • 二.文件目录类命令
    • 1.pwd 显示当前工作目录的绝对路径
    • 2.cd 切换路径
    • 3.ls 列出目录的内容
    • 4.mkdir 创建一个新的目录(文件夹)
    • 5.rmdir 删除目录(文件夹)
    • 6.touch 创建空文件
    • 7.cp 复制目录或者文件
    • 8.rm 删除目录或者文件
    • 9.mv 移动文件与目录或重命名
    • 10.cat 查看文件内容
    • 11.more 文件内容分屏查看器
    • 12.less 分屏显示文件内容
    • 13.echo 输出内容到控制台
    • 14.> 输出重定向和 >> 追加
    • 15.head 显示文件头部内容
    • 16.tail 显示文件尾部内容
    • 17.ln 软连接
    • 18.history 查看已经执行过的历史命令
  • 三.时间日期类命令
    • 1.date 显示当前时间
    • 2.date 显示非当前时间
    • 3.date 设置系统时间
    • 4.cal 查看日历
  • 四.用户权限类命令
    • 1.useradd 添加新用户
    • 2.su 切换用户
    • 3.sudo 设置普通用户具有root权限
    • 4.groupadd 新增组
    • 5.权限详解
    • 6.chmod 改变权限
    • 7.chown 改变所有者
    • 8.chgrp 改变所属组
  • 五.搜索查找类命令
    • 1.find 查找文件或目录
    • 2.locate 快速定位文件路径
    • 3.grep 过滤查找及 '|' 管道符
  • 六.压缩和解压类命令
    • 1.gzip 压缩和gunzip 解压
    • 2.zip 压缩和unzip 解压
    • 3.tar 打包
  • 七.磁盘管理类命令
    • 1.du 查看文件和目录占用的磁盘空间
    • 2.df 查看磁盘空间使用情况
    • 3.lsblk 查看设备挂载情况
    • 4.mount 挂载 和 umount 卸载
    • 5.fdisk 分区
  • 八.进程管理类命令
    • 1.ps 查看当前进程系统状态
    • 2.kill 终止进程
    • 3.pstree 查看进程树
    • 4.top 实时监控系统进程状态
    • 5stat 显示网络状态和端口占用信息
  • 九.系统定时类命令
    • 1.crontab 定时任务设置
  • 十.软件包管理
    • 1.RPM(RedHat Package Manager) 基于CentOS
    • 2.YUM(Yellow dog Update,Modified) 仓库配置

一.帮助命令

1.man获取帮助信息

# man[命令或者配置文件] //获取帮助信息(外部命令)

列如 :

# man ls //查看ls命令的帮助信息



2.help获取shell内置命令的帮助信息

shell:可以看做是一个命令解释器(终端输入命令,shell进行解释并最终交给内核执行)

一部分基础功能的系统命令是直接内嵌在shell中的,系统加载启动之后会随着shell一起加载,常驻系统内存中。这部分命令被称为“内置命令”;相应的其他命令被称为外部命令。

# help [命令] //获取shell内置命令的信息
# 命令 --help //查看外部命令

列如 :

# help cd //查看cd命令的帮助信息



3.怎么判断命令的类型

# type [命令] //查看命令的类型

列如 :

# type cd //查看cd命令的类型
# type useradd //查看useradd命令的类型



4.使用man查看内置命令

# man -f cd //查看cd命令的信息
# man 3tcl cd//查看3tcl里面的cd命令信息



5.常用快捷键

常用快捷键功能
ctrl + c停止进程
ctrl + l清屏等同于clear;彻底清屏 reset
tab提示(防止敲错)
上下键查找执行过的命令

二.文件目录类命令

绝对路径:从根目录开始都显示出来 / 开头。例如 /usr/local/mysql
相对路径:就是相对当前你所在路径开始算。例如你现在进入到usr目录下,然后你想到达mysql目录,你只需要local/mysql

1.pwd 显示当前工作目录的绝对路径

# pwd   //显示当前工作目录的绝对路径(print working directory)

2.cd 切换路径

# cd [参数]   //切换路径(change directory)
参数功能
cd 绝对路径切换路径
cd 相对路径切换路径
cd返回自己的家目录
cd -回到上一次所在的目录
cd . .返回上一级目录

3.ls 列出目录的内容

# ls [参数][目录或文件]   //列出目录内容(list)
参数功能
-a全部的文件,连同隐藏文档(开头为.的文件)
-l长数据串列出,包含文件的属性与权限等等数据;(等价于 ll

4.mkdir 创建一个新的目录(文件夹)

# mkdir [选项]   //建立目录(make directory)
参数功能
-p创建多层目录

举例:

# mkdir xinxin  //建立一个名字为xinxin的目录 
# mkdir xin1 xin2 //建立两个目录名字分别为xin1和xin2
# mkdir -p xin1/xin2 //创建多层目录,xin1目录包含xin2

5.rmdir 删除目录(文件夹)

# rmdir [选项]   //要删除的空目录(remove directory),如果删除的目录下面包含目录或文件都会删除失败
参数功能
-p删除多层空目录

举例:

# rmdir xinxin  //删除名字为xinxin的空目录 
# rmdir xin1 xin2 //删除两个空目录名字分别为xin1和xin2
# rmdir -p xin1/xin2 //删除多层空目录,会先删除xin2,然后删除xin1

6.touch 创建空文件

# touch 文件名称   //创建空文件

举例:

# touch /home/jjr/hello  // 在/home/jjr文件夹下创建一个hello文件。前提是/home/jjr文件夹存在 

7.cp 复制目录或者文件

# cp [选项] source dest   //复制source到dest
选项功能
-r递归复制整个文件夹

举例:

# cp initial-setup-ks.cfg /home/jjr        // 把initial-setup-ks.cfg文件复制到,/home/jjr目录下
# cp initial-setup-ks.cfg /home/jjr/hello  // 把initial-setup-ks.cfg文件复制到hello文件,hello文件内容和initial-setup-ks.cfg一致
# cp -r xinxin/ /home/jjr/                 // 把xinxin文件夹所有内容复制到/home/jjr/文件夹下

8.rm 删除目录或者文件

# rm [选项] 目录或文件名   //删除目录或者文件
选项功能
-r递归删除整个文件夹
-f强制删除,不提示确认
-v显示指令的详细执行过程

举例:

# rm -rf /*             //千万别试,试试就逝世
# rm -rf ./*            //删除当前目录下的所有文件 
# rm /home/jjr/hello    // 删除hello文件
# rm -r home            //删除home文件夹

9.mv 移动文件与目录或重命名

# mv 旧名字 新名字   //重命名
# mv 旧位置 新位置   //移动

举例:

# mv hello /home/jjr/   //把hello文件移到/home/jjr/目录下 

# mv hello hello1     //把hello文件重命名为hello1

10.cat 查看文件内容

# cat [选项] 文件名   //查看文件内容(针对小文件)
选项功能
-n显示所有行的行号,包括空行

11.more 文件内容分屏查看器

# more 文件名   //查看文件内容
选项功能
空格键下一页
Enter下一行
f向下滚动一屏
b返回上一屏
=输出当前行的行号
:f输出文件名和当前行的行号
q退出查看文件

12.less 分屏显示文件内容

more命令相似,但是比more功能强大,不同的是less命令不是一次加载全部的内容,而是根据显示的内容去加载,大于很大的文件具有较高的效率

# less 文件名   //查看文件内容
选项功能
空格键下一页
上移动键上一页
下移动键下一页
G直达底部
g直达头部
/ 【字串】向下搜寻【字串】;n:向下查找;N:向上查找
?【字串】向上搜寻【字串】;n:向下查找;N:向上查找
q退出查看文件

13.echo 输出内容到控制台

# echo [选项] 输出内容   //输出内容到控制台

-e 支持反斜线控制的字符转换

控制字符功能
\输出\本身
\n换行符
\t制表符,也就是tab键

举例:

# echo hello zhangsan  //控制台输出hello zhangsan,如果你要想增加字符之间的距离,那就加上双引号

# echo hello zhangsan  //控制台换行输出hello zhangsan

# echo $USER  //执行系统环境变量,如果不知道有什么环境变量,那就echo $ 按下Tab键就行了,就会提示出来所有的变量。

14.> 输出重定向和 >> 追加

# ls -l > 文件   //将ls -l查看的内容写到文件中(覆盖写)
# ls -l >> 文件  //将ls -l查看内容追加到文件中
# cat 文件1 > 文件2   //将文件1的内容复制到文件2
# echo 内容 >> 文件   //将内容追加到文件中

-e 支持反斜线控制的字符转换

控制字符功能
\输出\本身
\n换行符
\t制表符,也就是tab键

15.head 显示文件头部内容

# head 文件       //显示文件头部10行信息
# head -n 5 文件  //显示文件头部5行信息,5行可以是任意行
参数功能
-n 行数显示头几行的行数

16.tail 显示文件尾部内容

# tail 文件       //显示文件尾部10行信息
# tail -n 5 文件  //显示文件尾部5行信息,5行可以是任意行
参数功能
-n 行数显示尾部几行的行数
-f显示文件最新追加内容,监视文件变化,退出监控 Ctrl + c

17.ln 软连接

软连接和windows里的快捷方式类似

# ln -s [文件或者目录][软连接名]     //给原文件创建一个软连接
参数功能
-n 行数显示尾部几行的行数
-f显示文件最新追加内容,监视文件变化,退出监控 Ctrl + c


18.history 查看已经执行过的历史命令

# history -s [文件或者目录][软连接名]     //查看已经执行过的历史命令

三.时间日期类命令

1.date 显示当前时间

# date [参数][format]             //显示当前时间
# date +%Y                       //当前年份
# date +%m                       //当前月份
# date +%d                       //显示当前是哪一天
# date "+%Y-%m-%d %H:%M:%S"      //显示年月日时分秒
# date +%s                       //显示当前时间的时间戳 (从1970.01.01开始到当前时间)
参数功能
-n 行数显示尾部几行的行数
-f显示文件最新追加内容,监视文件变化,退出监控 Ctrl + c

2.date 显示非当前时间

# date -d "1 days ago"            //显示前一天时间
# date -d "-1 days ago"           //显示后一天时间

3.date 设置系统时间

# date -s "字符串时间"            //设置系统时间(格式为:%Y-%m-%d %H:%M:%S 例如:2017-03-18 12:34:22)

4.cal 查看日历

# cal [参数]           //显示本月日历
参数功能
具体年数显示这一年的日历
-y显示本年一年的日历

举例:

# cal -3           //前一个月,本月,下个月一起显示

# cal -m           //周一开头



四.用户权限类命令

1.useradd 添加新用户

# useradd 用户名        //添加新用户
# passwd  用户名        //添加对应用户的密码
# id      用户名        //查看用用户信息
# cat /etc/passwd      //查看创建了那些用户
# userdel 用户名        //删除用户
# userdel -r 用户名     //删除用户包括用户下的文件

2.su 切换用户

# su 用户名       //切换用户(root用户切换不用输密码,普通用户切换需要输入密码)
# who am i      //查看最外层会话是哪个用户(最外层会话就是指你初始登陆的那个 root)
# whoami		//查看当前会话是哪个用户(当前会话就是指你现在使用的用户 xiaoming)

3.sudo 设置普通用户具有root权限

# sudo 命令        //设置普通用户具有root权限

使用root用户去修改 /etc/sudoers 文件,然后使用sudo就可以正常用了。

4.groupadd 新增组

# groupadd 组名              //新增组
# groupmod -n 新组名 旧组名   //修改组名
# groupdel 组名              //删除组
# useradd -g 组名 用户名     //添加新用户到某个组
# usermod -g 组名 用户名     //修改用户的用户组

举例:

# usermod -g tongluowan shanji  //修改shanji用户到tongluowan用户组

5.权限详解

ls -lll 命令每行列出的信息依次为:文件类型与权限  链接数  创建者 文件属组 文件大小用byte表示  建立或者最近修改的时间 文件名称

如果是文件的话:链接数指的是硬链接数。
如果是目录的话:链接数指的子文件夹个数。

(1)文件
r(read):代表可以读,查看。
w(write):可以修改,但是不代表可以删除该文件,想删除文件,必须对该文件所在的目录有写的权限,才能删除该文件。
e(execute):可以被系统执行。
(2)目录
r(read):可以读取,ls查看目录下的内容。
w(write):可以修改,可以在目录内新建和删除文件或重命名目录。
e(execute):可以进入目录

6.chmod 改变权限

第一种
# chmod [u/g/o/a][+-=][rwx] 文件或目录 //改变权限
 
第二种
# chmod [421][421][421]     文件或目录 //改变权限 r=4,w=2,x=1,rwx=7
参数功能(第一种参数的解释)
u/g/o/au代表user(创建这个文件人的权限),g代表group(同一组的权限),o代表other(其他用户的权限),a代表all(u,g,o)
+ - =+代表增加某个权限,-是减掉某个权限,=是设置权限等于啥
rwxr可读,w可写,x可运行

第一种举例:

# chmod u=rw 文件或目录   //修改u的权限为rw
# chmod o+r  文件或目录   //o增加权限r
# chmod a-w  文件或目录   //a减掉权限w

第二种举例:

# chmod 751 文件或目录      //u的权限:rwx,g的权限:r-x,o的权限:--x
# chmod -R 777 目录        //修改目录及里面的所有文件(ugo)都修改为rwx(可读可写可执行)

7.chown 改变所有者

# chown [选项][用户] 文件或目录 //改变文件或目录的所有者(u)
选项功能
-R递归操作

举例:

# chown jjr  hello //改变hello的所有者为jjr用户

8.chgrp 改变所属组

# chgrp [选项][用户] 文件或目录 //改变文件或目录的所有组(g)

举例:

# chgrp tongluowan  hello //改变hello的所有组为tongluowan



五.搜索查找类命令

1.find 查找文件或目录

# find [搜索范围][选项]  //指的目录向下递归的遍历其各个子目录,显示在终端
选项功能
-name按照文件名查找
-user按照用户名查找
-size按照文件大小查找,b-块(512字节),c-字节,w-字(2字节),k-千字节,M-兆字节,G-吉字节

举例:

# find -name hello       //查找文件名称为hello的目录
# find /root -size +10M  //查找/root目录下文件大于10M的文件

2.locate 快速定位文件路径

由于locate命令是基于数据库进行查询,所以第一次运行期,必须使用 updatedb命令创建locate数据库

# locate 搜索文件     //搜索文件

3.grep 过滤查找及 ‘|’ 管道符

管道符,‘|’,表示将前一个命令的处理结果输出传递给后面的命令处理

# grep [选项][查找的内容][源文件]     //过滤查找
选项功能
-n显示匹配行及行号

举例:

# grep -n boot initial-setup-ks.cfg    //在initial-setup-ks.cfg文件查找boot字符串,并显示行号

ls | grep .cfg  //查找后缀名为.cfg的文件


六.压缩和解压类命令

1.gzip 压缩和gunzip 解压

  • 只能压缩文件不能压缩目录
  • 不保留原有文件
  • 多个文件会产生多个压缩包
# gzip 文件名     //压缩文件,只能将文件压缩为 *.gz文件
# gunzip 文件.gz  //解压文件命令

2.zip 压缩和unzip 解压

# zip [选项] XXX.zip 压缩的内容     //压缩文件和目录
# unzip [选项] XXX.zip             //解压缩文件
zip 选项功能
-r压缩目录
unzip 选项功能
-d解压后存放到那个目录

3.tar 打包

# tar [选项] XXX.tar.zip 打包的内容     //打包目录,文件格式为 *.tar.zip
选项功能
-c产生 .tar 打包文件
-v显示详细信息
-f指定压缩后的文件名
-z打包同时压缩
-x解包 .tar文件
-C解压到指定文件夹

举例:

# tar -zcvf mytar.tar.zip tar -zcvf mytar.tar.zip initial-setup-ks.cfg hello xinxin/     //将initial-setup-ks.cfg和hello文件和xinxin目录一起打包压缩成 mytar.tar.zip文件



七.磁盘管理类命令

1.du 查看文件和目录占用的磁盘空间

# du [选项] 目录/文件     //查看目录下每个目录和文件的磁盘使用情况(dist usage)
选项功能
-h容易阅读的GBytes,MBytes,KBytes等格式自行显示
-a不仅查看子目录大小,还包括文件
-c显示所有文件和子目录大小,显示总和
-s只显示总和
- - man-depth=n指定统计子目录的深度为第 n 层 (- -max-depth=1(只显示该目录下一级子目录))

2.df 查看磁盘空间使用情况

# df [选项]     //查看磁盘空间使用情况(dist free)
选项功能
-h容易阅读的GBytes,MBytes,KBytes等格式自行显示

3.lsblk 查看设备挂载情况

# lsblk [选项]     //查看设备挂载情况
选项功能
-f查看详细的设备挂载情况,显示文件系统信息

4.mount 挂载 和 umount 卸载

# mount [options][device][dir]     //挂载设备
# umount 设备文件名或挂载点       //卸载设备
选项功能
options主要用来描述设备或档案的挂接方式。
loop:用来把一个文件当成硬盘分区挂接上系统;
ro:采用只读方式挂接设备;
rw:采用读写方式挂接设备;
device要挂接的设备
dir设备在系统上的挂接点(目录名)
# vim /etc/fstab    //打开设置开机自动挂载文件

查看挂载type

5.fdisk 分区

在root用户下才能使用

# fdisk -l             //查看磁盘分区详情
# fdisk 硬盘设备名      //对新增硬盘进行分区操作  (/dev/ 都在这个目录下)最多有16个分区

八.进程管理类命令

1.ps 查看当前进程系统状态

# ps aux | grep xxx      //查看系统中所有进程(process status)
# ps -ef | grep xxx      //可以查看子父进程之间的关系
选项功能
a列出带有终端的所有用户的进程
x列出当前用户的所有进程,包括没有终端的进程
u面向用户友好的显示
-e列出所有进程
-u列出某个用户关联的所有进程
-f显示完整格式的进程列表

ps aux 显示信息说明(想查看进程的CPU占用率和内存占用率,可以使用aux)

  • USER:那个用户产生。

  • PID:进程的ID号。

  • %CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源。

  • %MEM:该进程占物理内存的百分比,占用越高,进程越耗费资源。

  • VSZ:该进程占用虚拟内存的大小,单位KB。

  • RSS:该进程占用实际物理内存的大小,单位KB。

  • TTY:该进程是在那个终端运行的。 对于CentOS来说 ,? 代表没有终端,tty1 是图形化终端,tty2-tty6 是本地的字符界面终端,pts0-pts255代表虚拟终端。

  • STAT:进程状态。 R:运行状态、S:睡眠状态、T:暂停状态、Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示、<:优先级比较高、N:优先级比较低。

  • START:该进程的启动时间。

  • TIME:该进程占用CPU的运算时间,注意不是系统时间。

  • COMMAND:产生此进程的命令名。


ps -ef 显示信息说明(想看父进程的PID可以使用-ef)

  • PPID:父进程的ID。
  • C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高。

2.kill 终止进程

# kill [选项] 进程号      //通过进程号杀死进程
# killall 进程名称        //通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用(谨慎使用)
选项功能
-9强制进程立马停止

3.pstree 查看进程树

# pstree [选项]       //查看进程树
# yum install pstree //安装pstree命令(pstree要是能使用就不用安装了)
选项功能
-p显示进程的PID
-u显示进程的所属用户

4.top 实时监控系统进程状态

# top [选项]       //实时监控系统进程状态
选项功能
-d 秒数top隔几秒更新。默认是3秒在top命令的交互模式当中可以执行命令
-i不显示任何闲置和僵尸进程
-p通过指定进程ID来监控某个进程的状态

5stat 显示网络状态和端口占用信息

# netstat -anp | grep 进程号       //查看该进程网络信息
# netstat -nlp | grep 端口号       //查看网络端口号占用情况
选项功能
-a显示所有正在监听和未监听的套接字
-n拒绝显示别名,能显示数字的全部转化为数字
-l仅列出在监听的服务状态
-p显示那个进程在调用

九.系统定时类命令

1.crontab 定时任务设置

# crontab [选项]     //定时任务设置
选项功能
-e编辑crontab定时任务
-l查询crontab任务
-r删除当前用户所有crontab任务
参数含义范围
第一个 *一小时中的第几分钟0-59
第二个 *一天中的第几个小时0-23
第三个 *一个月中的第几天1-31
第四个 *一年中的第几个月1-12
第五个 *一周中的星期几0-7 (0和7都代表星期天)
*代表任何时间比如第一个X改为*(就是一小时中每分钟都执行)
代表不连续时间比如:0 8,12,16 * * * (每天8,12,16点都执行一次命令)
-代表连续的时间比如:0 5 * * 1-6(周一到周六凌晨5点0分执行命令)
*/n代表每隔多久执行一次比如:*/10 * * * *(代表每隔十分钟就执行一次)
# crontab -e //会打开vim编辑器
   * * * * * 执行的任务
   */n * * * * echo "hello,world" >> xinxin //每隔一分钟就把hello,world写进xinxin文件

十.软件包管理

1.RPM(RedHat Package Manager) 基于CentOS

安装的时候会有依赖关系,你下载下来可能依赖于别的软件,你还得再去下载依赖的软件,所以不是很方便。

# rpm -qa                //查询所安装的所有rpm软件包
# rpm -qa | grep XXX     //查询包含XXX的的rpm软件包

# rpm -e  软件包                  //卸载软件包
# rpm -e --nodeps 软件包          //不考虑依赖关系卸载软件包

# rpm -ivh  RPM包全包                //安装软件包 -i安装,-v显示详细信息,-h显示进度条
# rpm -ivh --nodeps RPM包全包        //安装前不检查依赖 -i安装,-v显示详细信息,-h显示进度条

2.YUM(Yellow dog Update,Modified) 仓库配置

基于RPM,可以自动处理依赖关系(类似于maven)。

# yum [选项][参数] 软件包名      //操作软件包
选项功能
-y对所有问题都回答yes
参数功能
install安装rpm软件包
update更新rpm软件包
check-update检查更新rpm软件包
remove删除指定rpm软件包
list显示软件包信息
clean清理yum过期的缓存
deplist显示yum软件包的所有依赖关系

本文标签: 常用命令 Linux