美文网首页
Linux命令大全

Linux命令大全

作者: brenner | 来源:发表于2018-05-23 22:19 被阅读0次

    Updated March 6, 2018


    image

    文件目录管理

    touch把已存在文件的时间更新为当前系统时间或者创建新文件
    
    cp sshd_config sshd_config.lema.20180301 # 备份
    
    mkdir -p /home/lema/test/core # 递归创建目录
    mkdir stu{1..100} # 创建100个目录
    

    rm -fr /
    
    文件删除原理
    控制文件删除的两个变量:
    i_link # 文件的硬链接数量
    i_count # 引用计数(有几个程序用了这个文件)
    文件成功删除条件:i_link==0 and i_count==0
    

    diff比较两个文本文件的不同,如果比较的是目录则会比较两个目录是否有同名的文件
    vimdiff test.txt test2.txt
    
    tree -L 2 /etc # 以树状图打印目录的内容
    
    cat >>test.txt<<EOF
    >aaa
    >bbb
    >EOF
    cat -n test.txt # 显示行号及文本内容
    
    nl test.txt # 显示行号及文本内容
    head -3 test.txt
    less test.txt # 支持上下翻查,支持查找
    more test.txt
    
    tail显示指定文件的最后10行,若不加指定文件则读取标准输入
    tailf /var/log/messages # 动态查看文件内容的变化
    
    cut -f2,3 test.txt # 查看文件第2列第3列内容
    cut -c 2-10
    
    updatedb
    locate /etc/sh # 搜索etc目录下所有以sh开头的文件,比find查找更快
    # 不搜索具体目录而是搜索数据库/var/lib/locatedb
    
    file # 探测给定文件的类型
    b 块设备文件
    c 字符设备文件(串行端口的接口设备)
    d 目录
    l 符号链接文件
    
    du -h --max-depth=1 /usr # 查看文件文件夹大小 
    
    ls -alF # append indicator (one of */=>@|) to entries
    ls -alrt # 查询结果按修改时间逆向排序
    ls -lhi # -i参数inode索引节点
    当你想读写一个文件时,先通过读取inode,inode存储文件属性,不存文件名,如果文件属性不可读,那就无法读,然后访问block,block存储文件内容
    磁盘读取数据是按block为单位读取的,block越大,磁盘io性能越好,但是block太大,浪费磁盘空间
    
    stat test.txt # 显示文件的状态信息
    

    mv剪切文件或重命名文件
    
    >test.txt # 清空文件内容
    

    压缩

    tar -zcvf etc.tar.gz /etc # 打包压缩/etc目录
    tar -jcvf etc.tar.bz /etc # 比较少用
    tar -zxvf etc.tar.gz # 在当前路径下解压
    tar -jxvf etc.tar.bz -C /tmp # 在指定目录下解压
    tar -xf etc.tar.gz # 自动识别解压方式并解压
    tar -tf etc.tar.gz # 列出压缩文件的内容
    -c参数建立新的压缩文件
    -x参数从压缩文件中还原文件
    
    find /etc -type f |xargs tar -zcvf etc.tar.gz
    tar -zcvf etc.tar.gz `find /etc -type f`
    

    权限管理

    Linux默认权限:目录755,文件644
    目录创建默认最大权限777,文件创建默认最大权限666
    umask 051 # 控制目录文件权限的一个值
    
    u:User,即文件或目录的拥有者;
    g:Group,即文件或目录的所属群组;
    o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;
    a:All,即全部的用户,包含拥有者,所属群组以及其他用户;
    r:读取权限,数字代号为“4”;
    w:写入权限,数字代号为“2”;
    x:执行或切换权限,数字代号为“1”;
    -:不具任何权限,数字代号为“0”;
    s:特殊功能说明:变更文件或目录的权限。
    
    chmod u+x,g+r test.txt
    chmod 770 test.txt
    
    chown -R lema test.txt # 改变某文件的所有者
    chgrp lema test.txt # 更改文件的所属组
    chown lema.lema test.txt # 改变文件的所有者和所属组
    
    sudo # 在/etc/sudoers中设置了可执行sudo指令的用户
    visudo -c # 会检查语法是否正确 vi /etc/sudoers不会检查语法
    root   ALL=(ALL)      ALL # sudo su root
    
    chattr +i /etc/passwd /etc/inittab # 改变文件属性 
    lsattr # 查看文件的第二扩展文件系统属性
    

    shell管理

    xargs将标准输入数据转换成命令行参数
    cat test.txt|xargs -n3 # 格式化输出
    
    find /root/data -type f|xargs tar -zcvf data.tar.gz # 一次性传递全部参数
    find /root/data -type f -exec tar -zcvf data.tar.gz {} \; # 一个一个地传递参数,只压缩了最后一个文件
    
    HISTSIZE=5 # 设置history只显示5条历史命令
    HISTFILESIZE=3 # 设置~/.bash_history文件中只保存3条历史命令
    history # 显示之前用过的命令
    !304
    
    unalias cp # 取消别名
    alias # 查看已经设置的别名
    
    whereis cd # 用来定位指令的二进制程序,源代码文件及man手册页的路径
    which chattr
    
    # 文件描述符是由无符号整数表示的句柄,进程使用它来标识打开的文件。
    ulimit -n # 限制用户对shell资源的访问
    ulimit -n # 把当前shell的文件描述符改为65535
    

    软件安装卸载

    # yum是在Fedora和redhat以及suse中基于rpm的软件包管理器,
    # 能够从指定的服务器自动下载rpm包并且安装,自动处理依赖关系。
    yum grouplist # 显示已安装程序组
    yum groupinstall # 安装程序组
    yum install tree -y # -y参数对所有的提问都回答yes
    
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.lema.0312
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
    yum makecache
    
    # rpm是rpm软件包的管理工具
    rpm -ivh packagesname.rpm
    rpm -qa|grep sql # 检查是否安装带sql的软件包
    
    # apt-get是Debian Linux发行版中的apt软件包管理工具。Debian软件库存在互联网上的一些公共站点上,
    # /etc/apt/sources.list是存放这些地址列表的配置文件
    

    进程管理

    # init进程是所有Linux进程的父进程,进程号为1,系统中的第一个进程
    
    # ps报告当前系统的进程状态
    ps -e # 显示所有程序
    ps -ef |grep ssh # -f参数显示UID,PPIP,C与STIME栏位
    
    kill # 删除执行中的程序和工作
    
    top # 实时查看系统状态
    htop # 类似于top
    

    网络管理

    traceroute -n baidu.com
    
    ping baidu.com # 执行ping指令会使用ICMP传输协议,发出要求回应的信息测试网络连通性
    ping www.baidu.com # ping二级域名对应的服务器
    禁止ping
    echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf
    sysctl -p # 从/etc/sysctl.conf加载内核参数设置
    
    ifconfig eth0 down # ifdown eth0 禁止指定的网络接口eth0
    ifconfig eth0 up # ifup eth0 激活网络接口eth0
    /etc/init.d/network restart
    /etc/init.d/networking restart
    
    chkconfig --list # 列出所有系统服务
    chkconfig --list sshd # 查看ssh服务
    chkconfig --level 3 sshd off # 关闭设置ssh在等级3为开机自启动服务
    chkconfig --level 35 sshd on
    
    dig @8.8.8.8 www.baidu.com +trace # 查询DNS解析过程
    nslookup # 查看域名解析结果
    
    netstat -lntup # 查看开放的端口
    lsof -i :22 # 已知端口22,查看端口对应的服务
    

    系统管理

    halt
    shutdown -h 11:50
    reboot
    
    init 6 # 进程初始化,切换到运行等级6
    runlevel # 查看当前系统运行的级别,总共有7个运行级别
    #0 停机(绝对不能把initdefault设置为0)
    #1 单用户模式
    #2 多用户,没有NFS
    #3 完全多用户模式
    #4 未使用的
    #5 x11(Xwindows)
    #6 重新启动(绝对不能把initdefault设置为6)
    
    ntpdate ntp.api.bz # 时间同步
    date # 显示系统时间
    hwclock -w # 显示硬件时钟时间,-w参数与系统时钟同步
    
    uname -a # 打印当前系统相关信息(内核版本号,硬件架构)
    Linux localhost 2.6.32-504.el6.i686 #1 SMP Wed Oct 15 03:02:07 UTC 2014 i686 i686 i386 GNU/Linux
    # 2表示主版本号,有结构性变化才更改,6表示次版本号,新增功能时才变化,
    # 32表示对次版本的修订次数或补丁包数,504代表编译的次数,el代表企业版Linux
    
    env # 显示系统已存在的环境变量
    
    df -h # 查看磁盘挂载信息
    
    mount /dev/sda /home/lema
    dd if=/dev/zero of=sun.txt bs=1M skip=1024 # 复制文件,skip跳过指定的区块数
    
    fsck # 当文件系统发生错误时,尝试修复错误
    

    用户和组管理

    Linux通过UID和GID识别不同用户不同组,用户分为3类,超级用户root,虚拟用户uid1-499,普通用户,虚拟用户不能登陆不能使用
    
    groupadd lema -g 506 # 为用户组lema指定gid506
    useradd lema -u 506 # 为用户lema指定uid506
    useradd lema -g qunzu -G fujia # -g指定群组,-G指定附加群组
    passwd -l lema # 设置用户lema不能更改密码
    userdel -r lema # 删除用户连同其家目录文件
    su lema # 切换用户
    useradd -s /sbin/nologin # 指定用户登入后所使用的shell
    useradd -M # 不要自动建立用户的登入目录
    
    id lema # 显示用户id和组id
    
    lastlog
    

    特殊字符

    >重定向,>>追加重定向,<<追加输入重定向,<输入重定向
    标准输入0,标准正常输出1,标准错误输出2
    echo "hhh" 1>./test.txt 2>./test2.txt
    
    ;  命令分割符,cat test.txt;ls
    
    &&,||
    
    ``,$()
    
    {}  touch {a,b,c}.txt
    
    *所有
    
    ~  家目录
    
    . 当前目录,.. 上级目录
    
    |  管道
    

    其它

    seq -s '/' 1 2 10 # 产生奇数列1/3/5/7/9
    
    setup # 启动图形界面设置系统配置服务
    
    ln -s /root/test.txt /tmp/test2.txt # 对/root/test.txt做符号链接
    ln /root/test.txt /tmp/xx.txt # 对/root/xx.txt做硬链接
    符号链接文件只是指向了源文件的绝对路径,删除或移动重命名源文件符号链接文件都会失效,
    硬链接文件相当于为数据创建了一个新名字,源文件删除,只是删除了一个名字,
    数据并未删除,和cp命令不同,硬链接文件具有相同的inode
    mkdir -p ./a/b ./a/c && ls -l ./a
    显示./a的硬链接为4,a算一个,. 算一个,有两个 ..
    
    echo -e "lema\nlema" # 解析转义字符
    
    md5sum /etc/passwd
    
    lrzsz
    

    相关文章

      网友评论

          本文标题:Linux命令大全

          本文链接:https://www.haomeiwen.com/subject/tgidjftx.html