admin管理员组

文章数量:1597416

    开源软件简单来说就是可以不受限制的使用某个软件并且随意修改,甚至修改成自己的产品再发布出去。所以开源软件一般会将软件程序与源代码一起提供给用户,最热门的六种开源许可证包括:

    开源软件的特性:“使用自由”、“修改自由”、“重新发布自由”、“创建衍生品自由”。


    Linux是具有类似Unix的程序界面与操作方法且继续了其稳定性(通常运行几年都不会宕机)。



    红帽公司推出了阶梯式的认证体系也确实能够帮助读者检查自己的能力:



第1章    部署虚拟环境安装linux系统

    工具(Win环境下)

    VMworkstation

    RedHatEnterpriseLinux[RHEL]

    Hash——文件校验工具


    使用KVM安装系统(Linux环境下)

    KVM(Kernel Virtual Module)能够提供像Vmware一样的全虚拟化功能

    安装KVM之前我们要检查真实物理机是否支持虚拟化功能:

    [root@linuxprobe~]#grep vmx /proc/cpuinfo

    flags:fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase smeq

    inter处理器的虚拟技术标志为vmx

    AMD处理器的虚拟技术标志为svm

    安装KVM以及相关的依赖软件包:

    [root@linuxprobe~]#yum-y groupinstall"Virtualzation Host"

    [root@linuxprobe~]#yum-y groupinstall"Virtaulzation Host"

    Loaded plugins:langpacks,product-id,subscription-manager

    …………省略部分安装过程…………

    Complete!

    为了让KVM中虚拟机能够互相共享数据,还必须配置真实机的网络:

    让系统支持ipv4的转发功能:

    [root@linuxprobe~]#echo "net.ipv4.ip_forward=1">/etc/sysctl.d/99-ipforward.conf

    让转发功能立即生效:

    [root@linuxprobe~]#sysctl-p /etc/sysctl.d/99-ipforward.conf

        net.ipv4.ip_forward=1

    

    将网卡配置文件中的IP地址、子网掩码等信息注释后追加参数BRIDGE=virbr0(设置网卡为桥接模式):

    [root@linuxprobe~]#vim /etc/sysconfig/network-scripts/ifcfg-eno16777736

    DEVICE="eno16777736"

    ONBOOT=yes

    #IPADDR="192.168.10.10"

    #NETMASK="255.255.255.0"

    #GATEWAY="192.168.10.1"

    HWDDR=“网卡MAC地址”

    #DNS1="192.168.10.1"

    BRIDGE=virbr0

    创建用于桥接网卡的配置文件(与上面的配置文件很相似):

    [root@linuxprobe~]#vim /etc/sysconfig/network-scripts/ifcfg-virbr0

    DEVICE="virbr0"

    TYPE=BRIDGE

    ONBOOT=yes

    BOOTPROTO=stacic

    IPADDR="192.168.10.10"

    NETMASK="255.255.255.0"

    GATEWAY="192.168.10.1"

    DNS1="192.168.10.1"

    当KVM安装完成并将网卡配置妥当后请重启(reboot)后再进行下面的检查操作:

    检查kvm模块是否被加载以及能否正常的使用CPU虚拟化功能:

    [root@linuxprobe~]#lsmod | grep kvm

        kvm_intel 138567 0

        kvm 441119 1 kvm_intel

    检查桥接的网卡配置是否启用成功:

    [root@linuxprobe~]#ip virbrO

    link/ether 00:0c:29:9c:63:73 brd 192.168.10.255 scope global virbrO

    valid_lft forever preferred_lft forever

    inet6 fe80::20c:29ff:fe9c:6373/64 scope link

    valid_lft forever preferred_lft forever

    获取虚拟机列表(默认为空是正常的):

    [root@linuxprobe~]#virsh -c qemu://system list

    Id Name State


    [root@linuxprobe~]#virt-manager


    配置VNC服务程序

    VNC虚拟网络计算机(Virtual Network Computing)是一款由欧洲实验室AT&T研发的远程控制程序,VNC服务程序可以运行在类Unix计算机系统之上,拥有强大的远程控制能力,高效且实用。

    在红帽RHEL7系统中VNC的服务软件包叫做tigervnc-server:

    [root@linuxprobe~]#yum install tigervnc-server

    Loaded plugins:langpacks,product-id,subscription-manager

    …………省略部分安装过程…………

    Installing:

    tigervnc-server x86_64 1.2.80-0.30.20130314svn5065.el7 rhel7 199k

    …………省略部分安装过程…………

    complete!

    复制一份vnc服务程序的配置文件(文件名中的:3代表5903端口):

    [root@linuxprobe~]#cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:3.service

    编辑vnc服务的配置文件,将所有的修改为linuxprobe用户:

    [root@linuxprobe~]#vim /etc/sytemd/system/vncserver@:3service

    [Unit]

    Description=Remote desktop service(VNC)

    After=syslog.target network.target

    [Service]

    Type=forking

    # Clean any existing files in /tmp/.X11-unix environment

    ExecStartPre=/bin/sh-c '/usr/bin/vncserver -kill%i>/dev/null 2>&1 || :'

    ExecStart=/sbin/runuser -l<USER>-c "/usr/bin/vncserver %i"

    PIDFile=/home/<USER>/.vnc/%H%i.pid

    ExecStop=/bin/sh-c '/usr/bin/vncserver -kill %i> /dev/null 2>&1 ||:'

    [Install]

    WantedBy=multi-user.target

    配置防火墙规则:

    [root@linuxprobe~]#firewall-cmd --permanent --zone=public --add-port=5903/tcp

    success

    [root@linuxprobe~]#firewall-cmd --reload

    success

    使用linuxprobe用户设置连接密码:

    [linuxprobe@linuxprobe~]$ vncserver

    you will requtire a password to access your desktops.

    Password:此处输入连接密码

    Verify:此处再次输入密码

    New 'linuxprobe:1(linuxrprobe)'desktop is linuxprobe:1

    Creating default startup script /linuxprobe/.vnc/xstartup

    Starting applications specified in /linuxprobe/.vnc/xstartup

    Log file is /linuxprobe/.vnc/linuxprobe:1.log

    将vncserver服务程序启动并加入到开机启动项中:

    [root@linuxprobe~]#systemctl start vncserver@:3.service

    [root@linuxprobe~]systemctl enable vncserver@:3.service

    此时便可以使用vnc客户端工具连接啦。

    但是如果出现了这样的报错:

    xauth:(stdin):1: bad display name "linuxprobe:1" in "add" command

    代表您的主机名(hostname)不能被ping通,请执行这行命令:

    echo"127.0.0.1 linuxprobe" > /etc/hosts


