zoukankan      html  css  js  c++  java
  • 操作系统-Linux命令

     

    一、目录结构

    #因为根目录与开机有关,开机过程中仅有根目录会被挂载, 因此根目录下与开机过程有关的目录(以下5个),不能与根目录放到不同的分区去。

    /etc:配置文件

    /dev:所需要的装置文件

    /lib:执行档所需的函式库与核心所需的模块

    /bin:重要执行档

    /sbin:重要的系统执行文件

     

    /usr #(Unix Software Resource)与软件安装/执行有关

    /var#(variable)在系统运作后才会渐渐占用硬盘容量的目录

    /opt #放置第三方软件的目录

    /home#使用者home目录

    /root#系统管理员的home目录

    /boot#放置开机会使用到的档案

    /srv #service,服务启动后需要访问的数据目录 

    /media #媒体

    /tmp #存放临时文件目录

    /mnt#用来暂时挂载某些额外的装置

    /lost+found #当档案系统发生错误时,将一些遗失的片段放置到这个目录下

    /proc#是一个虚拟文件系统,

    /sys#是一个虚拟的档案系统

    /run #系统运行时所需文件

    /lastore#支持Android应用和网页应用正常运行

    /swapfile#内存交换文件

    /vmlinuz#指的是内核,作用:进程管理、内存管理、文件管理、驱动管理、网络管理。/initrd.img是一个小的映象,放的是和启动相关的驱动模块。

     

    cd /#进入根目录

    cd ~#进入用户在该系统的home目录,如nuib用户,则进入/root/niub/目录

     

     

    二、常用命令

     

    1. 关机重启

    sync 内存中数据写入磁盘

    shutdown -r now rebot#立即重启

    shutdown -h now

    shutdown -h 20:00

    shutdown -h +10#10分钟后关机

    shutdown -c#取消关机

     

     

    2. 系统信息

    who am i :查看当前使用的终端

    who  w : 查看所有终端

    uname -m :显示机器的处理器架构(如x86_64

    cat /proc/version :查看linux版本信息

    uname -r :显示正在使用的内核版本

    lsb_release -a :查看系统发行版本(如CentOS7

    rpm -qa | grep kernel-devel :查看kernel-devel版本(安装软件时编译内核用,故需要保持内核版本一致性)

    yum install -y "kernel-devel-uname-r == $(uname -r)":安装和Linux内核版本匹配的kernel-devel

    date :显示系统日期 (date +%Y/%m/%d : 显示效果如2018/01/01

    date 070314592018.00 :设置时间(格式为月日时分年.秒 )

    clock -w :将时间修改保存到 BIOS

    cal 2018 :显示2018年的日历表

    clear :清空命令行

    ifconfig :显示或设置网卡(查ip等)(类似windowsipconfig

    ping -c 3 www.baidu.com :测试百度与本机的连接情况( -c 3表示测试3次)

    cat /proc/cpuinfo :显示CPU的信息

    cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l :查看物理CPU个数

    cat /proc/cpuinfo| grep "cpu cores"| uniq :查看每个物理CPU的核数

    cat /proc/cpuinfo| grep "processor"| wc -l :查看逻辑CPU个数即线程数

     

     

    3. 系统性能

    top :动态实时显示cpu、内存、进程等使用情况(类似windows下的任务管理器)

    top -d 2 -p 7427 -d为画面更新的秒数,默认5秒,-p为指定进程pid的信息

    vmstat 2 10 :每隔2秒采集一次服务器状态,采集10次(查看内存、io读写状态、cpu

    free -h :查看系统内存及虚拟内存使用情况

    df -h :显示磁盘的空间使用情况

    iostat :可查io读写、cpu使用情况

    sar -u 3 5 :查看cpu使用情况(3秒一次,共5次)

    sar -d 2 3 :评估磁盘性能

    ps aux|grep firefox :获取火狐的进程号(PID)(可查看进程占用cpu、内存百分比及进程触发指令的路径)

    kill -9 进程号 :强制杀死进程

    systemctl :查看正在运行的服务

    grep [java]:搜索java

     

    4. 文件和目录

    #查看目录

    cd#切换工作目录

    pwd #显示工作路径

    ls#列出文件

    ls -a#列出文件下所有文件,包含隐藏文件

    ls -lh#列出文件的详细信息

    file 文件或目录#显示文件或目录的类型

    #创建-删除-移动-复制-创建连接

    mkdir目录#创建目录

    touch 文件#创建文件

     

    rm 文件#删除文件

    rm -r 目录或文件#删除目录

    rm -rf 目录或文件#强制删除文件或目录

     

    mv file1 file2 #移动或重命名一个文件或目录

    mv -t dir1 file1 file2#file1file2(多个文件)移动到dir1

    cp file1/dir1 dir2#file1dir1复制到dir2

     

    ln -s /opt/a.txt /opt/git/ :对文件创建软链接(快捷方式不改名还是a.txt

    ln -s /opt/a.txt /opt/git/b :(快捷方式改名为b)(下面的一样可以改名)

    ln -s /opt/mulu /opt/git/ :对目录创建软链接

    ln /opt/a.txt /opt/git/ :对文件创建硬链接

     

    5. 文件查找

    locate a.txt :在系统全局范围内查找文件名包含a.txt字样的文件(比find快);

    find /home -mtime -2 :在/home下查最近2*24小时内改动过的文件

    find . -size +100M :在当前目录及子目录下查找大于100M的文件

    find . -type f f表示文件类型为普通文件(b/d/c/p/l/f 分别为块设备、目录、字符设备、管道、符号链接、普通文件)

    find . -mtime +2 -exec rm {} ; :查出更改时间在2*24小时以前的文件并删除它**

    find . -name '*.log' -exec grep -i hello {} ; -print :在当前目录及子目录下查出文件名后缀为.log的文件并且该文件内容包含了hello字样并打印,-exec 命令 {} 表示对查出文件操作,-i表示不区分大小写;

    find . -name '*.log'|grep hello :在当前目录及子目录下查出文件名后缀为.log的文件并且文件名包含了hello字样(grep用来处理字符串);

    grep -i 'HELLO' . -r -n :在当前目录及子目录下查找文件内容中包含hello的文件并显示文件路径(-i表示忽略大小写)

    which java :在环境变量$PATH设置的目录里查找符合条件的文件,并显示路径(查询运行文件所在路径)

    whereis java :查看安装的软件的所有的文件路径(whereis 只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令)

     

    6. 查看文件的内容

    cat [-n] 文件名 :显示文件内容,连行号一起显示

    less 文件名 :一页一页的显示文件内容(搜索翻页同man命令)

    head [-n] 文件名 :显示文件头n行内容,n指定显示多少行

    tail [-nf] 文件名:显示文件尾几行内容,n指定显示多少行,f用于实时追踪文件的所有更新,常用于查阅正在改变的日志文件(如tail -f -n 3 a.log 表示开始显示最后3行,并在文件更新时实时追加显示,没有-n默认10行)

    sed -n '2,$p' ab :显示第二行到最后一行;

    sed -n '/搜索的关键词/p' a.txt :显示包括关键词所在行

    cat filename |grep abc -A10 :查看filename中含有abc所在行后10行(A10)、前10行(B10)内容

    less a.txt|grep git :显示关键词所在行,管道符”|”它只能处理由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后传递给下一个命令,作为标准的输入;

    cat /etc/passwd |awk -F ':' '{print $1}' :显示第一列

     

    7. 文本处理

    ls -l>file :输出重定向>(改变原来系统命令的默认执行方式):ls -l命令结果输出到file文件中,若存在,则覆盖

    cat file1 >>file :输出重定向之cat命令结果输出追加到file文件(>表示覆盖原文件内容,>>表示追加内容)

    ls fileno 2>file 2>表示重定向标准错误输出(文件不存在,报错信息保存至file文件);

    cowsay <a.txt :重定向标准输入命令<文件表示将文件做为命令的输入(为从文件读数据作为输入)

    sed -i '4,$d' a.txt :删除第四行到最后一行($表示最后一行)(sed可以增删改查文件内容)

    sed -i '$a 增加的字符串' a.txt :在最后一行的下一行增加字符串

    sed -i 's/old/new/g' a.txt :替换字符串;格式为sed 's/要替换的字符串/新的字符串/g' 修改的文件

    vim 文件:编辑查看文件(同vi

     

    8.用户权限

    useradd 用户名 :创建用户

    userdel -r 用户名 :删除用户:(-r表示把用户的主目录一起删除)

    usermod -g 组名 用户名 :修改用户的组

    usermod -aG 组名 用户名 :将用户添加到组

    groups test :查看test用户所在的组

    cat /etc/group |grep test :查看test用户详情:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

    passwd [ludf] 用户名 :用户改自己密码,不需要输入用户名,选项-d:指定空口令,-l:禁用某用户,-u解禁某用户,-f:强迫用户下次登录时修改口令

    groupadd 组名 :创建用户组

    groupdel 用户组 :删除组

    groupmod -n 新组名 旧组名 :修改用户组名字

    su - 用户名:完整的切换到一个用户环境(相当于登录)(建议用这个)(退出用户:exit

    su 用户名 :切换到用户的身份(环境变量等没变,导致很多命令要加上绝对路径才能执行)

    sudo 命令 :以root的身份执行命令(输入用户自己的密码,而su为输入要切换用户的密码,普通用户需设置/etc/sudoers才可用sudo

     

    9.磁盘管理

    df -h :显示磁盘的空间使用情况 及挂载点

    df -h /var/log :(显示log所在分区(挂载点)、目录所在磁盘及可用的磁盘容量)

    du -sm /var/log/* | sort -rn : 根据占用磁盘空间大小排序(MB)某目录下文件和目录大小

    fdisk -l :查所有分区及总容量,加/dev/sda为查硬盘a的分区)

    fdisk /dev/sdb :对硬盘sdb进行分区

    mount /dev/sda1 /mnt :硬盘sda1挂载到/mnt目录(mount 装置文件名 挂载点)

    mount -t cifs -o username=luolanguo,password=win用户账号密码,vers=3.0 //10.2.1.178/G /mnt/usb :远程linux 共享挂载windowsU,GU盘共享名,需设置U盘共享

    mount -o loop /opt/soft/CentOS-7-x86_64-DVD-1708.iso /media/CentOS :挂载iso文件

    umount /dev/sda1 :取消挂载(umount 装置文件名或挂载点)

     

    10压缩 解压 打包备份

    单纯tar仅为打包(多个文件包成一个大文件),加上参数-j(bzip2格式.bz2)-zgzip格式.gz)可以备份、压缩(-c)、解压(-x),备份一般比压缩多加参数-p(保留原本文件的权限与属性),-C可以指定解压到特定目录;bzip2gzip只能对单一文件压缩;

    file 文件名 :查文件类型(可看是用哪一种方式压缩的)

    tar -zxvf a.tar.gz -C ./test :解压tar.gz到当前目录下的test目录

    tar -zcvf /opt/c.tar.gz ./a/ :压缩tar.gz(把当前目录下的a目录及目录下所有文件压缩为 /opt/目录下的c.tar.gz,这样tar -zxvf c.tar.gz解压出来带有目录a

    tar -jxvf a.tar.bz2 :解压tar.bz2(到当前目录)

    tar -jcvf c.tar.bz2 ./a/ :压缩tar.bz2(把当前目录下的a目录及目录下所有文件压缩到当前目录下为c.tar.gz2

    unzip a.zip :解压zip(到当前目录)

    unzip -o mdmtest.war -d /opt/mdm :推荐使用unzip解压war包(-o覆盖原有文件,-d指定文件解压后存储的目录)

    zip -r c.zip ./a/ :压缩zip(把当前目录下的a目录及目录下所有文件压缩到当前目录下为c.zip

    bzip2 -k file1 : 压缩一个 'file1' 的文件(-k表示保留源文件)(bzip2格式,比gzip好)

    bzip2 -d -k file1.bz2 : 解压一个叫做 'file1.bz2'的文件

    gzip file1 : 压缩一个叫做 'file1'的文件(gzip格式)(不能保留源文件)

    gzip -9 file1 : 最大程度压缩

    gzip -d file1.gz : 解压缩一个叫做 'file1'的文件

    11软件安装

    尽量用yum源(apt-get)安装,不行就rpmdeb包安装,能不手动编译的就不要手动编译;

    dpkg只能安装已经下载到本地机器上的deb. apt-get能在线下载并安装deb,能更新系统,且还能自动处理包与包之间的依赖问题,这个是dpkg工具所不具备的;

    rpm 只能安装已经下载到本地机器上的rpm . yum能在线下载并安装rpm,能更新系统,且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的;

    yumrpm安装文件分布在/usrbinlibshare不同目录,不用配置PATH,直接用命令,但可用命令卸载更新;

    手动编译软件,默认位置为/usr/local下不同子目录下,不用配置PATH直接用命令(手动指定安装路径需要加PATH),使得软件更新和删除变得很麻烦。编译安装的软件没有卸载命令,卸载就是把所有这个软件的文件删除。

    二进制(Binaries)

    yum安装

    在线下载并安装rpm包,适用于CentOSFedoraRedHat及类似系统

    yum install epel-releas :安装第三方yumEPEL(企业版 Linux 附加软件包的简称)

    yum repolist enabled :显示可用的源仓库(/etc/yum.repos.d/目录下配置)

    yum install yum-fastestmirror :自动选择最快的yum

    yum list installed |grep java :列出已安装的软件(查看已安装的JDK

    yum remove java-1.8.0-openjdk.x86_64 :卸载软件(卸载JDK

    yum list java* :列出已安装和可安装的软件(查看yum库中的JDK包)

    yum install [-y] java-1.8.0-openjdk :安装软件JDK(-y自动安装)(推荐这种方式安装)

    yum install docker-ce-18.03.1.ce :安装指定版本的软件(已知docker-ce.x86_64 18.03.1.ce-1.el7.centos,则rpm包名为docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm

    yum check-update [kernel] :列出所有可更新的软件(检查更新kernel

    yum update tomcat :更新软件(可所有)

    rpm -ql 软件名称 :查询yum安装路径(软件名称可通过rpm -qa|grep java

    yum info kernel :查看软件(kernel)的信息

    yum clean all :(清除缓存,使最新的yum配置生效)

    rpm包手动下载安装

    ​ yum中没有时用,适用于CentOSFedoraRedHat及类似系统;

    wget -P /opt https://网址 :下载到/opt目录

    rpm -ivh wps-office-版本.x86_64.rpm :安装rpm包(包要先下载)(要先装依赖包)

    rpm -e wps-office :卸载软件(注意不要软件名不要版本号)

    rpm -qa |grep wps :查看安装的rpm

    rpm -ql 软件名称 :查看rpm包安装路径(软件名称可通过rpm -qa|grep java

    apt方式安装

    安装deb包,类似yum安装,适用于Debian, Ubuntu 以及类似系统;

    apt-get install aptitude :安装aptitude工具,实现依赖自动安装,依赖版本自动降级或升级

    aptitude install 软件 :安装软件(推荐这种方式安装)

    apt-cache search 软件 :搜索软件

    apt-get install 软件 :安装软件

    apt-get purge 软件 :卸载软件(包括配置文件,只删除软件purge换成remove

    apt-get upgrade :更新所有已安装的软件包

    apt-get update :升级列表中的软件包

    apt-get clean :从下载的软件包中清理缓存


    deb包安装

    适用于Debian, Ubuntu 以及类似系统;

    dpkg -i package.deb :安装一个 deb

    dpkg -r package_name :从系统删除一个 deb

    dpkg -l |grep chrome :查询系统中所有已经安装的 deb

    dpkg -L 软件名称 :查软件安装的文件

     

    解压即用

    大多数非开源的商业软件都采取这种办法;

    二进制(Binaries)包如apache-jmeter-3.3.tgz,下载复制解压到/opt,然后然后将该软件的 bin 目录加入到 PATH 中即可(vim /etc/profile export PATH=$PATH:/opt/apache-jmeter-3.3/bin);

    软件自己的模块/包管理器

    python:系统的源中不可能包含该软件的所有模块; 系统的源中该软件的模块的更新要远远滞后于最新版本;手动安装python,并用Python 自带的 pip 安装模块(类似yum);

    pip install redis :安装python软件包redis

    pip unstall redis :卸载

    pip show --files redis :pip查看已安装的包

    pip list --outdated :检查更新

     

    源代码(Source)

    编译安装

    源代码包(一般有install文件)如hello-2.2.tar.bz2,下载复制到/opt;

    tar -jxvf hello-2.2.tar.bz2 :解压

    ./configure --prefix=/opt/软件目录名称 :为编译做好准备,加上 prefix 手动指定安装路径

    make :编译

    make install :安装

    make clean :删除安装时产生的临时文件

    vim /etc/profile export PATH=$PATH:/opt/目录/bin :手动指定安装路径需要加path

    hello :执行软件:看INSTALLREADME文件(是否源码包、如何安装、执行都看这两个)

    rm -rf 软件目录名称 :卸载软件

     

     

     

     

     

    Linux命令

    一、目录结构

    #因为根目录与开机有关,开机过程中仅有根目录会被挂载, 因此根目录下与开机过程有关的目录(以下5个),不能与根目录放到不同的分区去。

    /etc:配置文件

    /dev:所需要的装置文件

    /lib:执行档所需的函式库与核心所需的模块

    /bin:重要执行档

    /sbin:重要的系统执行文件

     

    /usr #(Unix Software Resource)与软件安装/执行有关

    /var#(variable)在系统运作后才会渐渐占用硬盘容量的目录

    /opt #放置第三方软件的目录

    /home#使用者home目录

    /root#系统管理员的home目录

    /boot#放置开机会使用到的档案

    /srv #service,服务启动后需要访问的数据目录 

    /media #媒体

    /tmp #存放临时文件目录

    /mnt#用来暂时挂载某些额外的装置

    /lost+found #当档案系统发生错误时,将一些遗失的片段放置到这个目录下

    /proc#是一个虚拟文件系统,

    /sys#是一个虚拟的档案系统

    /run #系统运行时所需文件

    /lastore#支持Android应用和网页应用正常运行

    /swapfile#内存交换文件

    /vmlinuz#指的是内核,作用:进程管理、内存管理、文件管理、驱动管理、网络管理。/initrd.img是一个小的映象,放的是和启动相关的驱动模块。

     

    cd /#进入根目录

    cd ~#进入用户在该系统的home目录,如nuib用户,则进入/root/niub/目录

    二、常用命令

    1. 关机重启

    sync 内存中数据写入磁盘

    shutdown -r now rebot#立即重启

    shutdown -h now

    shutdown -h 20:00

    shutdown -h +10#10分钟后关机

    shutdown -c#取消关机

     

    2. 系统信息

    who am i :查看当前使用的终端

    who  w : 查看所有终端

    uname -m :显示机器的处理器架构(如x86_64

    cat /proc/version :查看linux版本信息

    uname -r :显示正在使用的内核版本

    lsb_release -a :查看系统发行版本(如CentOS7

    rpm -qa | grep kernel-devel :查看kernel-devel版本(安装软件时编译内核用,故需要保持内核版本一致性)

    yum install -y "kernel-devel-uname-r == $(uname -r)":安装和Linux内核版本匹配的kernel-devel

    date :显示系统日期 (date +%Y/%m/%d : 显示效果如2018/01/01

    date 070314592018.00 :设置时间(格式为月日时分年.秒 )

    clock -w :将时间修改保存到 BIOS

    cal 2018 :显示2018年的日历表

    clear :清空命令行

    ifconfig :显示或设置网卡(查ip等)(类似windowsipconfig

    ping -c 3 www.baidu.com :测试百度与本机的连接情况( -c 3表示测试3次)

    cat /proc/cpuinfo :显示CPU的信息

    cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l :查看物理CPU个数

    cat /proc/cpuinfo| grep "cpu cores"| uniq :查看每个物理CPU的核数

    cat /proc/cpuinfo| grep "processor"| wc -l :查看逻辑CPU个数即线程数

     

    3. 系统性能

    top :动态实时显示cpu、内存、进程等使用情况(类似windows下的任务管理器)

    top -d 2 -p 7427 -d为画面更新的秒数,默认5秒,-p为指定进程pid的信息

    vmstat 2 10 :每隔2秒采集一次服务器状态,采集10次(查看内存、io读写状态、cpu

    free -h :查看系统内存及虚拟内存使用情况

    df -h :显示磁盘的空间使用情况

    iostat :可查io读写、cpu使用情况

    sar -u 3 5 :查看cpu使用情况(3秒一次,共5次)

    sar -d 2 3 :评估磁盘性能

    ps aux|grep firefox :获取火狐的进程号(PID)(可查看进程占用cpu、内存百分比及进程触发指令的路径)

    kill -9 进程号 :强制杀死进程

    systemctl :查看正在运行的服务

    grep [java]:搜索java

     

    4. 文件和目录

    #查看目录

    cd#切换工作目录

    pwd #显示工作路径

    ls#列出文件

    ls -a#列出文件下所有文件,包含隐藏文件

    ls -lh#列出文件的详细信息

    file 文件或目录#显示文件或目录的类型

    #创建-删除-移动-复制-创建连接

    mkdir目录#创建目录

    touch 文件#创建文件

     

    rm 文件#删除文件

    rm -r 目录或文件#删除目录

    rm -rf 目录或文件#强制删除文件或目录

     

    mv file1 file2 #移动或重命名一个文件或目录

    mv -t dir1 file1 file2#file1file2(多个文件)移动到dir1

    cp file1/dir1 dir2#file1dir1复制到dir2

     

    ln -s /opt/a.txt /opt/git/ :对文件创建软链接(快捷方式不改名还是a.txt

    ln -s /opt/a.txt /opt/git/b :(快捷方式改名为b)(下面的一样可以改名)

    ln -s /opt/mulu /opt/git/ :对目录创建软链接

    ln /opt/a.txt /opt/git/ :对文件创建硬链接

     

    5. 文件查找

    locate a.txt :在系统全局范围内查找文件名包含a.txt字样的文件(比find快);

    find /home -mtime -2 :在/home下查最近2*24小时内改动过的文件

    find . -size +100M :在当前目录及子目录下查找大于100M的文件

    find . -type f f表示文件类型为普通文件(b/d/c/p/l/f 分别为块设备、目录、字符设备、管道、符号链接、普通文件)

    find . -mtime +2 -exec rm {} ; :查出更改时间在2*24小时以前的文件并删除它**

    find . -name '*.log' -exec grep -i hello {} ; -print :在当前目录及子目录下查出文件名后缀为.log的文件并且该文件内容包含了hello字样并打印,-exec 命令 {} 表示对查出文件操作,-i表示不区分大小写;

    find . -name '*.log'|grep hello :在当前目录及子目录下查出文件名后缀为.log的文件并且文件名包含了hello字样(grep用来处理字符串);

    grep -i 'HELLO' . -r -n :在当前目录及子目录下查找文件内容中包含hello的文件并显示文件路径(-i表示忽略大小写)

    which java :在环境变量$PATH设置的目录里查找符合条件的文件,并显示路径(查询运行文件所在路径)

    whereis java :查看安装的软件的所有的文件路径(whereis 只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令)

     

     

     

     

     

    6. 查看文件的内容

    cat [-n] 文件名 :显示文件内容,连行号一起显示

    less 文件名 :一页一页的显示文件内容(搜索翻页同man命令)

    head [-n] 文件名 :显示文件头n行内容,n指定显示多少行

    tail [-nf] 文件名:显示文件尾几行内容,n指定显示多少行,f用于实时追踪文件的所有更新,常用于查阅正在改变的日志文件(如tail -f -n 3 a.log 表示开始显示最后3行,并在文件更新时实时追加显示,没有-n默认10行)

    sed -n '2,$p' ab :显示第二行到最后一行;

    sed -n '/搜索的关键词/p' a.txt :显示包括关键词所在行

    cat filename |grep abc -A10 :查看filename中含有abc所在行后10行(A10)、前10行(B10)内容

    less a.txt|grep git :显示关键词所在行,管道符”|”它只能处理由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后传递给下一个命令,作为标准的输入;

    cat /etc/passwd |awk -F ':' '{print $1}' :显示第一列

     

    7. 文本处理

    ls -l>file :输出重定向>(改变原来系统命令的默认执行方式):ls -l命令结果输出到file文件中,若存在,则覆盖

    cat file1 >>file :输出重定向之cat命令结果输出追加到file文件(>表示覆盖原文件内容,>>表示追加内容)

    ls fileno 2>file 2>表示重定向标准错误输出(文件不存在,报错信息保存至file文件);

    cowsay <a.txt :重定向标准输入命令<文件表示将文件做为命令的输入(为从文件读数据作为输入)

    sed -i '4,$d' a.txt :删除第四行到最后一行($表示最后一行)(sed可以增删改查文件内容)

    sed -i '$a 增加的字符串' a.txt :在最后一行的下一行增加字符串

    sed -i 's/old/new/g' a.txt :替换字符串;格式为sed 's/要替换的字符串/新的字符串/g' 修改的文件

    vim 文件:编辑查看文件(同vi

     

    8.用户权限

    useradd 用户名 :创建用户

    userdel -r 用户名 :删除用户:(-r表示把用户的主目录一起删除)

    usermod -g 组名 用户名 :修改用户的组

    usermod -aG 组名 用户名 :将用户添加到组

    groups test :查看test用户所在的组

    cat /etc/group |grep test :查看test用户详情:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

    passwd [ludf] 用户名 :用户改自己密码,不需要输入用户名,选项-d:指定空口令,-l:禁用某用户,-u解禁某用户,-f:强迫用户下次登录时修改口令

    groupadd 组名 :创建用户组

    groupdel 用户组 :删除组

    groupmod -n 新组名 旧组名 :修改用户组名字

    su - 用户名:完整的切换到一个用户环境(相当于登录)(建议用这个)(退出用户:exit

    su 用户名 :切换到用户的身份(环境变量等没变,导致很多命令要加上绝对路径才能执行)

    sudo 命令 :以root的身份执行命令(输入用户自己的密码,而su为输入要切换用户的密码,普通用户需设置/etc/sudoers才可用sudo

    · 

     

     

    9.磁盘管理

    df -h :显示磁盘的空间使用情况 及挂载点

    df -h /var/log :(显示log所在分区(挂载点)、目录所在磁盘及可用的磁盘容量)

    du -sm /var/log/* | sort -rn : 根据占用磁盘空间大小排序(MB)某目录下文件和目录大小

    fdisk -l :查所有分区及总容量,加/dev/sda为查硬盘a的分区)

    fdisk /dev/sdb :对硬盘sdb进行分区

    mount /dev/sda1 /mnt :硬盘sda1挂载到/mnt目录(mount 装置文件名 挂载点)

    mount -t cifs -o username=luolanguo,password=win用户账号密码,vers=3.0 //10.2.1.178/G /mnt/usb :远程linux 共享挂载windowsU,GU盘共享名,需设置U盘共享

    mount -o loop /opt/soft/CentOS-7-x86_64-DVD-1708.iso /media/CentOS :挂载iso文件

    umount /dev/sda1 :取消挂载(umount 装置文件名或挂载点)

     

    10压缩 解压 打包备份

    单纯tar仅为打包(多个文件包成一个大文件),加上参数-j(bzip2格式.bz2)-zgzip格式.gz)可以备份、压缩(-c)、解压(-x),备份一般比压缩多加参数-p(保留原本文件的权限与属性),-C可以指定解压到特定目录;bzip2gzip只能对单一文件压缩;

    file 文件名 :查文件类型(可看是用哪一种方式压缩的)

    tar -zxvf a.tar.gz -C ./test :解压tar.gz到当前目录下的test目录

    tar -zcvf /opt/c.tar.gz ./a/ :压缩tar.gz(把当前目录下的a目录及目录下所有文件压缩为 /opt/目录下的c.tar.gz,这样tar -zxvf c.tar.gz解压出来带有目录a

    tar -jxvf a.tar.bz2 :解压tar.bz2(到当前目录)

    tar -jcvf c.tar.bz2 ./a/ :压缩tar.bz2(把当前目录下的a目录及目录下所有文件压缩到当前目录下为c.tar.gz2

    unzip a.zip :解压zip(到当前目录)

    unzip -o mdmtest.war -d /opt/mdm :推荐使用unzip解压war包(-o覆盖原有文件,-d指定文件解压后存储的目录)

    zip -r c.zip ./a/ :压缩zip(把当前目录下的a目录及目录下所有文件压缩到当前目录下为c.zip

    bzip2 -k file1 : 压缩一个 'file1' 的文件(-k表示保留源文件)(bzip2格式,比gzip好)

    bzip2 -d -k file1.bz2 : 解压一个叫做 'file1.bz2'的文件

    gzip file1 : 压缩一个叫做 'file1'的文件(gzip格式)(不能保留源文件)

    gzip -9 file1 : 最大程度压缩

    gzip -d file1.gz : 解压缩一个叫做 'file1'的文件

    11软件安装

    · 尽量用yum源(apt-get)安装,不行就rpmdeb包安装,能不手动编译的就不要手动编译;

    · dpkg只能安装已经下载到本地机器上的deb. apt-get能在线下载并安装deb,能更新系统,且还能自动处理包与包之间的依赖问题,这个是dpkg工具所不具备的;

    · rpm 只能安装已经下载到本地机器上的rpm . yum能在线下载并安装rpm,能更新系统,且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的;

    · yumrpm安装文件分布在/usrbinlibshare不同目录,不用配置PATH,直接用命令,但可用命令卸载更新;

    · 手动编译软件,默认位置为/usr/local下不同子目录下,不用配置PATH直接用命令(手动指定安装路径需要加PATH),使得软件更新和删除变得很麻烦。编译安装的软件没有卸载命令,卸载就是把所有这个软件的文件删除。

    二进制(Binaries)

    yum安装

    在线下载并安装rpm包,适用于CentOSFedoraRedHat及类似系统

    · yum install epel-releas :安装第三方yumEPEL(企业版 Linux 附加软件包的简称)

    · yum repolist enabled :显示可用的源仓库(/etc/yum.repos.d/目录下配置)

    · yum install yum-fastestmirror :自动选择最快的yum

    · yum list installed |grep java :列出已安装的软件(查看已安装的JDK

    · yum remove java-1.8.0-openjdk.x86_64 :卸载软件(卸载JDK

    · yum list java* :列出已安装和可安装的软件(查看yum库中的JDK包)

    · yum install [-y] java-1.8.0-openjdk :安装软件JDK(-y自动安装)(推荐这种方式安装)

    · yum install docker-ce-18.03.1.ce :安装指定版本的软件(已知docker-ce.x86_64 18.03.1.ce-1.el7.centos,则rpm包名为docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm

    · yum check-update [kernel] :列出所有可更新的软件(检查更新kernel

    · yum update tomcat :更新软件(可所有)

    · rpm -ql 软件名称 :查询yum安装路径(软件名称可通过rpm -qa|grep java

    · yum info kernel :查看软件(kernel)的信息

    · yum clean all :(清除缓存,使最新的yum配置生效)

    rpm包手动下载安装

    ​ yum中没有时用,适用于CentOSFedoraRedHat及类似系统;

    · 

    wget -P /opt https://网址 :下载到/opt目录

    · 

    · rpm -ivh wps-office-版本.x86_64.rpm :安装rpm包(包要先下载)(要先装依赖包)

    · rpm -e wps-office :卸载软件(注意不要软件名不要版本号)

    · rpm -qa |grep wps :查看安装的rpm

    · 

    rpm -ql 软件名称 :查看rpm包安装路径(软件名称可通过rpm -qa|grep java

    · 

    apt方式安装

    安装deb包,类似yum安装,适用于Debian, Ubuntu 以及类似系统;

    · apt-get install aptitude :安装aptitude工具,实现依赖自动安装,依赖版本自动降级或升级

    · 

    aptitude install 软件 :安装软件(推荐这种方式安装)

    · 

    · apt-cache search 软件 :搜索软件

    · apt-get install 软件 :安装软件

    · apt-get purge 软件 :卸载软件(包括配置文件,只删除软件purge换成remove

    · apt-get upgrade :更新所有已安装的软件包

    · apt-get update :升级列表中的软件包

    · 

    apt-get clean :从下载的软件包中清理缓存

    · 

    deb包安装

    适用于Debian, Ubuntu 以及类似系统;

    · dpkg -i package.deb :安装一个 deb

    · dpkg -r package_name :从系统删除一个 deb

    · dpkg -l |grep chrome :查询系统中所有已经安装的 deb

    · dpkg -L 软件名称 :查软件安装的文件

    解压即用

    大多数非开源的商业软件都采取这种办法;

    二进制(Binaries)包如apache-jmeter-3.3.tgz,下载复制解压到/opt,然后然后将该软件的 bin 目录加入到 PATH 中即可(vim /etc/profile export PATH=$PATH:/opt/apache-jmeter-3.3/bin);

    软件自己的模块/包管理器

    python:系统的源中不可能包含该软件的所有模块; 系统的源中该软件的模块的更新要远远滞后于最新版本;手动安装python,并用Python 自带的 pip 安装模块(类似yum);

    · pip install redis :安装python软件包redis

    · pip unstall redis :卸载

    · pip show --files redis :pip查看已安装的包

    · pip list --outdated :检查更新

    源代码(Source)

    编译安装

    源代码包(一般有install文件)如hello-2.2.tar.bz2,下载复制到/opt;

    · tar -jxvf hello-2.2.tar.bz2 :解压

    · ./configure --prefix=/opt/软件目录名称 :为编译做好准备,加上 prefix 手动指定安装路径

    · make :编译

    · make install :安装

    · make clean :删除安装时产生的临时文件

    · vim /etc/profile export PATH=$PATH:/opt/目录/bin :手动指定安装路径需要加path

    · hello :执行软件:看INSTALLREADME文件(是否源码包、如何安装、执行都看这两个)

    · rm -rf 软件目录名称 :卸载软件

  • 相关阅读:
    使用sorted函数对字典元素排序
    PAT (Basic)1004 成绩排名 (Python实现)
    Python中的a+=b和a=a+b之间的区别是什么?
    Shell while循环用法总结
    PAT (Basic)1027 打印沙漏 (Python实现)
    python 基础应用2
    python 基础知识1
    python 基础知识2-数据类型
    python 基础应用1
    PHP提高SESSION响应速度的方法
  • 原文地址:https://www.cnblogs.com/mznsndy/p/11510917.html
Copyright © 2011-2022 走看看