CentOs7 命令合集

文章目录


格式

格式:命令 [-选项] / [-- 选项全名] [参数]

1、 ls list

所在目录: bin/ls

执行权限: 所有用户

功能描述:显示目录文件

语法:ls 选项[ald] [文件或则目录]

选项:

  • -l long 详细信息显示
  • -a --all 显示所有文件,包括隐藏文件
  • -d --directory 查看目录属性
  • -i --inode 显示文件以及文件的编号
  • -h --human-readable 以人类易读的方式显示

2、mkdir make directories

所在目录:/bin/mkdir

执行权限:所有用户

功能描述: 创建新的目录
语法:mkdir [选项 -p ] [目录名称]

选项:

  • -p 递归创建

3、cd change directory

所在目录: shell 内置命令

执行权限: 所有用户

功能描述: 切换用户

语法: cd [目录]

案例:

  • cd ~ 回到根目录
  • cd … 回到上一级目录
  • cd …/…/ 回到上两级目录

4、pwd print working directory

所在目录:/bin/pwd

执行权限:所有用户

功能描述:显示当前目录

语法:pwd

5、rmdir remove empty directories

所在目录:/bin/rmdir

执行权限:所有用户

功能描述:删除空目录

语法:rmdir [目录名称]

6、cp copy

所在目录:/bin/cp

执行权限:所有用户

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

语法: cp [源文件或者源目录] [目标目录]

选项:

  • -r 复制目录
  • -p 保留文件或者目录属性

7、mv move

所在目录:/bin/mv

执行权限:所有用户

功能描述:剪切目录或者文件(移动)、目录或者文件改名

语法: mv [源文件或者源目录] [目标目录或者目标文件]

8、rm remove

所在目录:/bin/rm

执行权限:所有用户

功能描述:删除文件或者目录

语法: rm [选项 -rf] [文件或者目录]

选项:

  • -r 删除目录
  • -f 强制执行

9、touch

所在目录:/bin/touch

执行权限:所有用户

功能描述:创建空文件

语法:touch 文件名称

注意: 文件不存在则创建文件,文件存在则更新文件的修改时间,也就是摸一下

10、cat

所在目录: /bin/cat

执行权限: 所有用户

功能描述:显示文件内容

语法:cat 文件名

选项:

  • -n 显示行号
  • -A 显示隐藏字符(包括回车等等)

11、tac

所在目录:/usr/bin/tac

执行权限: 所有用户

功能描述:显示文件内容(反向列示)

12、more(只能往后翻页)

所在目录:/bin/more

执行权限:所有文件

功能描述:分页显示文件内容

语法: more 文件名

选项:

  • 空格 / f 翻页
  • Enter 换行
  • q / Q 退出

13、less(可以向前翻页)

所在目录: /usr/bin/less

执行权限: 所有用户

功能描述: 分页显示内容

语法: less 文件名

14、shutdown 建议使用(其他:half poweroff init 0 / reboot init 6)

语法: shoutdown [选项] (时间 5:00)

选项:

  • -c 取消前一个关机命令
  • -h 关机
  • -r 重启

补充:系统运行级别

  • 0 关机
  • 1 单用户(启动最少的服务进行修复,类似windows安全模式)
  • 2 不完全单用户,不含NFS(Network File System)服务
  • 3 完全多用户
  • 4 未分配
  • 5 图形界面
  • 6 重启
```
//修改系统运行级别
vim /etc/inittab
// id:3:initdefault"

//查询运行级别
runlevel


```

15、head

所在目录: /usr/bin/head

执行权限: 所有用户

功能描述:显示前面n行数据

语法: head [-n number] 文件名

选项:

  • -n 指定行数

16、tail

所在目录:/usr/bin/tail

执行权限: 所有用户

功能描述: 显示文件最后几行(可以动态)

语法: tail [-nf] 文件名

选项:

  • -n 指定行数
  • -f 动态显示文件末尾内容

17、ln link

所在目录:/bin/ln

执行权限: 所有用户

功能描述: 生成连接文件

语法: ln [选项] [源文件] [生成的链接文件]

选项:

  • -s 创建软连接

注意:

/*
软链接:
    1.类似windows里面的快捷方式
    2.所有软连接的权限都是rwxrwxrwx
    3.只是符号连接箭头指向源文件
硬链接:
    1.cp -p + 同步更新
    2.一个文件和他的硬链接文件的i节点相同,可以通过i节点识别
    3.硬链接不能跨分区
    4.硬链接不能针对目录使用
*/

18、chmodchange the permissions mode of a file

所在目录: /bin/chmod

执行权限: 所有用户

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