重置root用户密码

    如果刚接手了一台Linux系统,请先确认这台系统是不是红帽RHEL 7系统再进行下面的操作:

    [root@linuxprobe~]#cat /etc/redhat-release

    Red Hat Enterprise Linux Server release 7.0(Maipo)

    第1步:开机后在内核上敲击“e”

    

    第2步,在linux16这行的后面输入“rd.break”并敲击“Ctrl+x”

    第3步:进入到了系统的紧急求救模式。

    第4步:依次输入以下命令

    mount -o remount.rw /sysroot

    chroot /sysroot

    echo "linuxprobe" | passwd --stdin root

    touch /.autorelabel

    exit

    reboot

    第5步,重启时会很慢,耐心等待即可



安装虚拟机增加包

    VMware Tools是VMware虚拟机中自带的增强工具包,用于增强虚拟机显卡与硬盘性能、同步虚拟机与主机时钟时间、最主要的是可以支持虚拟机与主机之间的文件拖拽传输。

    第1步:在虚拟软件中选择“安装/重新安装VMware tools(T)”:

    第2步:安装VMwareTools功能增加包(请用root用户登录系统):

    创建/media/cdrom目录:

    [root@linuxprobe~]#mkdir -p /media/cdrom

    将光驱设备挂载到该目录上:

    [root@linuxprobe~]#mount /dev/cdrom/media/cdrom

    进入到该挂载目录:

    [root@linuxprobe~]#cd /media/cdrom

    将功能增强包复制到/home目录中:

    [root@linuxprobe cdrom]#cp VMwareTools-9.9.0-2304977.tar.gz /home

    进入到/home目录中:

    [root@linuxprobe cdrom]# cd/home

    解压缩功能增强包:

    [root@linuxprobe home]#tar xzvf VMwareTools-9.9.0-2304977.tar.gz

    vmware-tools-distrib/

    vmware-tools-distrib/FILES

    vmware-tools-distrib/doc/

    vmware-tools-distrib/doc/open_source_licenses.txt

    vmware-tools-distrib/doc/INSTALL

    vmware-tools-distrib/doc/README

    vmware-tools-distrib/installer/

    vmware-tools-distrib/installer/services.sh

    vmware-tools-distrib/installer/guestproxy-ssl.conf

    vmware-tools-distrib/installer/thinprint.sh

    vmware-tools-distrib/installer/upstart-job.conf

    …………此处部分省略解压过程细节…………

    进入解压文件夹中:

    [root@linuxprobe home]#cd vmware-tools-distrib/

    运行安装脚本并加上参数-d,代表默认安装:

    [root@linuxprobe home]#cd vmware-tools-distrib/

    运行安装脚本加上参数-d,代表默认安装:

    [root@linuxprobe vmware-tools-distrib]# ./vmware-install.pl -d

    The installer has detected an existing installation of open-vm-tools on this system and will not attempt to remove and replace these user-space applications.It is recommended to use the open-vm-tools packages provided by the operating system.If you do not want to use the existing installation of open-vm-tools and attempt to install VMware Tools,you must uninstall the open-vm-tools packages and re-run this installer.

    The installer will next check if there are any missing kernel drivers.Type yes if you want to do this ,otherwise type no [yes]

        …………省略部分安装过程………………

    当您看到这个字样后,重启后即可正常使用VmwareTools啦。

    Creating a new initrd boot image for the kernel.

    Starting Virtual Printing daemon:done

    Starting vmware-tools(via systemctl): [OK]

    the configuration of VMware Tools 9.9.0 build-2304977 for linux for this

    running kernel completed successfully.

    Enjoy.

    --the VMware team

    第3步:重启系统后生效

    [root@linuxprobe~]#reboot


