目录
keytool命令 – 密钥和证书管理工具
rndc-confgen命令 – 密钥生成工具
umount.nfs命令 – 卸载NFS文件系统
createdb命令 – 创建PostgreSQL数据库
vacuumdb命令 – 清理并优化PostgreSQL数据库
cat命令 – 在终端设备上显示文件内容
cp命令 – 复制文件或目录
mkdir命令 – 创建目录
echo命令 – 输出字符串或提取Shell变量的值
mv命令 – 移动或改名文件
rm命令 – 移除文件或目录
df命令 – 显示磁盘空间使用情况
pwd命令 – 显示当前路径
ssh命令 – 安全连接客户端
rpm命令 – RPM软件包管理器
find命令 – 查找和搜索文件
tail命令 – 查看文件尾部内容
mount命令 – 文件系统挂载
tftp命令 – 上传及下载文件
grep命令 – 强大的文本搜索工具
rmdir命令 – 删除空目录
netstat命令 – 显示网络状态
startx命令 – 初始化X-windows
fdisk命令 – 磁盘分区
curl命令 – 文件传输工具
dhclient命令 – 动态获取或释放IP地址
ping命令 – 测试主机间网络连通性
LVM逻辑卷管理
卷组管理
逻辑卷管理
tar归档和释放和释放工具
Ls命令——列表显示目录内容
du命令——统计目录及文件的空间占用情况
wc命令——统计文件内容中的单词数量、行数等信息
空文件末行模式的操作
替换文件内容
n,m 在指定行数的范围内的文件内容中进行查找并替换
useradd命令——添加用户账户
Passwd命令——为用户账号添加密码
usermod命令——修改用户账号属性
userdel命令——删除用户账号
chage用法详解:修改用户密码状态
l:列出用户的详细密码状态;
mkvcdfs命令 – 制作vcd文件
sdiff命令 – 以并排方式合并文件之间的差异
genisoimage命令 – 创建映像文件
cdrdao命令 – 刻录影像到光盘
gedit命令 – GNOME桌面的文本编辑器
view命令 – 可以调用vi的命令文本编辑器
red命令 – 指定文件编辑器
a 在文件的末尾添加新内容
i 在文件的最后一行之前插入新内容
o 把文件输入的最后一行替换成新内容
w 保存文件
q 真正退出编辑器
Which命令——查找用户所执行的命令文件或存放的目录
网卡配置信息:/etc/sysconfig/network-scripts/ifcfg-ens33
目录含义
系统控制服务
mkfs命令--创建文件系统
Ps命令——查看静态的进程统计消息
a 显示当前终端下的所有进程信息
u 使用以用户为主的格式输出进程关系
x 显示当前用户在所有终端下的进程信息
pgrep命令——查询进程信息
keytool命令 – 密钥和证书管理工具
certreq 生成证书请求
-changealias 更改条目的别名
-delete 删除条目
-exportcert 导出证书
-genkeypait 生成密钥对
-genseckey 生成密钥
-gencert 根据证书请求生成证书
-importcert 导入证书或证书链
-importkeystore 从其他密钥库导入一个或所有条目
-keypasswd 更改条目的密钥口令
-list 列出密钥库中的条目
-printcert 打印证书内容
-printcertreq 打印证书请求的内容
-printcrl 打印CRL文件的内容
-storepasswd 更改密钥库的存储口令
参考实例
生成服务器证书文件,并设定相应有效期:
[root@linuxcool ~]# keytool -genkey -alias tomcat -keyalg RSA -keystore /etc/tomcat.keystore -validity 36500
导入一个证书:
[root@linuxcool ~]# keytool -import -keystore cacerts -storepass 666666 -keypass 888888 -alias linuxcoolcert -file C:\linuxcool\cert\test.cer
要删除证书库里面的指定证书:
[root@linuxcool ~]# keytool -delete -alias linuxcoolcert -keystore cacerts -storepass 666666
rndc-confgen命令 – 密钥生成工具
语法格式:rndc-confgen [参数]
常用参数:
-t<目录> 指定一个运行chroot目录,rndc.key文件的副本将被写入到该目录中
-s
-c<密钥文件> 指定备用位置的rndc.key密钥文件
-b<密钥大小> 指定密钥的大小,单位是位。必须介于1和512位之间,默认值是128
-p<端口> 为来自rndc的连接指定监听的命令通道端口。默认值是953
-u<用户> 设置生成的rndc.key密钥文件的所有者
-r<随机文件> 指定用于生成授权随机数据源
-k<密钥名称> 指定rndc认证密钥的密钥名称
-a 自动rndc配置,创建密钥文件/etc/rndc.key
参考实例
为rndc生成配置文件/etc/rndc.conf:
[root@linuxcool ~]# pwdhash -c linuxcool linux
自动rndc配置,创建密钥文件/etc/rndc.key:
[root@linuxcool ~]# rndc-confgen -a
更新key文件:
[root@linuxcool ~]# rndc-confgen
umount.nfs命令 – 卸载NFS文件系统
语法格式:umount.nfs [本地目录] [参数]
-f 在无法访问NFS系统的情况下强制卸载文件系统
-n 不更新/etc/mtab文件
-v 显示详细信息
-r 在卸载失败的情况下,尝试只读挂载
参考实例
挂载NFS服务器192.168.60.102的共享目录/it:
[root@linuxcool ~]# umount.nfs4 /mnt/it
强制卸载文件系统:
[root@linuxcool ~]# umount.nfs4 /mnt/it -f
尝试只读挂载:
[root@linuxcool ~]# umount.nfs4 /mnt/it -r
createdb命令 – 创建PostgreSQL数据库
语法格式:createdb [参数] [数据库] [描述]
常用参数:
-D<表空间> 数据库默认表空间
-e 显示发送到服务端的命令
-O<所有者> 新数据库的所属用户
-E<编码> 指定数据库编码
-h<主机名> 数据库服务器的主机名
-p<端口> 数据库服务器端口号
-U<用户> 连接的用户名
-w 永远不提示输入口令
-W 强制提示输入口令
-T<模版数据库> 指定要复制的数据库模版
参考实例
创建数据库linuxcool:
[root@linuxcool ~]# su -postgres $ createdb linuxcool
主机192.168.60.163上的服务器创建数据库linuxcool,端口是5888:
[root@linuxcool ~]# createdb -p 5888 -h 192.168.60.163 linuxcool
以数据库linuxcool为模版复制创建数据库db1:
[root@linuxcool ~]# su -postgres
$ createdb db1 -T linuxcool
vacuumdb命令 – 清理并优化PostgreSQL数据库
语法格式:vacuumdb [参数] [数据库名]
-a 清理所有的数据库
-d<数据库名称> 清理指定的数据库
-e 显示发送到服务端的命令
-f 完全清理
-F 冻结记录的事务信息
-q 不写任何信息
-t<表名> 只清理指定的表
-U<用户名> 指定连接的用户名
-w 永远不提示输入口令
-W 强制提示输入口令
-h<主机名> 数据库服务器所在主机的主机名或套接字目录
-p<端口号> 指定数据库服务器端口号
-z 更新优化器信息
-v 输出大量的信息
参考实例
清理所有的数据库:
[root@linuxcool ~]# su - postgres
$ vacuumdb -a
为优化器清理和分析一个名为bigdb的数据库:
[root@linuxcool ~]# su - postgres
$ vacuumdb -z bigdb
清理数据库linuxcool中的table1表:
[root@linuxcool ~]# su - postgres
$ vacuumdb -d linuxcool -t 'table1'
ls命令 – 显示指定工作目录下的内容及属性信息
语法格式: ls [选项] [文件]
常用参数:
-a 显示所有文件及目录(包括以“.”开头的隐藏文件)
-l 使用长格式列出文件及目录信息
-r 将文件以相反次序显示(默认依英文字母次序)
-t 根据最后的修改时间排序
-A 同-a ,但不列出 “.” (当前目录) 及 “..” (父目录)
-S 根据文件大小排序
-R 递归列出所有子目录
参考实例
列出所有文件(包括隐藏文件):
[root@linuxcool ~]# ls -a
列出文件的详细信息:
[root@linuxcool ~]# ls -l
列出根目录(/)下的所有目录:
[root@linuxcool ~]# ls /
列出当前工作目录下所有名称是“s” 开头的文件 :
[root@linuxcool ~]# ls -ltr s*
列出/bin 目录下的所有目录及文件的详细信息 :
[root@linuxcool ~]# ls -lR /bin
列出当前工作目录下所有文件及目录并以文件的大小进行排序:
[root@linuxcool ~]# ls -AS
cat命令 – 在终端设备上显示文件内容
语法格式:cat [参数] [文件]
常用参数:
-n 显示行数(空行也编号)
-s 显示行数(多个空行算一个编号)
-b 显示行数(空行不编号)
-E 每行结束处显示$符号
-T 将TAB字符显示为 ^I符号
-v 使用^ 和 M- 引用,除了 LFD 和 TAB 之外
-e 等价于”-vE”组合
-t 等价于”-vT”组合
-A 等价于-vET组合
--help 显示帮助信息
--version 显示版本信息
参考实例
查看文件的内容:
[root@linuxcool ~]# cat filename.txt
查看文件的内容,并显示行数编号:
[root@linuxcool ~]# cat -n filename.txt
查看文件的内容,并添加行数编号后输出到另外一个文件中:
[root@linuxcool ~]# cat -n linuxcool.log > linuxprobe.log
清空文件的内容:
[root@linuxcool ~]# cat /dev/null > /root/filename.txt
持续写入文件内容,碰到EOF符后结束并保存:
[root@linuxcool ~]# cat > filename.txt < > Hello, World > Linux! > EOF 将软盘设备制作成镜像文件: [root@linuxcool ~]# cat /dev/fd0 > fdisk.iso cp命令 – 复制文件或目录 语法格式:cp [参数] [文件] 常用参数: -f 若目标文件已存在,则会直接覆盖原文件 -i 若目标文件已存在,则会询问是否覆盖 -p 保留源文件或目录的所有属性 -r 递归复制文件和目录 -d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录 -l 对源文件建立硬连接,而非复制文件 -s 对源文件建立符号连接,而非复制文件 -b 覆盖已存在的文件目标前将目标文件备份 -v 详细显示cp命令执行的操作过程 -a 等价于“dpr”选项 参考实例 复制目录: [root@linuxcool ~]# cp -R dir1 dir2/ 将文件test1改名为test2: [root@linuxcool ~]# cp -f test1 test2 复制多个文件: [root@linuxcool ~]# cp -r file1 file2 file3 dir 交互式地将目录/usr/linuxcool 中的所有.c文件复制到目录 dir 中: [root@linuxcool ~]# cp -r /usr/linuxcool/*.c dir mkdir命令 – 创建目录 语法格式: mkdir [参数] [目录] 常用参数: -p 递归创建多级目录 -m 建立目录的同时设置目录的权限 -z 设置安全上下文 -v 显示目录的创建过程 参考实例 在工作目录下,建立一个名为dir 的子目录: [root@linuxcool ~]# mkdir dir 在目录/usr/linuxcool下建立子目录dir,并且设置文件属主有读、写和执行权限,其他人无权访问 [root@linuxcool ~]# mkdir -m 700 /usr/linuxcool/dir 同时创建子目录dir1,dir2,dir3: [root@linuxcool ~]# mkdir dir1 dir2 dir3 递归创建目录: [root@linuxcool ~]# mkdir -p linuxcool/dir echo命令 – 输出字符串或提取Shell变量的值 语法格式:echo [参数] [字符串] 常用参数: -n 不输出结尾的换行符 -e “\a” 发出警告音 -e “\b” 删除前面的一个字符 -e “\c” 结尾不加换行符 -e “\f” 换行,光标扔停留在原来的坐标位置 -e “\n” 换行,光标移至行首 -e “\r” 光标移至行首,但不换行 -E 禁止反斜杠转移,与-e参数功能相反 —version 查看版本信息 --help 查看帮助信息 参考实例 配置用户密码 echo "密码" | passwd --stdin 用户名 输出一段字符串: [root@linuxcool ~]# echo "LinuxCool.com" LinuxCool.com 输出变量提取后的值: [root@linuxcool ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 对内容进行转义,不让$符号的提取变量值功能生效: [root@linuxcool ~]# echo \$PATH $PATH 结合输出重定向符,将字符串信息导入文件中: [root@linuxcool ~]# echo "It is a test" > linuxcool 使用反引号符执行命令,并输出其结果到终端: [root@linuxcool ~]# echo `date` 输出带有换行符的内容: [root@linuxcool ~]# echo -e "a\nb\nc" a b c 输出信息中删除某个字符,注意看数字3消失了: [root@linuxcool ~]# echo -e "123\b456" 12456 mv命令 – 移动或改名文件 语法格式:mv [参数]源文件目录目标文件或目录 常用参数: -i 若存在同名文件,则向用户询问是否覆盖 -f 覆盖已有文件时,不进行任何提示 -b 当文件存在时,覆盖前为其创建一个备份 -u 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作 参考实例 将文件file_1重命名为file_2: [root@linuxcool ~]# mv file_1 file_2 将文件file移动到目录dir中 : [root@linuxcool ~]# mv file /dir 将目录dir1移动目录dir2中(前提是目录dir2已存在,若不存在则改名): [root@linuxcool ~]# mv /dir1 /dir2 将目录dir1下的文件移动到当前目录下: [root@linuxcool ~]# mv /dir1/* . rm命令 – 移除文件或目录 语法格式:rm [参数] [文件] 常用参数: -f 忽略不存在的文件,不会出现警告信息 -i 删除前会询问用户是否操作 -r/R 递归删除 -v 显示指令的详细执行过程 参考实例 删除前逐一询问确认: [root@linuxcool ~]# rm -i test.txt.bz2 rm: remove regular file `test.txt.bz2'? 直接删除,不会有任何提示: 递归删除目录及目录下所有文件: [root@linuxcool ~]# mkdir /data/log [root@linuxcool ~]# rm -rf /data/log 删除当前目录下所有文件: [root@linuxcool ~]# rm -rf * 清空系统中所有的文件(谨慎): [root@linuxcool ~]# rm -rf /* [root@linuxcool ~]# rm -f test.txt.bz2 df命令 – 显示磁盘空间使用情况 语法格式:df [参数] [指定文件] 常用参数: -a 显示所有系统文件 -B <块大小> 指定显示时的块大小 -h 以容易阅读的方式显示 -H 以1000字节为换算单位来显示 -i 显示索引字节信息 -k 指定块大小为1KB -l 只显示本地文件系统 -t <文件系统类型> 只显示指定类型的文件系统 -T 输出时显示文件系统类型 -- -sync 在取得磁盘使用信息前,先执行sync命令 参考实例 显示磁盘分区使用情况: [root@linuxcool ~]# df 文件系统1K-块 已用 可用 已用% 挂载点 devtmpfs 1980612 0 1980612 0% /dev tmpfs 1994756 0 1994756 0% /dev/shm tmpfs 1994756 1040 1993716 1% /run tmpfs 1994756 0 1994756 0% /sys/fs/cgroup /dev/mapper/fedora_linuxhell-root 15718400 2040836 13677564 13% / tmpfs 1994756 4 1994752 1% /tmp /dev/sda1 999320 128264 802244 14% /boot tmpfs 398948 0 398948 0% /run/user/0 以容易阅读的方式显示磁盘分区使用情况: [root@linuxcool ~]# df -h 文件系统容量已用可用已用% 挂载点 devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 2.0G 1.1M 2.0G 1% /run tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/mapper/fedora_linuxhell-root 15G 2.0G 14G 13% / tmpfs 2.0G 4.0K 2.0G 1% /tmp /dev/sda1 976M 126M 784M 14% /boot tmpfs 390M 0 390M 0% /run/user/0 显示指定文件所在分区的磁盘使用情况: [root@linuxcool ~]# df /etc/dhcp 文件系统1K-块 已用 可用 已用% 挂载点 /dev/mapper/fedora_linuxcool-root 15718400 2040836 13677564 13% / 显示文件类型为ext4的磁盘使用情况: [root@linuxcool ~]# df -t ext4 文件系统1K-块 已用 可用 已用% 挂载点 /dev/sda1 999320 128264 802244 14% /boot pwd命令 – 显示当前路径 语法格式: pwd [参数] 常用参数: -L 显示逻辑路径 参考实例 查看当前工作目录路径: [root@linuxcool ~]# pwd /home/linuxcool ssh命令 – 安全连接客户端 语法格式: ssh [参数] [远程主机] 常用参数: -1 强制使用ssh协议版本1 -2 强制使用ssh协议版本2 -4 强制使用IPv4地址 -6 强制使用IPv6地址 -A 开启认证代理连接转发功能 -a 关闭认证代理连接转发功能 -b -C 请求压缩所有数据 -F<配置文件> 指定ssh指令的配置文件,默认的配置文件为“/etc/ssh/ssh_config” -f 后台执行ssh指令 -g 允许远程主机连接本机的转发端口 -i<身份文件> 指定身份文件(即私钥文件) -l<登录名> 指定连接远程服务器的登录用户名 -N 不执行远程指令 -o<选项> 指定配置选项 -p<端口> 指定远程服务器上的端口 -q 静默模式,所有的警告和诊断信息被禁止输出 -X 开启X11转发功能 -x 关闭X11转发功能 -y 开启信任X11转发功能 参考实例 登录远程服务器: [root@linuxcool ~]# ssh 202.102.240.88 用test用户连接远程服务器: [root@linuxcool ~]# ssh -l test 202.102.220.88 查看分区列表: [root@linuxcool ~]# ssh 202.102.220.88 /sbin/fdisk -l 强制使用ssh协议版本1: [root@linuxcool ~]# ssh -1 开启认证代理连接转发功能: [root@linuxcool ~]# ssh -A rpm命令 – RPM软件包管理器 语法格式:rpm [参数] [软件包] 常用参数: -a 查询所有的软件包 -b或-t 设置包装套件的完成阶段,并指定套件档的文件名称; -c 只列出组态配置文件,本参数需配合”-l”参数使用 -d 只列出文本文件,本参数需配合”-l”参数使用 -e或--erase 卸载软件包 -f 查询文件或命令属于哪个软件包 -h或--hash 安装软件包时列出标记 -i 显示软件包的相关信息 --install 安装软件包 -l 显示软件包的文件列表 -p 查询指定的rpm软件包 -q 查询软件包 -R 显示软件包的依赖关系 -s 显示文件状态,本参数需配合”-l”参数使用 -U或--upgrade 升级软件包 -v 显示命令执行过程 -vv 详细显示指令执行过程 参考实例 直接安装软件包: [root@linuxcool ~]# rpm -ivh packge.rpm 忽略报错,强制安装: [root@linuxcool ~]# rpm --force -ivh package.rpm 列出所有安装过的包: [root@linuxcool ~]# rpm -qa 查询rpm包中的文件安装的位置: [root@linuxcool ~]# rpm -ql ls 卸载rpm包: [root@linuxcool ~]# rpm -e package.rpm 升级软件包: [root@linuxcool ~]# rpm -U file.rpm find命令 – 查找和搜索文件 语法格式:find [参数] [路径] [查找和搜索范围] 常用参数: -name 按名称查找 -size 按大小查找 -user 按属性查找 -type(文件f,目录d,块设备文件b,字符设备文件c)长度按类型查找 -iname 忽略大小写 -perm 根据文件属性查找 参考实例 使用-name参数查看/etc目录下面所有的.conf结尾的配置文件: [root@linuxcool ~]# find /etc -name "*.conf 使用-size参数查看/etc目录下面大于1M的文件: [root@linuxcool ~]# find /etc -size +1M 查找当前用户主目录下的所有文件: [root@linuxcool ~]# find $HOME -print 列出当前目录及子目录下所有文件和文件夹: [root@linuxcool ~]# find . 在/home目录下查找以.txt结尾的文件名: [root@linuxcool ~]# find /home -name "*.txt" 在/var/log目录下忽略大小写查找以.log结尾的文件名: [root@linuxcool ~]# find /var/log -iname "*.log" 搜索超过七天内被访问过的所有文件: [root@linuxcool ~]# find . -type f -atime +7 搜索访问时间超过10分钟的所有文件: [root@linuxcool ~]# find . -type f -amin +10 找出/home下不是以.txt结尾的文件: [root@linuxcool ~]# find /home ! -name "*.txt" 找出普通文件,权限是755的 [root@localhost ~]# find /boot -perm 755 -type f -ls 查找权限为750的目录 find ./ -perm 750 -type d -ls tail命令 – 查看文件尾部内容 语法格式:tail [参数] 常用参数: --retry 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用 -c -f -F 与选项“-follow=name”和“--retry”连用时功能相同 -n --pid=<进程号> 与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令 --help 显示指令的帮助信息 --version 显示指令的版本信息 参考实例 显示文件file的最后10行: [root@linuxcool ~ ] tail file 显示文件file的内容,从第20行至文件末尾: [root@linuxcool ~ ] tail +20 file 显示文件file的最后10个字符: [root@linuxcool ~ ] tail -c 10 file 一直变化的文件总是显示后10行: [root@linuxcool ~ ] tail -f 10 file 显示帮助信息: [root@linuxcool ~ ] tail --help mount命令 – 文件系统挂载 语法格式:mount [参数]存储设备挂载点 常用参数: -t 指定挂载类型 -l 显示已加载的文件系统列表 -h 显示帮助信息并退出 -V 显示程序版本 -n 加载没有写入文件“/etc/mtab”中的文件系统 -r 将文件系统加载为只读模式 -a 加载文件“/etc/fstab”中描述的所有文件系统 参考实例 查看版本: [root@linuxcool ~]# mount -V 启动所有挂载: [root@linuxcool ~]# mount -a 挂载/dev/cdrom 到 /mnt: [root@linuxcool ~]# mount /dev/cdrom /mnt 挂载nfs格式文件系统: [root@linuxcool ~]# mount -t nfs /123 /mnt 挂载第一块盘的第一个分区到/etc目录 : [root@linuxcool ~]# mount -t ext4 -o loop,default /dev/sda1 /etc tftp命令 – 上传及下载文件 语法格式:tftp [参数] 常用参数: Connect 连接到远程tftp服务器 mode 文件传输模式 put 上传文件 get 下载文件 quit 退出 verbose 显示详细的处理信息 trace 显示包路径 status 显示当前状态信息 binary 二进制传输模式 ascii ascii 传送模式 rexmt 设置包传输的超时时间 timeout 设置重传的超时时间 help 帮助信息 ? 帮助信息 参考实例 连接远程服务器”218.28.188.288″: [root@linuxcool ~]# tftp 218.28.188.288 远程下载file文件: tftp> get file getting from 218.28.188.288 to /dir Recived 168236 bytes in 1.5 seconds[112157 bit/s] 退出tftp: tftp> quit grep命令 – 强大的文本搜索工具 语法格式:grep [参数] 常用参数: -i 搜索时,忽略大小写 -c 只输出匹配行的数量 -l 只列出符合匹配的文件名,不列出具体的匹配行 -n 列出所有的匹配行,显示行号 -h 查询多文件时不显示文件名 -s 不显示不存在、没有匹配文本的错误信息 -v 显示不包含匹配文本的所有行 -w 匹配整词 -x 匹配整行 -r 递归搜索 -q 禁止输出任何结果,已退出状态表示搜索是否成功 -b 打印匹配行距文件头部的偏移量,以字节为单位 -o 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位 参考实例 支持多文件查询并支持使用通配符: [root@linuxcool ~]# grep zwx file_* /etc/hosts file_1:zwx file_1:zwx file_1:zwxddkjflkdjfdlkfjlsdkj file_2:zwx file_4:dkfjlzwxejfkje file_4:zwx djfkdjf file_4:zwxedkfgj 输出匹配字符串行的数量: [root@linuxcool ~]$ grep -c zwx file_* file_1:2 file_2:1 file_3:0 列出所有的匹配行,并显示行号: [root@linuxcool ~]# grep -n zwx file_* file_1:1:zwx file_1:4:zwx file_1:10:zwxddkjflkdjfdlkfjlsdkj file_2:2:zwx file_4:3:dkfjlzwxejfkje file_4:4:zwx djfkdjf file_4:5:zwxedkfgj 显示不包含模式的所有行: [root@linuxcool ~]# grep -vc zwx file_* file_1:7 file_2:4 file_3:5 file_4:2 不再显示文件名: [root@linuxcool ~]# grep -h zwx file_* zwx zwx zwxddkjflkdjfdlkfjlsdkj zwx dkfjlzwxejfkje zwx djfkdjf zwxedkfgj 只列出符合匹配的文件名,不列出具体匹配的行: [root@linuxcool ~]# grep -l zwx file_* file_1 file_2 file_4 不显示不存在或无匹配的文本信息: [root@linuxcool ~]# grep -s zwx file1 file_1 file_1:zwx file_1:zwx file_1:zwxddkjflkdjfdlkfjlsdkj [root@linuxcool ~]# grep zwx file1 file_1 grep: file1: No such file or directory file_1:zwx file_1:zwx file_1:zwxddkjflkdjfdlkfjlsdkj 递归搜索,不仅搜索当前目录,还搜索子目录: [root@linuxcool ~]# grep -r zwx file_2 * file_2:zwx anaconda-ks.cfg:user --name=zwx --gecos="zwx" file_1:zwx file_1:zwx file_1:zwxddkjflkdjfdlkfjlsdkj file_2:zwx file_4:dkfjlzwxejfkje file_4:zwx djfkdjf file_4:zwxedkfgj initial-setup-ks.cfg:user --name=zwx --gecos="zwx" 匹配整词,以字面意思去解释他,相当于精确匹配: [root@linuxcool ~]# grep zw* file_1 zwx zwx zdkfjeld zw ze zwxddkjflkdjfdlkfjlsdkj [root@linuxcool ~]# grep -w zw* file_1 zw 匹配整行,文件中的整行与模式匹配时,才打印出来: [root@linuxcool ~]# grep -x zwx file_* file_1:zwx file_1:zwx file_2:zwx 不输出任何结果,已退出状态表示结果: [root@linuxcool ~]# grep -q zwx file_1 [root@linuxcool ~]# echo $? 0 [root@linuxcool ~]# grep -q zwx file_5 [root@linuxcool ~]# echo $? 1 [root@linuxcool ~]# grep -q zwx file5 grep: file5: No such file or directory [root@linuxcool ~]# echo $? 2 查找一个文件中的空行和非空行: [root@linuxcool ~]# grep -c ^$ file_1 4 [root@linuxcool ~]# grep -c ^[^$] file_1 15 匹配任意或重复字符用“.”或“*”符号来实现: [root@linuxcool ~]# grep ^z.x file_1 zwx zwx zwxddkjflkdjfdlkfjlsdkj [root@linuxcool ~]# grep ^z* file_6 zwx dfkjd zzdfjkd zz dfdww haha rmdir命令 – 删除空目录 语法格式: rmdir [参数] [目录名称] 常用参数: -p 用递归的方式删除指定的目录路径中的所有父级目录,非空则报错 -- -- ignore-fail-on-non-empty 忽略由于删除非空目录时导致命令出错而产生的错误信息 -v 显示命令的详细执行过程 -- -- help 显示命令的帮助信息 -- -- version 显示命令的版本信息 参考实例 删除空目录: [root@linuxcool ~]# rmdir dir 递归删除指定的目录树: [root@linuxcool ~]# rmdir -p dir/dir_1/dir_2 显示指令详细执行过程: [root@linuxcool ~]# rmdir -v dir rmdir: 正在删除目录 'dir' [root@linuxcool ~]# rmdir -p -v dir/dir_1/dir_2 rmdir: 正在删除目录 'dir/dir_1/dir_2 rmdir: 正在删除目录 'dir/dir_1' rmdir: 正在删除目录 'dir_2' 显示命令的版本信息: [root@linuxcool ~]# rmdir --version rmdir (GNU coreutils) 8.30 Copyright (C) 2018 Free Software Foundation, Inc. 许可证GPLv3+:GNU 通用公共许可证第 3 版或更新版本https://gnu.org/licenses/gpl.html。 本软件是自由软件:您可以自由修改和重新发布它。 在法律范围内没有其他保证。 netstat命令 – 显示网络状态 语法格式:netstat [参数] 常用参数: -a 显示所有连线中的Socket -p 显示正在使用Socket的程序识别码和程序名称 -u 显示UDP传输协议的连线状况 -i 显示网络界面信息表单 -n 直接使用IP地址,不通过域名服务器 参考实例 显示详细的网络状况: [root@linuxcool ~]# netstat -a 显示当前户籍UDP连接状况: [root@linuxcool ~]# netstat -nu 显示UDP端口号的使用情况: [root@linuxcool ~]# netstat -apu Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:bootpc 0.0.0.0:* 4000/dhclient udp 0 0 localhost:323 0.0.0.0:* 3725/chronyd udp6 0 0 localhost:323 [::]:* 3725/chronyd 显示网卡列表: [root@linuxcool ~]# netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 181864 0 0 0 141278 0 0 0 BMRU lo 16436 0 3362 0 0 0 3362 0 0 0 LRU 显示组播组的关系: [root@linuxcool ~]# netstat -g IPv6/IPv4 Group Memberships Interface RefCnt Group --------------- ------ --------------------- lo 1 ALL-SYSTEMS.MCAST.NET eth0 1 ALL-SYSTEMS.MCAST.NET lo 1 ff02::1 eth0 1 ff02::1:ff0a:b0c eth0 1 ff02::1 startx命令 – 初始化X-windows 语法格式:startx [参数] 常用参数: -d 指定在启动过程中传递给客户机的X服务器的显示名称 -m 当未找到启动脚本时,启动窗口管理器 -r 当未找到启动脚本时,装入资源文件 -w 强制启动 -x 使用startup脚本启动X-windows会话 参考实例 已默认方式启动X-windows系统: [root@linuxcool ~]# startx 以16位颜色深度启动X-windows系统: [root@linuxcool ~]# startx -- -depth 16 强制启动X-windows系统: [root@linuxcool ~]# startx -w fdisk命令 – 磁盘分区 语法格式:fdisk [参数] 常用参数: -b 指定每个分区的大小 -l 列出指定的外围设备的分区表状况 -s 将指定的分区大小输出到标准输出上,单位为区块 -u 搭配”-l”参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址 -v 显示版本信息 参考实例 查看所有分区情况: [root@linuxcool ~]# fdisk -l 选择分区磁盘: [root@linuxcool ~]# fdisk /dev/sdb 在当前磁盘上建立扩展分区: [root@linuxcool ~]# fdisk /ext 不检查磁盘表面加快分区操作: [root@linuxcool ~]# fdisk /actok 重建主引导记录: [root@linuxcool ~]# fdisk /cmbr curl命令 – 文件传输工具 语法格式:curl [参数] [网址] 常用参数: -O 把输出写到该文件中,保留远程文件的文件名 -u 通过服务端配置的用户名和密码授权访问 参考实例 将下载的数据写入到文件,必须使用文件的绝对地址: [root@linuxcool ~]# curl https://www.linuxcool.com/abc.txt --silent -O 访问需要授权的页面时,可通过-u选项提供用户名和密码进行授权: [root@linuxcool ~]# curl -u root https://www.linuxprobe.com/ Enter host password for user 'root': dhclient命令 – 动态获取或释放IP地址 语法格式:dhclient [参数] [网络接口] 常用参数: -p 指定dhcp客户端监听的端口号(默认端口号86) -d 总是以前台方式运行程序 -q 安静模式,不打印任何错误的提示信息 -r 释放ip地址 -n 不配置任何接口 -x 停止正在运行的DHCP客户端,而不释放当前租约,杀死现有的dhclient -s 在获取ip地址之前指定DHCP服务器 -w 即使没有找到广播接口,也继续运行 参考实例 在指定网络接口上发出DHCP请求: [root@linuxcool ~]# dhclient eth0 释放IP地址: [root@linuxcool ~]# dhclient -r Killed old client process 从指定的服务器获取ip地址: [root@linuxcool ~]# dhclient -s 192.168.60.240 停止运行dhclient: [root@linuxcool ~]# dhclient -x Killed old client process ping命令 – 测试主机间网络连通性 语法格式:ping [参数] [目标主机] 常用参数: -d 使用Socket的SO_DEBUG功能 -c 指定发送报文的次数 -i 指定收发信息的间隔时间 -I 使用指定的网络接口送出数据包 -l 设置在送出要求信息之前,先行发出的数据包 -n 只输出数值 -p 设置填满数据包的范本样式 -q 不显示指令执行过程 -R 记录路由过程 -s 设置数据包的大小 -t 设置存活数值TTL的大小 -v 详细显示指令的执行过程 参考实例 检测与linuxcool网站的连通性: [root@linuxcool ~]# ping www.linuxcool.com 连续ping4次: [root@linuxcool ~]# ping -c 4 www.linuxcool.com 设置次数为4,时间间隔为3秒: [root@linuxcool ~]# ping -c 4 -i 3 www.linuxcool.com 利用ping命令获取指定网站的IP地址: [root@linuxcool ~]# ping -c 1 linuxcool.com | grep from | cut -d " " -f 4 220.181.57.216 LVM逻辑卷管理 物理卷管理 pvscan: 用于扫描系统中所有的物理卷 pvcreate: 用于将分区或整个硬盘转换成物理卷 pvdisplay: 用于显示物理卷的详情信息 pvremove: 用于将物理卷还原成普通分区或磁盘 卷组管理 vgscan: 用于扫描系统中已建立的LVM卷及相关信息 vgcreate: 用于将一个物理卷创建为一个卷组 vgdisplay: 用于显示系统中各卷组的详细信息 vgremove: 用于删除指定的卷组,卷组为参数 vgextend: 用于扩展卷组的磁盘空间 逻辑卷管理 lvscan: 用于扫描系统中已建立的逻辑卷及相关信息 lvcreate: 用于从指定的卷组中分割空间 格式:lvcreate -L 容量大小 -n 逻辑卷名卷组名 lvdisplay: 用于显示逻辑卷的详情信息 lvextend: 用于动态扩展逻辑卷空间 格式:lvextend -L +大小 /dev/卷组名/逻辑卷名 lvremove: 用于删除指定的逻辑卷 tar归档和释放和释放工具 -c: 创建.tar格式的包文件 -C: 解压时指定释放的目标文件夹 -f: 表示使用归档文件 -j: 调用bzip程序进行压缩或解压 -p: 打包时保留文件及目录的权限 -P: 打包时保留文件及目录的绝对路径 -t: 列表查看包内的文件 -v: 输出详情信息 -x: 解开.tar格式的包文件 -z: 调用gzip程序进行压缩或解压 格式:tar 选项 归档及压缩文件名 需要归档的源文件或目录 从归档文件中恢复数据 格式:tar 选项 归档及压缩文件名 -C 目标目录 Ls命令——列表显示目录内容 -l 以长格式显示文件和目录列表 -a 显示所有子目录和文件的信息,包括.或隐藏目录 -A 与-a选项的作用基本类似 -d 显示目录本身属性,而不是显示目录中的内容 -h 以人性化的方式显示目录或文件的大小 -R 以递归的方式显示目录及其子目录中的所有内容 --color 在字符模式中以颜色区分不同的文件 du命令——统计目录及文件的空间占用情况 du命令可用于统计指定目录 -a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 -h 以人性化的方式显示出统计结果 -s 只统计每个参数所占用的空间总的大小 wc命令——统计文件内容中的单词数量、行数等信息 -c 统计文件内容中的字节数 -l 统计文件内容中的行 -w 统计文件内容中的单词个数(以空格或制表位作为分隔) 空文件末行模式的操作 退出编辑器顺序:快捷键Esc : 命令 :w 对文件内容进行修改后保存 :w<目录下的文件> 将当前编辑的文件另存到某个目录下的文件 :q 退出编辑器 :q! 强行退出编辑器 :wq/:x 保存并退出 替换文件内容 :[替换范围] sub /旧的内容/新的内容[/g] sub 含义为替换,可用s简写 % 在整个文件内容中进行查找并替换 n,m 在指定行数的范围内的文件内容中进行查找并替换 参考案列 将文档中第5行~第15行中的initdefault字符替换为DEFAULT :5,15 s /initdefault/DEFAULT /g 将当前文件中所有的initdefault字符替换为bootdefault :% s /initdefault/bootdefault /g useradd命令——添加用户账户 Useradd命令用于添加用户账号 格式:useradd 选项 用户名 -u 指定用户的宿主目录位置 -e 指定用户的账户失效时间 -g 指定用户的基本组名 -G 指定用户的附加组名 -M 不建立宿主目录 -s 指定用户登录shell Passwd命令——为用户账号添加密码 -d 清空指定用户的密码,仅使用用户名即可登录 -l 锁定用户账号 -S 查看用户账号的状态 -u 解锁用户账号 usermod命令——修改用户账号属性 -u 修改用户UID号 -d 修改用户的宿主目录位置 -e 修改用户的账户失效时间,使用YYYY-MM-DD日期格式 -g 修改用户的基本组名 -G 修改用户的附加组名 -s 指定用户的登录shell -l 更改用户账号的登录名称 -L 锁定用户账户 -U 解锁用户账户 userdel命令——删除用户账号 格式:userdel 用户 chage用法详解:修改用户密码状态 格式:chage 选项 用户 l:列出用户的详细密码状态; -d 日期: 修改/etc/shadow 文件中指定用户密码信息的第 3 个字段,也就是最后一次修改密码的日期,格式为 YYYY-MM-DD; -m 天数: 修改密码最短保留的天数,也就是/etc/shadow 文件中的第 4 个字段; -M 天数: 修改密码的有效期,也就是 /etc/shadow 文件中的第 5 个字段; -W 天数: 修改密码到期前的警告天数,也就是 /etc/shadow 文件中的第 6 个字段; -i 天数: 修改密码过期后的宽限天数,也就是 /etc/shadow 文件中的第 7 个字段; -E 日期: 修改账号失效日期,格式为YYYY-MM-DD,也就是 /etc/shadow 文件中的第 8 个字段。 mkvcdfs命令 – 制作vcd文件 语法格式:mkvcdfs [参数] 常用参数: 文件名.mpg MPEG文件 参考实例 安装mkvcdfs命令工具包: [root@linuxcool ~]# apt-get install vcdtools mkvcdfs 将avi格式的视频文件转换成mkvcdfs命令识别的mpg文件: [root@linuxcool ~]# ffmpeg -i 1.avi -target vcd 1.mpg [root@linuxcool ~]# ffmpeg -i 2.avi -target vcd 2.mpg [root@linuxcool ~]# ffmpeg -i 3.avi -target vcd 3.mpg 把MPEG文件(video1.mpg~video3.mpg等3个文件)合并成2个文件: [root@linuxcool ~]# mkvcdfs 1.mpg 2.mpg 3.mpg Copying file vcd/20050208_1558_1.mpg Done with vcd/20050208_1558_1.mpg, got 4536 sectors Copying file vcd/20050208_1559_1.mpg Done with vcd/20050208_1559_1.mpg, got 4530 sectors sdiff命令 – 以并排方式合并文件之间的差异 语法格式:sdiff [参数] file1 file2 常用参数: -o file 互动式操作,并将结果写入到文件中 -i 忽略大小写的区别 -E 忽略由制表符宽度造成的差异 -b 忽略由空格数不同造成的差异 -W 忽略所有空白字符 -B 忽略任何因空行而造成的差异 -a 所有文件都以文本方式处理 -l 当有两行相同时只显示左栏的一行 -t 将输出中的tab 转换成空格 参考实例 比较二个文件的不同: [root@linuxcool ~]# sdiff -a file1 file2 忽略大小写的区别: [root@linuxcool ~]# sdiff -i file1 file2 忽略任何因空行而造成的差异: [root@linuxcool ~]# sdiff -B file1 file2 genisoimage命令 – 创建映像文件 genisoimage可将指定的目录与文件做成ISO 9660格式的映像文件,以供刻录光盘。 语法格式:genisoimage [参数] 常用参数: -r 使用Rock Ridge Extensions,并开放全部文件的读取权限 -J 使用Joliet格式的目录与文件名称 -o 指定映像文件的名称 -sysid 指定光盘的系统ID 参考实例 安装genisoimage: [root@linuxcool ~]# apt-get install genisoimage 将/home/test目录下的文件转换为光盘影像文件: [root@linuxcool ~]# genisoimage -o testfile.iso /home/test 显示帮助信息: [root@linuxcool ~]# genisoimage -help cdrdao命令 – 刻录影像到光盘 cdrdao命令用来刻录影像到光盘。用来向您的 CD-R或CD-RW写数据。 语法格式:cdrdao [参数] 常用参数: –scanbus 扫描光驱挂在哪个设备上面 –write 写入 --device 光驱位置 参考实例 扫描光驱挂在哪个设备上面: [root@linuxcool ~]# cdrdao scanbus 把bin文件写入光盘: [root@linuxcool ~]# cdrdao write --device ATA:1,1,0 vcd.toc 将CD复制到硬盘中以data.bin文件存放: [root@linuxcool ~]# cdrdao read -cd --device ATA:1,1,0 --buffers 64 --driver generic-mmc-raw --read-raw vcd.toc 为CD创建一个指定的内容目录表: [root@linuxcool ~]# cdrdao read -toc --device ATA:1,1,0 --buffers 64 --driver generic-mmc-raw --read-raw vcd.toc gedit命令 – GNOME桌面的文本编辑器 gedit命令是GNOME桌面环境的官方文本编辑器,尽管gedit旨在简化和易用,但它是功能强大的通用文本编辑器;它可以用来创建和编辑各种文本文件。 gedit具有灵活的插件系统,可用于向gedit本身动态添加新的高级功能。 语法格式:gedit [参数] 常用参数: --list-encodings 显示可使用的编码选项列表 --encoding=编码 设置打开命令行中列出的文件时使用的字符编码 --new-window 在已存在的gedit实例中新建一个最上层窗口 --new-document 在已存在的gedit 实例中新建一个文档 -w 以独占方式打开文件直到文件关闭 -s 以独立模式运行gedit 参考实例 显示可使用的编码选项列表: [root@linuxcool ~]# gedit --list-encodings 设置打开命令行中列出的文件时使用的字符编码: [root@linuxcool ~]# gedit --encoding=GB2312 在已存在的gedit实例中新建一个最上层窗口: [root@linuxcool ~]# gedit --new-window 以独立模式运行gedit: [root@linuxcool ~]# gedit -s view命令 – 可以调用vi的命令文本编辑器 view命令的作用是调用vi命令编辑文件,view命令只是一个连接到vi的文件,因此参数选项同vi命令。 view命令本质上是vim-R,同时view编辑器对vi设了只读标志。 语法格式: view [参数] 常用参数: -s 静默模式 — -cmd<命令> 加载任何vimrc文件之前执行指定命令 -R 只读模式 -v Vi模式 -e Ex模式 -y 简易模式 — — 之后只有文件名 -c<命令> 加载第一个文件之后执行指定命令 -s<脚本输入文件> 从指定脚本输入文件阅读普通模式命令 -w<脚本输出文件> 追加所有类型的命令写入脚本输出文件 -W<脚本输出文件> 写入所有类型的命令到指定脚本输出文件 + 从文件末尾开始 +<行数> 从指定行开始 — -noplugin 不要加载插件脚本 -p<数量> 打开指定数量的标签页(带文件名) -r<文件名> 恢复崩溃的会话 -L 等同于-r -r 列出交换文件并退出 -u -T<终端> 设置使用指定终端 -o<数量> 打开指定数量的窗口 -n 不使用交换文件,只用内存 -Z 受限模式 -m 不允许修改(写入) -b 二进制模式 -M 在文本中不允许修改 参考实例 编辑指定文件: [root@linuxcool ~]# view /linuxcool.log 从第二行开始编辑指定文件: [root@linuxcool ~]# view +2 /linuxcool.log 以只读模式打开指定文件: [root@linuxcool ~]# view -R /linuxcool.log red命令 – 指定文件编辑器 red命令的作用是可以通过读取指定文件进行编辑,red命令对输入文件的内容按行进行编辑,是行编辑器和文本编辑器。 red命令不仅可以在bash中使用,也可以在脚本文件中使用,red命令可以将整个文件的内容读入自己的缓冲区,对该副本执行指定的操作,并可选地将缓冲区写到磁盘。 注意,使用red命令编辑的时候是看不到文件内容的,一定要仔细检查输入的内容以保证其正确性,避免反复往返于编辑状态和命令行状态之间,那样会浪费大量的时间。 语法格式: red[参数] [文件] 常用参数: a 在文件的末尾添加新内容 i 在文件的最后一行之前插入新内容 o 把文件输入的最后一行替换成新内容 . 退出编辑文件模式进入命令行模式(并没有退出编辑器) w 保存文件 q 真正退出编辑器 -G 运行在兼容模式 -l 如果命令失败,使用0状态退出 -p<字符串> 使用指定字符串作为交互提示 -s 抑制诊断 -v 显示详细信息 参考实例 读取文件进行编辑: [root@linuxcool ~]# red linuxcool.txt 创建一个新文件保存并查看内容: [root@linuxcool ~]# red a Probably the best Linux command site . w linuxcool.txt 37 q [root@linuxcool ~]# cat linuxcool.txt Probably the best Linux command site 在文件的最后一行之前插入新内容: [root@linuxcool ~]# red linuxcool.txt 37 -i This is the inserted content text . w 71 q [root@linuxcool ~]# cat linuxcool.txt This is the inserted content text Probably the best Linux command site Which命令——查找用户所执行的命令文件或存放的目录 网卡配置信息:/etc/sysconfig/network-scripts/ifcfg-ens33 系统控制服务 控制脚本默认放在/usr/lib/systemd目录下 此工具可实现对指定服务的控制 格式:systemctl 控制类型 服务名称 Start(启动):运行指定的系统服务程序,实现服务功能 Stop(停止):终止指定的系统服务程序,关闭相应的功能 Restart(重启):先退出,再重新运行指定的系统服务程序 Reload(重载):不退出服务程序,只是刷新配置,在某些服务中与restart的操作相同 Status(查看状态):查看指定的系统服务的运行状态及相关信息 enable 开机自动启动 Disable 开机自动关闭 Is-enable 查看开机启动状态 Systemctl list-units --type=service 查看当前系统中所有已激活的服务 参考案列 启动未运行的postfix服务 [root@localhost ~]# systemctl start postfix.service 查看指定postfix服务的运行状态 [root@localhost ~]# systemctl status postfix.service ● postfix.service - Postfix Mail Transport Agent Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled) Active: active (running)since一 2021-12-06 17:18:09 CST; 2 weeks 6 days ago Main PID: 1663 (master) Tasks: 3 CGroup: /system.slice/postfix.service ├─ 1663 /usr/libexec/postfix/master -w ├─ 1686 qmgr -l -t unix -u └─11617 pickup -l -t unix -u mkfs命令--创建文件系统 格式:mkfs -t 文件类型 分区设备 选项: -t, --type=<类型> 文件系统类型;若不指定,将使用ext2 fs-options 实际文件系统构建程序的参数 <设备> 要使用设备的路径 <大小> 要使用设备上的块数 -V, --verbose 解释正在进行的操作; 多次指定-V将导致空运行(dry-run) -V, --version 显示版本信息并退出 将-V作为 --version 选项时必须是惟一选项 -h, --help 显示此帮助并退出 Ps命令——查看静态的进程统计消息 a 显示当前终端下的所有进程信息 u 使用以用户为主的格式输出进程关系 x 显示当前用户在所有终端下的进程信息 -e 显示系统内的所有进程信息 -l 使用长格式显示进程信息 -f 使用完整的格式显示进程信息 颜色下可结合使用,单独ps,不带任何选项,只查看当前用户打开的进程 静态查看进程 Ps -elf 动态查看top Top pgrep命令——查询进程信息 指定进程的一部分名称进行查询 -U 查询特定用户的进程 -t 查询在特定终端运行的进程 Pstree命令——查看进程树 结合 -p 使用时可以同事列出对应的PID号 -u 可以列出对应的用户名 -a 可以列出完整的命令信息 三选项结合在一起,可查看当前系统的进程树,包括对应的PID号