语法: chmod [{ugoa}{±=]{rwx}[文件或者目录]
chmod [-R] [文件或者目录]
r:4 w:2 x:1
选项: -R 递归修改目录下的所有文件的权限

19、chown change file ownership

所在目录: /bin/chown

执行权限: root

功能描述: 改变文件或者目录的所有者

语法: chown [用户] [文件或者目录]

20、chgrp change file group ownership

所在目录: /bin/chgrp

执行权限: 所有用户

功能描述: 改变文件或者目录的所属组

语法: chgrp [用户组] [文件或者目录]

21、umask the user file-creation mask

所在目录: Shell内置命令

执行权限所有用户

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

语法: umask [-S]

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

umask计算方式

22、find

所在目录: /bin/find

执行权限: 所有用户

功能描述: 文件搜索

语法:find [搜索范围] [匹配条件]

选项:

  • -name 根据名称查找 *:任意字符匹配 ? 单个字符匹配
  • -iname 不区分大小写根据名称查找
  • -size +n -n n 根据文件大小查找find / -size +204800 -a -size 102400
  • -user 根据所有者查找
  • -gorup 根据所属组查找
  • -amin access 访问时间
  • -cmain change 文件属性的修改时间ls -l 能看到的那些
  • -mmin modify 文件内容被修改 find /ect -mmin -5
  • -type 根据文件类型进行查找
  • -inum 根据i节点进行查找
  • -a and -o or
  • -exec [命令] {}; find /home/ name *dingwen* -exec ls -l {} \;
  • -ok [] {}; 会询问

注意:Linux中最小的数据单位是扇区=512字节,0.5KB。所以,100MB在Linux中表示为204800

23、locate

locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。
locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:uopdatedb。注意/tep,临时目录里面的文件不会被收录到资料库中

所在目录: /usr/bin/locate

执行权限:所有用户

功能描述:在文件资料库中查找文件

语法: locate 文件名

手动更新资料库 updatedb

24、which

所在目录: /usr/bin/which

执行权限:所有用户

搜索命令所在目录以及别名信息

选项: -a 显示所有信息
语法: which 命令

25、whereis

所在目录: /usr/bin/wherseis

执行权限:所有用户

搜索命令所在目录以及帮助文档路径

语法: whereis 命令

26、grep

所在目录:/bin/grep

执行权限:所有用户

功能描述:在文件中搜素字串匹配的行并输出

语法: grep [-iv] [指定字串] [文件]

选项:

  • -i 不区分大小写
  • -v 排除指定字串
  • -n 输出行号
  • –color=auto 搜索出的关键字用颜色显示

27、useradd

所在目录:/usr/sbin/useradd

执行权限:root

功能描述: 添加新用户

语法: useradd 用户名

28、passwd

所在目录: /usr/bin/passwd

执行权限: 所有用户

功能描述: 设置用户密码

语法: passwd 用户名

29、who

所在目录:/usr/bin/who

执行权限:所有用户

功能描述: 查看登录用户信息

语法: who

30、w

所在目录:/usr/bin/w

执行权限:所有用户

功能描述: 查看登录用户的详细信息

语法: w

31、man manual

所在目录: /usr/bin/man

执行权限: 所有用户

功能描述:获得帮助信息

语法: man [命令或者配置文件]

32、help

所在目录: shell内置命令

执行权限: 所有用户

功能描述:获得Sell内置命令的帮助信息

语法: help 命令

33、gzip & gunzip gun zip(,不能保留源文件,不能压缩目录)

所在目录:/bin/gzip /bin/gunzip

执行权限: 所有用户

功能描述:gzip:压缩文件,不能保留源文件,不能压缩目录。压缩后文件格式 .gz. gunzip:解压.gz文件

语法: gzip [文件]

选项: 解压.gz文件:gzip -d [*.gz]

34、bzip2 & bunzip2 *.bzip2 (不支持目录)

所在目录: /usr/bin/bzip2 /usr/bin/bunzip2

执行权限: 所有用户

语法: bzip2 / bunzip2 [-k] [文件]

选项:

  • -k 产生压缩文件后保留原文件 / 解压缩文件后保存原文件

35、tar 打包

所在目录: /bin/tar

执行权限: 所有用户

功能描述: 打包目录

语法: tar [选项 [压缩后文件名] [需要压缩的目录]

选项:

  • 通用选项:

-c 打包

-v 显示详细信息

-f 指定文件名称

-x 解压

  • 其他选项:

-z 压缩:.tar.gz

-j 压缩:
.tar.bzip2

常用:

//*.tar.gz
tar -czvf test.tar.gz test/
tar -xzvf test.tar.gz

# 解压到指定目录
tar -xcvf xxx.tar.gz -C /test

//*.tar.bz2
tar -cjvf test.tar.bz2 test/
tar /xjvf test.tar.bz2

36、zip & unzip(可以保留原文件)

所在目录: /usr/bin/zip /usr/bin/unzip

执行权限: 所有用户

语法: zip [-r] [压缩后文件名] [压缩文件或者目录]

选项: -r 压缩目录

37、write (只能给在线的用户发消息)

所在目录: /usr/bin/write

执行权限: 所有用户

功能描述:给在线的用户发信息Ctrl + D结束并发送

语法:write 用户名

38、wallwrite all

所在目录:/usr/bin/wall

执行权限: 所有用户

功能描述: 给所有在线的用户发广播消息

语法:wall [message]

39、ping

所在目录: /bin/ping

执行权限: 所有用户

功能描述: 测试网络连通性

语法: ping [选项] ip地址

选项: -c 3 指定发送三个数据包测试

40、ifconfig interface configure

所在目录: /sbin/ifconfig

执行权限: root

功能描述: 查看和临时设置网卡信息

语法: ifconfig ifconfig etho 192.168.0.117

41、mail

所在目录: /bin/mail

执行权限: 所有用户

功能描述: 查看发送电子邮件,q 退出。

语法: 发送:mail [用户名] 查看: mail 数字

42、last

所在目录: /usr/bin/last

执行权限: 所有用户

功能描述: 列出目前与过去登入系统的用户信息

语法: last

43、lastlog

所在目录: /usr/bin/lastlog

执行权限: 所有用户

功能描述:检查某特定用户上次登录的时间

语法: lastlog -u 505 / lastlog

44、traceroute

所在目录:/bin/traceroute

执行权限: 所有用户

功能描述: 显示数据包到主机之间的路径

语法: traceroute www.baidu.com

45、netstat

所在目录: /bin/netstat

执行权限: 所有用户

功能描述: 显示网络相关信息

语法: netstat [选项]

选项:

  • -t TCP协议
  • -d UDP协议
  • -l 监听
  • -r 路由
  • -n 显示IP地址和端口号

常用:

```
netstat -tlun //查看本机监听的端口

netstat -an //查看本机所有网络连接

netstat -rn //查看本机路由表
    ```

46、setup

所在目录:/usr/bin/setup

执行权限: root

功能描述: 配置网络(Red Head 系列都有)

语法: setup

47、mount & umount

所在目录: /bin/mount

执行权限:所有用户

语法:mount -t [文件系统] 设备文件名 挂载

    //挂载
    
    mount -t iso9660 /dev/sr0 /media/[创建目录]
    
    //取消挂载
    umount /dev/sr0
    # 或者
    umount /media/[目录]
    

48、logout退出登录命令

49、vim / vi

插入命令:

  • i 在光标所在字符前插入
  • I 在光标所在行行首插入
  • a 在光标所在字符后插入
  • A 在光标所在行行尾插入
  • o 在光标所在字符下一行插入
  • O 在光标所在行上一行插入

定位命令:

  • :set nu / set number 设置行号
  • :set nonu /set nonumber 取消行号
  • gg 到第一行
  • G 到最后一行
  • nG 到底n行
  • :n 到第n行
  • $ 移至行尾
  • 0 移至行首

删除命令

  • x 删除光标所在处字符
  • nx 删除光标所在处n个字符
  • dd 删除光标所在行
  • ndd 删除n行(从当前行往下计算)
  • dG 删除光标所在行到文件末尾内容
  • D 删除光标所在处到行尾内容
  • :n1,n2d 删除指定范围的行

复制和剪切命令

  • yy 复制当前航
  • n 复制当前行以下n行
  • dd 剪切当前行
  • ndd 剪切当前行以下n行
  • p 粘贴在当前光标所在行下一行
  • P 粘贴在当前光标所在行上一行

替换和取消命令

  • r 取消光标所在处字符
  • R 从光标所在处开始替换字符,Esc结束
  • u 取消上一步操作

搜素和搜索替换命令

  • /string 搜索指定字符串 //搜索时忽略大小写 :set ic
  • n 搜索指定字符串的下一个出现位置
  • :%s/old/new/g 全文替换指定字符串 /c 会提示
  • :n1,n2/old/new/g 指定范围内替换

保存和退出命令

  • :w 保存修改
  • :w new_filename 另存为指定文件
  • :wq 保存修改并退出
  • ZZ 快捷键,保存修改并退出
  • :q! 不保存,强制退出
  • :wq! 强制保存修改并退出(文件所有者及root可用)

使用技巧:

  • 导入命令执行结果: : r ! 命令:r ! date
  • 定义快捷键: :map 快捷键 触发命令
//连续注释行
:n1,n2s/^/#/g
:n1,n2s/^#//g
:n1,n2s/^/\/\//g

//快捷键定义
: map ^P I#<ESC>
: map ^B 0x

//替换
ab email dignwenemail@qq.com

50、 rpm rpm模块依赖查询网址

rpm 包命名规范:httpd-2.2.15-15.el6.centos.1.i686.rpm(包全名)

  • httpd 软件包名
  • 2.2.15 软件版本
  • 15 软件发布的次数
  • el6.centos 适合的linux平台
  • i686 适合的硬件平台
  • rpm rpm包扩展名
//rpm安装
rpm -ivh 包全名
 # -i install 安装
 # -v verbose 显示详细信息
 # -h hasj 显示进度
 # --nodeps 不检测依赖性(就算软件能够正常安装,也有可能不能正常使用)
 
 
 //rpm 升级
 rpm -Uvh 包全名
 # -U upgrade 升级
 
 //rpm 卸载
 rpm -e 包名
 # e erase 卸载
 # --nodeps 不检测依赖性(就算软件能够正常安装,也有可能不能正常使用)
 
 
 //查询是否安装
 rpm -q 包名
 # -q query
 # -a all
 
 //查询软件包的详细信息
 
 rpm -qi 包名
 # -i information
 # -p 查询未安装包的详细信息
 
 
 //查询软件包文件安装位置
 rpm -ql 包名
 # -l list 
 # -p 查询未安装包信息
 
 //查询系统文件属于哪一个rpm包
 rpm -qf 系统文件名
 # -f 查询系统文件属于哪一个rpm包
 
 
 //查询软件包的依赖性
 rpm -qR 包名
 # -R 查询软件包的依赖性 requires
 # -p 查询未安装包信息
 
 //rpm校验
 rpm -V 已安装的包名
 # -v verify 校验指定RPM包中的文件
 //校验信息:
    S 文件大小是否改变
    M 文件的类型或文件的权限(rwx)是否被改变
    5 文件MD5校验和是否改变(可以看成文件内容是否改变)
    D 设备的中,从代码是否改变
    L 文件路径是否改变文件的属主(所有者)是否改变
    G 文件的属组是否改变
    T 文件的修改时间是否改变
    c 配置文件(config file)
    d 普通文档(documentation)
    g “鬼”文件(ghost file),很少见,就是该文件不应该被这个RPM包包含
    l 授权文件(license file)
    r 描述文件(read me)
    
    
    //rpm包中文件提取
    # rpm2cpio 将rpm包转换为cpio格式的命令
    # cpio 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
    # cpio 选项 < [文件|设备]
       # -i:copy-in模式,还原
       # -d:还原时自动新建目录
       # -v:显示还原过程
       
       #查询ls命令属于哪个软件包
       rpm -qf /bin/ls
       
       #造成ls命令误删除假象
       mv /bin/ls /tmp/
       
       #需要先进行光盘挂载
       #提取RPM包中ls命令到当前目录的/bin/ls下
       rpm2cpio /mnt/cdrom/Packages/coreutils8.4-19.el6.i686.rpm | cpio -idv ./bin/ls

        #把ls命令复制会/bin/目录,修复文件丢失
       cp /root/bin/ls /bin/
      

rpm 安装位置

源码包安装位置可以自定义,一般/usr/local/

安装位置的不同,导致源码包的启动不能通过service只能通过绝对路径的方式

/etc/rc.d/init.d/httpd start
#
service httpd start
#
/usr/local/apache2/bin/apachectl start

源码包的安装

  • 安装gcc yum -y install gcc \ yum -y install gcc-c++
  • 下载源码包
  • 解压缩并进入目录
  • ./configure 软件配置与检查
  • 定义需要的功能选项
  • 检测系统环境是否符合安装要求
  • 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑
  • make 编译
  • make clean
  • manke install 编译安装

源码包的卸载直接删除目录,不会有遗留文件

脚本安装包安装,直接执行脚本

51、yum

ip地址配置

  • 使用setup
  • vim /etc/sysconfig/network-scripts/ifcfg-ens33 ONBOOT=“no” 改为 yes
  • 重启网络服务 service network restart

网络yum源

  • vi /etc/yum.repos.d/CentOS-Base.repo
# [base] 容器名称,一定要放在[]中

# name 容器说明,可以自己随便写

# mirrorlist 镜像站点,这个可以注释掉

# baseurl 我们的yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的,如果你觉得慢可以改成你喜欢的yum源地址

# enabled 此容器是否生效,如果不写或写成enable=1都是生效,写成enable=0就是不生效

# gpgcheck 如果是1是指RPM的数字证书生效,如果是0则不生效

# gpgkey 数字证书的公钥文件保存位置。不用修改

光盘yum源配置

  • 挂载光盘mount /dev/cdrom /mnt/cdrom/
  • 让网络yum源文件失效(改名)
[root@localhost yum.repos.d]# vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
#地址为你自己的光盘挂载地址
# file:///media/cdrom/
# file:///media/cdrecorder/
#注释这两个不存在的地址
gpgcheck=1
enabled=1
#把enabled=0改为enabled=1,让这个yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

52、useradd

语法: useradd [选项] [用户名]

选项:

  • -u 手工指定用户的UID号
  • -d 手动指定用户家目录
  • -c 指定用户说明
  • -g 指定初始组
  • -G 指定用户的附加组
  • -s 登录shell,默认是/bin/bash

添加用户操作的文件和目录

    /etc/passwd

    /etc/shadow

    /etc/group
    
    /etc/gshadow
    
    /home/用户名/
    
    /val/spool/mail/用户名/
    
    
    # 手动案例
    
     groupadd lamp1
     
    useradd -u 550 -g lamp1 -G root -d /home/lamp1 -c "test user" -s /bin/bash lamp1

用户默认值文件

# etc/default/useradd


GROUP=100 #用户默认组
HOME=/home #用户家目录
NACTIVE=-1 #密码过期宽限天数(7)
EXPIRE= #密码失效时间(8)
SHELL=/bin/bash #默认shell
KEL=/etc/skel #模板目录
CREATE_MAIL_SPOOL=yes #是否建立邮箱


# /etc/login.defs
PASS_MAX_DAYS 99999 #密码有效期(5)
PASS_MIN_DAYS 0 #密码修改间隔(4)
ASS_MIN_LEN 5 #密码最小5位(PAM)
PASS_WARN_AGE7 #密码到期警告(6)
UID_MIN 500 #最小和最大UID范围
GID_MAX 60000
NCRYPT_METHOD SHA512 #加密模式

53、passwd

语法: passwd [选项] 用户名

选项:

  • -S 查询用户密码状态,只有root用户可用
  • -l 暂时锁定用户,只有root可用
  • -u 解锁用户,只有root可用
  • –stdin 可以通过管道符输出的数据作为用户的密码

注意:root 用户可以修改其他用户的密码,普通用户修改密码直接passwd即可

54、usermod 修改用户信息

语法:usermod [选项] 用户名

选项:

  • -u UID: 修改用户的UID号
  • -c 用户说明: 修改用户的说明信息
  • -G 组名: 修改用户的附加组
  • -L: 临时锁定用户(Lock)
  • -U: 解锁用户锁定(Unlock)

55. chage修改用户密码状态

语法: chage [选项] 用户名

选项:

  • -l: 列出用户的详细密码状态
  • -d 日期: 修改密码最后一次更改日期(shadow3字段)
  • -m 天数: 两次密码修改间隔(4字段)
  • -M 天数: 密码有效期(5字段)
  • -W 天数: 密码过期前警告天数(6字段)
  • -I 天数: 密码过后宽限天数(7字段)
  • -E 日期: 账号失效时间(8字段)

56、userdel

执行权限: root

语法: userdel [-r] 用户名

选项:

  • -r 删除用户的同时删除用户的家目录

57、id

功能描述: 查询用户ID

语法:id [用户名] (不加查询当前用户)

58、su

功能描述:切换用户身份

语法:su [选项] 用户名 (什么也不加默认切换到root)

选项:

    • 连带用户的环境变量一起切换(注意一定加)
  • -c 借用身份执行命令su - root -c 'useradd zhangcongbo'

58、groupadd

功能描述: 添加组

执行权限: root

语法: groupadd 组名

59、chgrp

功能描述:修改文件所在组

执行权限: root

语法:chgrp 组名 文件名

60、groupdel

功能描述: 删除组

执行权限: root

语法: groupdel [选项] 组名

61、groupmod

功能描述: 修改名信息

语法: groupmod [选项] 组

选项:

  • -n 修改组名称 groupmod -n newname oldname

62、gpasswd

功能描述: 不加选项表示给组设置密码

语法: gpasswd [选项] 组名

选项:

  • -a 向组中添加用户
  • -d 删除组中用户

63、whoami

查看当前用户名

64、fdisk

功能描述: 使用分区工具查看分区信息

语法:fdisk [选项]

选项: -l

65、du

功能描述: 统计文件大小

65、 ACL相关

查看ACL权限 getfacl 文件名

设置ACL权限 setfacl [选项] 文件名

  • -m 设定ACL权限
  • -x 删除指定的ACL权限
  • -b 删除所有的ACL权限
  • -d 设定默认ACL权限。
  • -k 删除默认ACL权限
  • -R 递归设定ACL权限

案例

// 给用户设定ACL权限
useradd zhangcongbo
passwd zhangcongbo
useradd duanqihui
passwd duanqihui
useradd shiting
passwd shiting
groupadd stuGroup
usermod -G stuGroup zhangcongbo
usermod -G stuGroup duanqihui

mkdir /testProject
chown root:stuGroup /testProject/
chmod 770 /testProject/
setfacl -m u:shiting:rx /testProject/

// 给组设定ACL权限
setfacl -m g:stuGroup:rwx /testProject/

mask 最大有效权限

mask是用来指定最大有效权限的。如果我给用户赋予了ACL权限,是需要和mask的权限“相与”才能得到用户的真正权限(相同为真)

# 修改最大有效权限
setfacl -m m:rx 文件名

删除ACL权限

# 删除指定用户的ACL权限
setfacl -x u:用户名 文件名

# 删除指定组的ACL权限
setfacl -x g:组名 文件名

# 删除我文件的所有ACL权限
setfacl -b 文件名

递归ACL权限

  • 递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限
  • setfacl -m u:用户名:权限 -R 文件名

默认ACL权限

  • 默认ACL权限的作用是如果给父目录设定了默认ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限
  • setfacl -m d:u:用户名:权限 文件名

66、whereis

功能描述: 查看命令所在目录

语法: whereis 命令

67.SetUID

要求: (1)命令执行者必须对改程序有X(执行的权限),否则设定为S(大写)表示不能生效(2)该命令只针对二进制文件

# 设置
chmod 4755 文件名
# 或者
chmod u+s 文件名

# 取消
chmod 755 文件名
# 或者
chmod u-s 文件名


68、SetGID

# 设置
chmod 2755 [目录或者文件]
# 或者
chmod g+s [目录或者文件]

# 取消
chmod 755 [目录或者文件]
# 或者
chmod g-s [目录或者文件]

69、Sticky BIT

# 设置
chmod 1755 目录
# 或者
chmod o+t 目录

# 取消
chmod 755 目录
chmod o-t 目录

70.chattr 对root也生效,为了避免误操作

功能描述: 文件系统属性chattr权限

选项:

  • i

    文件: 不允许删除、改名、添加或者修改文件数据

    目录: 只允许修改目录下文件的数据,在该目录下不能新建和删除文件

  • a

    文件: 只能在文件中添加数据,不能删除和修改

    目录: 在目录下允许建立、修改文件,不能删除文件

语法:

    # 设置chattr权限
    chattr [+-=] [选项] [文件或者目录]

71、lsattr

功能描述: 查看文件系统属性

语法: lsattr 选项 文件名

选项:

  • -a 显示所有文件和目录
  • -d 若目标是目录则列出目录本身的属性而不是目录的子文件的

72、 追加文件内容

echo 'talk is cheap show me the code' >> 文件

73、sudo

vi sudo 

# 修改的是/etc/sudoers


root ALL=(ALL) ALL
# 用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
# %wheel ALL=(ALL) ALL
# %组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
# 授权sc用户可以重启服务器
sc ALL= /sbin/shutdown –r now

//执行
 su – sc
 
 # 查看可用的sudo命令
 sudo -l    
 
 # 普通用户执行sudo赋予的命令
 sudo /sbin/shutdown -r now

74、df

功能描述: 文件系统查看命令

语法: df [选项] [挂载点]

选项:

  • -a 显示所有文件
  • -h 人性化显示
  • -T 显示文件系统类型
  • -m MB显示
  • -k KB显示,默认

75、du

功能描述: 统计目录或者文件大小

语法:du 选项 目录或者文件

选项:

  • -a 显示每一个子文件的磁盘占有量。默认只统计子目录的磁盘占用量
  • -h 人性化显示
  • -s 统计总占有量,而不列出子目录和子文件的占有量

df和du的区别

df命令是从文件系统考虑的,不光要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间)du命令是面向文件的,只会计算文件或目录占用的空间

76、fsck

功能描述:文件系统修复命令

语法: fsck [选项] 分区设备文件名

选项:

  • -a 不显示用户提示,自动修复文件系统
  • -y 自动修复

77、dumpe2fs

功能描述:显示磁盘状态

语法: dumpe2fs 分区设备文件名

78、mount & umount

功能描述: 挂载

语法: mount [-t(文件系统)] [-L(卷标名称)] [-o(特殊选项)] 设备文件名 挂载点

选项:

  • -t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4 、iso9660等文件系统
  • -L 卷标名: 挂载指定卷标的分区,而不是安装设备文件名挂载
  • -o 特殊选项:可以指定挂载的额外选项

特殊选项:

> 注意: Linux默认是不支持NTFS文件系统的
# 查询系统中已经挂载的设备,-l会显示卷标名称
mount [-l]

# 依据配置文件/etc/fstab的内容,自动挂载
mount -a 

# 案例
# 重新挂载/boot分区,并使用noexec权限    
 mount -o remount,noexec /home
  cd /hom
  vi hello.sh
  chmod 755 hello.sh
  ./hello.s
  # 恢复
 mount -o remount,exec /home

# 挂载u盘
# 查看u盘设备文件名
fdisk -l 
 mount -t vfat /dev/sdb1 /mnt/usb/
 
 # 挂载光盘
 # 建立挂载点
  mkdir /mnt/cdrom/
  # 挂载
  mount -t iso9660 /dev/cdrom /mnt/cdrom/
  # 或者
   mount /dev/sr0 /mnt/cdrom/

# 卸载
 umount 设备文件名或挂载点

79、free

功能描述: 查看内存与swap分区使用状况

cached(缓存):是指把读取出来的数据保存在内存当中,当再次读取时,不用读取硬盘而直接从内存当中读取,加速了数据的读取过程

buffer(缓冲):是指在写入数据时,先把分散的写入操作保存到内存当中,当达到一定程度再集中写入硬盘,减少了磁盘碎片和硬盘的反复寻道,加速了数据的写入过程.

语法: free [-b|-k|-m|-g]

选项:

  • -b: 以字节为单位显示
  • -k: 以KB为单位显示,默认就是以KB为单位显示
  • -m: 以MB为单位显示
  • -g: 以GB为单位显示

80.history

功能描述: 查看历史命令。tab键补齐,两次tab键列出先关内容

语法: history [选项] [历史名保存文件]

选项:

  • -c 清空历史命令
  • -w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history (每个用户都有)

其他:历史命令默认会保存1000条数据,可以在环境变量配置文件/etc/profile中进行修改 HISTSIZE=1000

使用技巧:

  • 使用上下箭头调用以前的命令
  • !n 重复执行第n条命令
  • !字串 重复执行最后一条以字串开头的命令

81、alias & unalias

命令执行时顺序

  • 1第一顺位执行用绝对路径或相对路径执行的命令。
  • 2 第二顺位执行别名。
  • 3 第三顺位执行Bash的内部命令。
  • 4 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。
# 查询别名命令
alias

# 设定命令别名

alias 别名='原命令'

# 永久配置生效
vim /root/.bashrc

# 删除别名
unalias 别名

81.wc

功能描述: 统计字节单词行数

语法: wc [选项] [文件名]

选项:

  • -c 统计字节数
  • -w 统计单词数
  • -l 统计行数

案例:

df -h | wc

wc

82.pstree

功能描述: 查看当前进程树
语法: pstree [选项]
选项:

  • -p: 显示进程的PID
  • -u: 显示进程的用户

82、read

功能描述: 接收键盘输入

语法: read [选项] [变量名]

选项:

  • -p “提示信息”:在等待read输入时,输出提示信息
  • -t 秒数: read命令会在指定的时间内一直等待用户的输入
  • -n 字符数: read命令只接收指定的字符数,就会执行,不用回车
  • -s 隐藏输入的数据

案例

#!/bin/bash
# read 案例
# Author:dingwen <E-mail:dingwenemail@qq.com>

read -t 30 -p "请输入姓名:" name
echo $name

read -t 30 -s -p "请输入年龄:" age
echo $age

read -n 1 -p "请输入性别:[M/F]" gender
echo -e "\n" $gender

83.declare

功能描述: 声明变量类型

语法: declare [+ - ] [选项] [变量名]

选项:

  • -: 给变量设定类型属性
  • +: 取消变量类型属性
  • -i: 将变量申明为整数型(Integer)
  • -X: 将变量声明为环境变量
  • -p: 显示指定变量的被声明类型
# 数值运算
x=1200
y=2300
declare total=$x+$y
echo $total

# expr或者let数值运算工具
aa=11
bb=22
# 加号两侧必须有空格
dd=$(expr $aa + $bb)

# $((运算式))

# $[运算式]

运算符

echo $(((11+3)*3/2))
echo $((14%3))

84.source

功能描述:在不用退出,或者重启的情况下,让配置文件生效

source 配置文件 或者 . 配置文件 (. 相当于source)

85.date

显示当前系统时间

格式化输出:date "+%Y-%m-%d %H:%M:%S"

85.cut

功能描述: 截取列

语法: cut [选项] 文件名

选项:

  • -f 列号: 提取第几列
  • -d 分隔符: 按照指定分隔符分隔列,默认为制表符

案例:

cut -f 2 score.txt

cut -f 2,3 score.txt 

cut -d ":" -f 2,3 /etc/passwd

# cut命令的局限:无法处理空格
df -h | cut -d " " -f 1,3

86.printf

功能描述:输出内容

语法: printf ‘输出类型输出格式’ 输出内容

输出类型:

  • %ns: 输出字符串。n是数字指代输出几个字符
  • %n1: 输出整数。n是数字指代输出几个数字
  • %m.nf: 输出浮点数。m和n是数字,指代输出的整数位数和小数位数。如%8.2f代表共输出8位数,其中2位是小数,6位
    是整数。

输出格式:

  • \a: 输出警告声音
  • \b: 输出退格键,也就是Backspace键
  • \f: 清除屏幕
  • \n: 换行
  • \r: 回车,也就是Enter键
  • \t: 水平输出退格键,也就是Tab键
  • \v: 垂直输出退格键,也就是Tab键

案例:

printf %s 1 2 3 4 5 6

printf '6%s \a' ab cd ef

printf %s %s %s 1 2 3 4 5 6

printf '%s %s %s' 1 2 3 4 5 6

printf '%s %s %s\n' 1 2 3 4 5 6

printf '%s\t %s\t %s\t %s\n' $(cat score.txt)

# 不调整输出格式
printf '%s' $(cat student.txt)

# 调整格式输出
printf '%s\t %s\t %s\t %s\t %s\t %s\t \n' $(cat student.txt)

在awk命令的输出中支持print和printf命令,Linux没有printf命令:

  • print: print会在每个输出之后自动加入一个换行符
  • prinf: printf是标准格式输出命令,并不会自动加入换行符,如果需要换行,需要手工加入换行符

87.awk

功能描述:支持复杂的列截取(支持空格处理)

语法:awk '条件1{动作1}'条件2{动作2}…'文件名

条件:一般使用关系表达式作为条件(如:x > 10)

动作:格式化输出、流程控制语句

案例:

awk '{printf $2 "\t" $3 "\n"}' score.txt 

df -h | awk '{print $5}'

df -h | grep '/$' | awk '{printf $5}' | cut -d '%' -f 

# BEGIN
 awk 'BEGIN{printf "this is test script\n"}{printf $2 "\t" $3 "\n"}' score.txt 

# END
awk 'END{printf "this is test script\n"}{printf $2 "\t" %4 "\n"}' score.txt

# FS内置变量,用于指定分隔符
cat /etc/passwd | grep "/bin/bash" | awk 'BEGIN{FS=":"}{printf $1 "\t\t" $3 "\n"}'

# 关系运算符
cat score.txt | grep -v name | awk '$2 >= 22{printf $1 "\n"}'

88.echo $?

功能描述:上一次命令的结果,执行正确返回0,其他都是非0

89.sed

sed 是一种几乎包括在所有UNIX平台(包括Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令。

语法: sed [选项] ‘[动作]’ 文件名

选项:

  • -n: 一般sed命令会把所有数据都输出到屏幕,-n只输出经过sed处理的行输出到屏幕
  • -e: 允许对输入数据应用多条sed命令编辑
  • -i: sed的修改结果直接修改源文件

动作:

  • a\ : 追加,在当前行后添加一行或多行。添加多行时,除最后一行外,每行末尾需要用“\”代表数据未完结
  • c\ : 行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用“\”代表数据未完结
  • i\ : 插入,在当期行前插入一行或多行。插入多行时,除最后一行外,每行末尾需要用“\”代表数据未完结
  • d : 删除指定的行
  • p : 输出指定的行
  • s : 字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串/g”(和vim中的替换格式类似)

案例:

# 查看文件第二行
sed '2p'score.txt # 文件全部输出重复第二行
sed '2p' score.txt -n # 只输出第二行

# 删除第二行到第四行的数据,但是不修改文件本身数据
sed '2,4d' score.txt

# 在第二行后面追加hello
sed '2a hello' score.txt

# 在第二行前面插入两条数据
sed '2i hello \ world' score.txt

# 数据替换
sed '2c talk is cheap show me the code' score.txt

# 字符串替换
# sed 's/旧字串/新字串/g' 文件名
# 第二行中,把99换成100 
sed '2s/99/100/g' score.txt

# 操作的数据直接写入w文件
sed -i '2s/99/100/g' score.txt

# 多条件替换
sed -e 's/dingwen/丁文/g;s/maorui/毛蕊/g' score.txt 

90.sort

功能描述: 排序

语法: sort [选项] 文件名

选项:

  • -f: 忽略大小写
  • -n: 以数值型进行排序,默认使用字符串进行排序a-Z
  • -r: 反向排序
  • -t: 指定分隔符,默认分隔符是制表符
  • -k n[,m] 按照指定的字段范围排序。从第n字段开始,m字段结束(默认到行尾)

案例:

# 排序用户信息文件
sort /etc/passwd

# 反向排序
sort -r /etc/passwd

# 指定分隔符是“:”,用第三字段开头,第三字段结尾排序,就是只用第三字段排序
sort -n  -t ":" -k 3,3 /etc/passwd # -n # 以数字方式进行排序


91.ps aux & ps -le

功能描述:查看系统中所有进程

92.top

功能描述: 查看系统的健康状态

语法:top [选项]

选项:

  • -d 秒数: 指定top命令每隔几秒更新。默认是3秒
  • 在top命令的交互模式当中可以执行的命令:
    • ? \ h : 显示交互模式的帮助
    • P: 以CPU使用率排序,默认就是此项
    • M: 以内存的使用率排序
    • N: 以PID排序
    • q: 退出top

92.kill

功能描述: 杀死进程

语法: kill [选项] PID

案例:

# 查看可用的进程信号
kill -l

选项:

93.killall

以进程名杀死进程

语法: killall [选项][信号] 进程名

选项:

  • -i: 交互式,询问
  • -I: 忽略大小写

94.pkil

语法: pkill [选项][信号] 进程名

选项:

  • -t : 按照终端号踢出用户

95.vmstat

功能描述:监控系统资源

语法: vmstat [刷新延时 刷新次数]

vmstat 1 3

96.dmesg

功能描述: 查看开机时的内核检测信息

dmesg

97.查看CPU信息

cat /proc/cpuinfo

98.uptime

功能描述: 显示系统的启动时间和平均负载,也就是top命令的第一行。w命令也可以看到这个数据

uptime

99.uname

查看系统与内核相关信息

语法: uname [选项]

选项:

  • -a: 查看系统所有相关信息
  • -r: 查看内核版本
  • -s: 查看内核名称

100.file /bin/ls

判断当前系统位数

101.lsb_release -a

查看当前Linux发行版本,需要安装yum -y install redhat-lsb

102.lsof

功能描述: 列出进程打开或使用的文件信息

语法: lsof [选项]

选项:

  • -c 字符串 : 只列出以字符串开头的进程打开的文件
  • -u 用户名: 只列出某个用户的进程打开的文件
  • -p PID: 列出某个PID进程打开的文件
  • -i:端口号 查看该端口正在运行的程序

103.crontab

功能描述: 系统定时任务管理

语法:crontab [选项]

选项:

  • -e : 编辑crontab定时任务
  • -l: 查询crontab定时任务
  • -r: 删除当前用户的所有crontab任务

注意:需要删除当个crontab定时任务只需要在vim中编辑删除即可

104. logrotate

功能描述: 日志轮替配置

语法:logrotate [选项] 配置文件名

选项:

  • -f: 强制进行日志轮替。不管日志轮替的条件是否已经符合,强制配置文件中所有的日志进行轮替
  • -v : 显示日志轮替过程。加了-v选项,会显示日志的轮替的过程

注意:如果此命令没有选项,则会按照配置文件中的条件进行日志轮替

105. dump

功能描述: 备份

语法: dump [选项] 备份之后的文件名 原文件或者目录

选项:

  • -level: 就是我们说的0-9十个备份级别
  • -f: 指定备份之后的文件名
  • -u: 备份成功之后,把备份时间记录在/etc/dumpdates文件
  • -v: 显示备份过程中更多的输出信息
  • -j: 调用bzlib库压缩备份文件,其实就是把备份文件压缩为.bz2格式,默认压缩等级是2
  • -W: 显示允许被dump的分区的备份等级及备份时间

案例:

# 安装 dump
yum -y install dump

# 备份分区

# 备份命令。先执行一次完全备份,并压缩和更新备份时间
dump -0uj -f /root/boot.bak.bz2 /boot/

# 查看备份时间文件
cat /etc/dumpdates

# 复制日志文件到/boot分区
cp install.log /boot/

# 增量备份/boot分区,并压缩
dump -1uj -f /root/boot.bak1.bz2 /boot/

# 查询分区的备份时间及备份级别的
dump –W



# 备份文件或目录

# 完全备份/etc/目录,只能使用0级别进行完全备份,而不再支持增量备份
dump -0j -f /root/etc.dump.bz2 /etc/

106.restore

功能描述: 备份

语法: restore [模式选项] [选项]

选项:

  • -C : 比较备份数据和实际数据的变化
  • -f: 指定备份文件的文件名

注意: restore命令常用的模式有以下四种,这四个模式不能混用

  • -t: 查看模式,用于查看备份文件中拥有哪些数据。
  • -i: 进入交互模式,手工选择需要恢复的文件。
  • -r: 还原模式,用于数据还原。

案例:

mv /boot/vmlinuz-2.6.32-279.el6.i686 /boot/vmlinuz-2.6.32-279.el6.i686.bak
# 把/boot目录中内核镜像文件改个名字
restore -C -f /root/boot.bak.bz2
# restore发现内核镜像文件丢失

# 查看模式
restore -t -f boot.bak.bz2 

# 还原模式

# 还原boot.bak.bz2分区备份
# 先还原完全备份的数据
mkdir boot.test
cd boot.test/
restore -r -f /root/boot.bak.bz2
# 解压缩
restore -r -f /root/boot.bak1.bz2

# 恢复增量备份数据
# 还原/etc/目录的备份etc.dump.bz2
# 还原etc.dump.bz2备份
restore -r -f etc.dump.bz2

107.rpm


# 查询已安装的软件
rpm -qa 软件名

# 文件名绝对路径 文件名的绝对路径
rpm -qf 文件名称

# 查询已安装的软件包都安装到何处
rpm -ql 软件名

# 查询一个已安装软件包的信息
rpm -qi 软件名

# 查看已安装软件的配置文件
rpm -qc 软件名

#  查看已安装软件的文档安装位置
rpm -qd 软件名

#  查看已安装软件依赖包和文件
rpm -qR 软件名

# 对未安装软件信息的查询
rpm -qpi rpm文件 查看一个软件包的用途和版本信息

rpm -qpl rpm文件 查看一个软件包所包含的文件

rpm -qpd rpm文件 查看软件包的文档所在位置

rpm -qpc rpm文件 查看软件包的配置文件

rpm -qpR rpm文件 查看软件包的依赖关

# 软件包的安装、升级、删除
rpm -ivh rpm文件 安装rpm包

rpm -Uvh rpm文件 更新rpm包

rpm -e 软件名 删除rpm包

rpm -e 软件名 –nodeps 不管依赖关系,强制删除软件

rpm –import 签名文件 导入签名 

108.yum

语法: yum [选项] [参数]

选项:

  • -h:显示帮助信息;
  • -y:对所有的提问都回答“yes”;
  • -c:指定配置文件;
  • -q:安静模式;
  • -v:详细模式;
  • -d:设置调试等级(0-10);
  • -e:设置错误等级(0-10);
  • -R:设置yum处理一个命令的最大等待时间;
  • -C:完全从缓存中运行,而不去下载或者更新任何头文件。

参数:

  • install:安装rpm软件包;
  • update:更新rpm软件包;
  • check-update:检查是否有可用的更新rpm软件包;
  • remove:删除指定的rpm软件包;
  • list:显示软件包的信息;
  • search:检查软件包的信息;
  • info:显示指定的rpm软件包的描述信息和概要信息;
  • clean:清理yum过期的缓存;
  • shell:进入yum的shell提示符;
  • resolvedep:显示rpm软件包的依赖关系;
  • localinstall:安装本地的rpm软件包;
  • localupdate:显示本地rpm软件包进行更新;
  • deplist:显示rpm软件包的所有依赖关系。

常用:

 >> 安装
 
 yum install 全部安装
 
 yum install package1 安装指定的安装包package1
 
 yum groupinsall group1 安装程序组group1
 
 
 >> 更新和升级
 yum update 全部更新
 yum update package1 更新指定程序包package1
 yum check-update 检查可更新的程序
 yum upgrade package1 升级指定程序包package1
 yum groupupdate group1 升级程序组group1
 
 >> 查找和显示
 yum info package1 显示安装包信息package1
 yum list 显示所有已经安装和可以安装的程序包
 yum list package1 显示指定程序包安装情况package1
 yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包
 
 >> 删除程序
 yum remove package1 删除程序包package1
 yum groupremove group1 删除程序组group1
 yum deplist package1 查看程序package1依赖情况
 
 >> 清除缓存
 yum clean packages 清除缓存目录下的软件包
 yum clean headers 清除缓存目录下的 headers
 yum clean oldheaders 清除缓存目录下旧的 headers
 yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers

案例:

# 查找包
yum search 包名称

# 列出所有可安装的软件包
yum list

# 列出所有可以更新的软件包

yum list updates

# 列出所有已安装的软件包

yum list installed

# 不询问安装

yum -y install 软件包名称

109. ps

查看进程信息

 ps -ef | grep 80

110. firewalld

防火墙

# 查看防火墙状态
systemctl status firewalld

# 关闭防火墙
systemctl stop firewalld
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dingwen_blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值