重要的守护进程

    当给一台主机安装上Linux系统后就可以工作l额——包括接受用户的输入/计算/存储/再将结果输出等等,这是都是系统服务帮助我们完成的。而有一些系统服务需要时刻等待用户的输入(如键盘进程)或随时响应用户的请求(如网站服务进程)等等。

    守护进程(Daemon)通常会随系统启动时激活并随系统关闭时停止,一直在系统后台默默为用户提供服务:

守护进程名称
用处
crond
计划任务
dhcpd
动态IP地址分配服务(DHCP)
httpd
网站服务
Ipd
打印服务器
named
域名解析服务(DNS)
nfs
文件共享服务(NFS)
smb
文件共享与打印服务(SAMBA)
syslog
系统日志
gpm
鼠标进程


红帽软件包管理器

    RPM原称为“Redhat Package Manager”。RPM会建立统一的数据库文件,详细的记录软件信息并能够自动分析依赖关系,颇有一些“软件控制面板”的感觉。

    安装软件:rpm -ivh filename.rpm

    升级软件:rpm -Uvh filename.rpm

    卸载软件:rpm -e filename.rpm

    查询软件的描述信息:rpm -qpi filesname.rpm

    列出软件的文件信息:rpm -qpl filename.rpm

    查询文件属于哪个RPM:rpm -qf filename

    虽然RPM能够帮助用户查询软件相关的依赖关系,但问题还是要自己解决,有些大型软件需要数十个依赖包也是不小的负担。


Yum软件仓库

    用户能够根据需求来指定Yum仓库与是否校验软件包,而这些只需要几条关键词即可完成,现在来学习下配置的方法,所有Yum仓库的配置文件均需以.repo结尾并存放在/etc/yum.repos.d/目录中的。

    [rhel-media]:yum源的名称,可自定义

    baseurl=file:///media/cdrom:提供方式包括FTP(ftp://...)、HTTP(http://...)、本地(file:///..)

    enable:1:设置此源是否可用,1为可用,0为禁用

    gpgcheck=1:设置此源是否校验文件,1为校验,0为不校验

    gpgkey:file://media/cdrom/RPM-GPG-KEY-redhat-release:若为校验请指定公钥文件地址。Yum仓库中的RPM软件包可以由红帽官方发布的,也可以是第三方组织发布的。


命令
作用
yum repolist all
列出所有仓库
yum list all
列出仓库中所有软件包
yum info 软件包名称
查看软件包信息
yum install 软件包名称
安装软件包
yum reinstall 软件包名称
重新安装软件包
yum update 软件包名称
升级软件包
yum remove 软件包
移除软件包
yum clean alla
清楚所有仓库缓存
yum check-update
检查可更新的软件包
yum grouplist
查看系统中已经安装的软件包组
yum groupinstall 软件包组
安装指定的软件包组
yum groupremove 软件包组
移除指定的软件包组
yum groupinfo 软件包组
查询指定的软件包组信息


第2章    新手必须掌握的Linux命令

2.1    强大好用的SHELL

    计算机硬件是由运算器控制器存储器输入/输出设备等设备组成的,而能够让机箱内各种设备各司其职就叫做——系统内核。内核负责驱动硬件管理活动分配/管理硬件资源,如此说来系统内核对计算机来讲可真的是太重要了,所以它不能让用户操作。

    因为用户不能直接控制硬件也不能直接操作内核,于是便需要基于“系统调用接口”开发出的程序/服务来满足用户日常工作了。

    “Shell”——也可称为“壳”,充当的是人与内核(硬件)的翻译官,用户将一些命令“告诉”Shell,它就会调用相应的程序服务执行工作。现在包括红帽系统在内的许多热门Linux系统主流默认字符Shell是Bash(Bourme-Again Shell)

    Bash作为大多数Linux系统的默认字符解释器,其优势:

    1、默认保存历史命令(可用上下键翻看)

    2、命令仅需输入前几位就可以用tab键补全

    3、强大的批处理脚本

    4、实用的环境变量


执行命令与查看帮助

    命令名称 【命令参数】 【命令对象】

    注:命令名称、命令参数、命令对象之间请用空格键分隔。

    比较好理解的是命令对象,命令对象一般是指要处理的目标(普通文件/目录文件/用户等等),而命令参数对于新手来讲比较麻烦,因为这个值会随命令的不同和环境情况的不同而异,所以在参数选择搭配上需要长时间的经验积累才可以。

    命令的参数可以选用长格式(完整的选项名称)也可选用短格式(单个字母的缩写),分别用“—”与“-”做前缀。

    长格式如:man -help

    短格式如:man -h

    当遇到了一个陌生命令后如何知道它有那些可用的参数?这时就可以用man命令了。

    

    man命令的可用帮助文档分类有:

    

代码
代表内容
1
普通的命令
2
内核调用的函数与工具
3
常见的函数与函数库
4
设备文件的说明
5
配置文件
6
游戏
7
惯例和协议
8
管理员可用的命令
9
内核相关的文件
结构名称
代表意义
NAME
命令的名称
SYNOPSYS
参数的大致使用方法
DESCRIPTION
介绍说明
EXAMPLES
演示(附带简单说明)
OVERVIEW
概述
DEFAULTS
默认的功能
OPTIONS
具体的可用选项(带介绍)
ENVIRONMENT
环境变量
FILES
用到的文件
SEE ALSO
相关的资料
HISTORY
维护历史与联系方式


常用系统工作命令

    echo命令用于在终端显示字符串或变量,格式为:“echo [字符串 | 变量]”

    将echo命令的字符串输出到终端:

    [root@linuxprobe~]#echo Linuxprobe

    Linuxprobe.Com

    用echo命令查看SHELL变量的值(前面有$符号):

    [root@linuxprobe~]#echo $SHELL

    /bin/bash


    查看本机主机名:

    [root@linuxprobe~]#echo $HOSTNAME

    Linuxprobe

   

    date命令用于显示/设置系统的时间或日期,格式为:“date[选项][+指定的格式]”

   

    reboot命令用于重启系统(仅root用户可以使用),格式为:“reboot”


    wget命令用于使用命令行下载网络文件,格式为:“wget [参数] 下载地址”

参数
作用
-b
后台下载模式
-O
下载到指定目录
-t
最大尝试次数
-c
断点续传
-p
下载页面内所有资源,包括图片、视频等
-r
递归下载


    elinks用于实现一个纯文本界面的浏览器,格式为:“elinks[参数] 网址”


系统状态检测命令

    ifconfig用于获取网卡配置与网络状态等信息:格式为“ifconfig [网络设备] [参数]”


    uname命令用于查看系统内核版本等信息,格式为:“uname [-a]”


    uptime命令用于查看系统的负载情况,格式为: uptime

    “watch -n 1 uptime”来每秒刷新一次获得当前的系统负载情况,输出内容分别为系统当前时间、系统已运行时间\当前在线用户以及平均负载值。而平均负载值分为最近1分钟、5分钟、15分钟的系统负载情况,负载值越低越好(小于1是正常)。


    free命令用于显示当前系统内存的使用量情况,格式为:“free [-m/g]”


    who命令用于查看当前登入主机的用户情况,格式为:“who [参数]”


    last命令用于查看所有系统的登入情况,格式为:“last [参数]”


    history命令用于显示历史执行过的命令,格式为:“history [-c]”


工作名目录切换命令

     pwd命令用于显示当前的工作目录,格式为:“pwd [选项]”

    

参数
作用
-P
显示真实路径。(即非快捷链接的地址)


    cd命令用于切换工作路径,格式为:“cd [目录名称]”

参数
作用
-
切换到上一次的目录,如“cd -”
~
切换到“家目录”,如“cd ~teak”
~username
切换到其他用户的家目录,如“cd ~teak”
..
切换到上级目录,如“cd..”


    ls命令用于查看目录中有哪些文件,格式为:“ls [选项] [文件]”

参数
作用
-a
查看全部文件(包括隐藏文件)
-d
仅看目录本身
-h
易读的文件容量(如k,m,g)
-l
显示文件的详细信息


    cat命令用于查看纯文本文件(较短的),格式为:“cat [选项] [文件]”。   

参数
作用
-n
显示行号
-b
显示行号(不包括空行)
-A
显示出“不可见”的符号,如空格,tab键等等


    more命令用于查看纯文本文件(较长的),格式为:“more [选项] 文件”

参数
作用
-数字
预先显示的行数(默认为一页)
-d
显示提示语句与报错信息


    head命令用于查看纯文本文档的前N行,格式为:“head [选项] [文件]”

参数
作用
-n 10
显示10行
-n -10
正常输出(如cat命令),但不显示最后的10行


    tail命令用于查看纯文本文档的后N行,格式为:“tail [选项] [文件]”

参数
作用
-n 10
显示后面的10行
-f
持续刷新显示的内容


    od命令用于对查看特殊格式的文件,格式为:“od [选项] [文件]”


    tr命令用于转换文本文件中的字符,格式为:“tr [原始字符] [目标字符]”

    将tr.txt文件的内容转换成大写(注意到命令中间的|了吗?这个叫做管道命令符)

    [root@linuxprobe~]cat tr.txt | tr [a-z] [A-Z]


    wc命令用于统计指定文本的行数、字数、字节数,格式为“wc[参数] 文本”

参数
作用
-l
只显示行数
-w
只显示单词数
-c
只显示字节数


    cut命令用于通过列来提取文本字符,格式为:“cut [参数] 文本”

参数
作用
-d 分隔符
指定分隔符,默认为Tab
-f
指定显示的列数
-c
单位改为字符


    diff命令用于比较多个文本文件的差异,格式为:“diff [参数] 文件”

参数
命令
-b
忽略空格引起的差异
-B
忽略空行引起的差异
--brief或-q
仅报告是否存在差异
-c
使用上下文输出格式


文件目录管理命令

    touch命令用于创建空白文件与修改文件时间,格式为:“touch [选项] [文件]”

    对于在Linux中的文件有三种时间:

    更改时间(mitme):内容修改时间(不包括权限)

    更改权限(ctime):更改权限与属性的时间

    读取时间(atime):读取文件内容的时间

    如果***执行了touch -d "2 days ago" test,便将访问与修改时间修改为了2天前(伪造了自己没有动过该文件的假象)

参数
作用
-a
近修改“访问时间”
-m
近修改“更改时间”
-d
同时修改atime与mtime
-t
要修改成的时间[YYMMDDhhmm]


    mkdir用于创建空白的文件夹,格式为:“mkdir [选项] 目录”

    创建文件夹:

    [root@linuxprobe~]#mkdir 文件夹名

参数
作用
-m=MODE
默认的文件目录权限,如“-m 755”
-p
连续创建多层目录(若文件夹已存在则忽略)
-v
显示创建的过程


    cp命令用于复制文件或目录,格式为:“cp [选项] 源文件 目标文件”

    复制命令的三种情况:

    目标文件是一个目录,会将源文件复制到该目录中

    目标文件是一个文件,会将源文件覆盖该文件

    目标文件不存在,将会复制源文件并修改为目标文件的名称(重命名)

参数
作用
-p
保留原始文件的属性
-d
若对象为“链接文件”,则保留该“链接文件的属性”
-r
递归持续复制(用于目录)
-i
若目标文件存在则询问是否覆盖
-a
相当于-pdr(p,d,r为上述的参数)


    mv命令用于移动文件或改名,格式为:“mv [选项] 文件名 [目标路径|目标文件名]”

    

    rm命令用于删除文件或目录,格式为:“rm [选项] 文件”

    删除普通文件并提示确认信息:“rm 文件名”

    删除普通文件或目录文件,不提示:“rm -rf 文件或目录名”

参数
作用
-f
忽略警告信息
-i
删除前先询问
-r
删除文件夹

    Linux系统中还有一个rmdir命令,它不同于rm-rf命令会删除一切,而是仅删除空目录,遇到目录内有文件则报错。


    dd命令用于指定大小的拷贝的文件或指定转换文件,格式为:“dd [参数]”

参数
作用
if
输入的文件名称
of
输出的文件名称
bs
设置每个“块”的大小
count
设置要拷贝“块”的个数
conv=ucase
将字母从小写转换为大写
conv=lcase
把字符从大写转换为小写


用户与组管理命令

    useradd命令用于创建新的用户,格式为:“useradd [选项] 用户名”

参数
作用
-d
指定用户的家目录(默认为/home/username)
-D
展示默认值
-e
帐号有效截止日期,格式:YYYY-MM-DD
-g
指定一个初始用户组(必须已存在)
-G
指定一个或多个扩展用户组
-N
不创建与用户同名的用户组
-s
指定默认的SHell
-u
指定用户的UID


    passwd命令用于修改用户的密码,格式为:“passwd [选项] [用户名]”

    修改当前用户的密码:“passwd”

    修改其他用户的密码:“passwd 其他用户名”

参数
作用
-l
锁定用户禁止其登录
-u
解除锁定,允许用户登录
--stdin
允许从标准输入修改用户密码,如(echo"NewPassWord" | Passwd -stdin Username)
-d
使帐号无密码
-e
强制用户下次登陆时修改密码
-S
显示用户的密码状态


    userdel命令用于删除用户所有表格,格式为:“userdel [选项] 用户名”

    

参数
作用
-f
强制删除用户,家目录与其相关文件
-r
同时删除用户,家目录与其相关文件

    

    usermod命令用于修改用户的属性,格式为:“usermod [选项] 用户名”

    

参数
作用
-c
填写帐号的备注信息
-d -m
-m与-d连用,可重新指定用户的家目录并自动旧的数据转移过去
-e
账户到期时间,格式“YYYY-MM-DD”
-g
变更所属用户组
-G
变更扩展用户组
-L
锁定用户禁止其登录系统
-U
解锁用户,允许其登录系统
-s
变更默认终端
-u
修改用户的UID

    groupadd命令用户创建群组,格式为:“groupadd [选项] 群组名”


打包压缩文件命令

    tar命令用于对文件打包压缩或解压,格式为:“tar [选项] [文件]”

    打包并压缩文件:“tar -czvf 压缩包名.tar.gz 文件名”

    解压并展开压缩包:“tar -xzvf 压缩包名.tar.gz”

参数
作用
-c
创建压缩文件
-x
解开压缩文件
-t
查看压缩包内有哪些文件
-z
用Gzip压缩或解压
-j
用bzip2压缩或解压
-v
显示压缩或解压的过程
-f
目标文件名
-p
保留原始的权限与属性
-P
使用绝对路径来压缩
-C
指定解压到目录

  

文件查询搜索命令

    grep命令用于对文本进行搜索,格式为:“grep [选项][文件]”

参数
作用
-b
将可执行文件(binary)当作文本文件(text)来搜索
-c
仅显示找到的次数
-i
忽略大小写
-n
显示行号
-v
反向选择——仅列出没有“关键词”的行

   

    find命令用于查找文件,格式为:“find [查找路径] 寻找条件 操作”

    这里需要注意下find命令非常灵活导致参数非常复杂,这里不要求大家记住,用时来查即可。

    对于常用搜索路径有几个小窍门:“~”代表


第3章    管道符、重定向与环境变量

3.1 管道命令符

    管道命令符“|”的作用是将前一个命令的标准输出当作后台后一个命令的标准输入,格式为“命令A|命令B”。

    例如前面章节学习的grep命令(文本搜索命令),通过匹配关键词“/sbin/nologin”找出了所有被限制登陆系统的用户,如果我们希望统计所有不允许登陆系统的用户个数,该做么做那(仅可使用1条命令)?

    首先理清思路:

    找出被限制登录用户的命令是:grep "/sbin/nologin" /etc/passwd

    统计文本行数的命令则是:wc -l

    现在要做的是就是搜索命令的输出值传递给统计命令,其实只要把管道符夹在中间就可以了。

    [root@linuxprobe ~]# grep "/sbin/nologin" /etc/passwd | wc -l

    33

    不要误解管道命令符只能用一次,完全可以这样用:“命令A|命里B|命令C”。


    对于输出重定向符有这些情况:

    

符号
作用
命令>文件
将标准输出重定向到一个文件中(清空原有文件的数据)
命令>文件2将错误输出重定向到一个文件中(清空原有文件的数据)
命令>>文件
将标准输出重定向到一个文件中(追加到原有内容的后面)
命令2>>文件
将错误准输出重定向到一个文件中(追加到原有内容的后面)
命令>>文件2>$1
将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)


转载于:https://blog.51cto/rainy0426/1968089

本文标签: 就该Linux