zoukankan      html  css  js  c++  java
  • Linux基本命令学习

    对操作系统进行信息查询

    硬盘大小

    查看磁盘信息:  fdisk -l
    /dev/sda       操作系统中第一块硬盘的名称以及所在路径
    linux操作系统中一切皆文件(文件名)        sd(硬盘类型)    a(第一块)

    为什么很多时候实际容量比厂家标注的要小?
    因为厂家按照1000作为进制,而操作系统按照1024作为进制

    内存大小

     cat /proc/meminfo     只需要关注第一行,Memtotal

    CPU型号

    cat /proc/cpuinfo

    关机的命令

    reboot   重启
    poweroff  关机

    操作系统的目录结构及文件属性

     linux操作系统树状结构
    目录==文件夹
    起始      /                  是一切的起源
    cd    change directory
    cd ..       返回上一级目录
    pwd  显示当前路径
    ls   list,列出当前目录中的内容
    /bin  普通用户和管理员都可以执行的命令
    /sbin   只有管理员才能执行的命令 关机重启
    /boot  引导 主引导目录 独立的分区 启动菜单 内核
    /dev  device-设备  设备文件存放目录
    /etc  配置文件存放目录
    /home  普通用户的家目录
    /root   管理员的家
    /lib  /lib64  一些库文件
    /media  光驱的挂载目录
    /mnt  临时设备挂载目录
    /proc  里面的数据都在内存里,进程的所在目录
    /tmp  临时文件存放目录
    /usr  软件安装目录
    /var  尝变文件存放目录 日志文件 邮件文件

    快捷键使用及文件系统分类

    安装vmware-tools 实现虚拟机和真实机之间的文件复制
    进入文件夹,可以通过绝对路径/相对路径进入
    Tab   可以补全命令字/路径/文件
    Ctrl+L  清屏
    Ctrl+C  终止当前进程

    linux通过文件颜色分辨文件类型

    蓝色  目录
    黑色  普通文件
    浅蓝色  符号链接(快捷方式)
    黑底黄字  设备文件 硬盘 sda
    绿色  可执行文件
    红色  压缩包
    紫色  图片&模块文件

    增删改查基础命令

    查看目录下有哪些内容  ls
    查看文件内容  cat
    创建文件  touch    echo "hello" > 文件
    创建目录  mkdir 目录名
    改:剪切和复制  mv(也可以重命名)  cp
    创建符号链接  ln -s /tmp/class1/class11.txt /root/Desktop/ [链接名字]        (就是快捷方式,一定要用绝对路径)
    删除  rm  可选项 -f (强制删除,但是目录下面有东西时不行)  -fr/-rf (r递归删除,可以删除目录)

    命令字帮助信息查询   

    linux命令字格式 : 命令字 [选项] [文件或者目录]
    那么如何查看一个命令字的帮助手册
    man  menu-菜单
    eg.     man ls
    退出这个详细的查看模式按q
    查询就输入 /-l    就能查到很多包含 -l 的东西, 用 n 键跳下一个
    ls -a  查看隐藏文件
    ls -l  查看文件的详细信息
    ls -lh  显示文件的大小
    ls -R  递归显示目录中子目录的内容


    当前操作系统有内部命令和外部命令(安装的第三方软件带来的,通常都带有帮助手册)
    内部命令  命令解释器自带的命令  help cd (查看cd的使用)

    压缩与解压

    /tmp 目录中建立一个大小为100m的文件bigfile
    dd if=/dev/zero of=/tmp/bigfile bs=1M count=100

     if = inputfile    of = outputfile   bs 单位  count 计数器

    gzip bigfile (用来压缩该文件)

     红色代表是压缩文件.

    用 file bigfile.gz 命令 分析该压缩文件

     可以看出该文件是gzip压缩的

    那么怎么解压缩呢?

    gunzip bigfile.gz

     得到解压文件


    还有个bzip2,压缩与解压缩命令分别如下:

    root@ryan-virtual-machine:/tmp# bzip2 bigfile
    root@ryan-virtual-machine:/tmp# bunzip2 bigfile.bz2

     还有查看目录大小,一般不用ls

    用 du -sh /tmp

    root@ryan-virtual-machine:/tmp# ls -lhd /tmp
    drwxrwxrwt 18 root root 4.0K 8月 31 19:48 /tmp
    root@ryan-virtual-machine:/tmp# du -sh /tmp
    101M /tmp

     怎么压缩个目录呢>>>这俩工具都不能压缩目录呀?

    如何压缩目录

    先进行打包(tar),再压缩.

    tar -cf /tmp/allfile.tar /tmp/allfile          (c是create)

    对allfile文件夹打包成allfile.tar

    不打开包的情况下看看包里有啥: tar -tvf allfile.tar

    怎么解包呢?

    tar -xf allfile.tar -C [目标目录]

    有没有直接打包压缩?

    tar -zcf /tmp/allfile.tar.gz allfile

    可以直接解压解包?

    tar -zxf allfile.tar.gz -C [目标路径]

    -z使用的gzip压缩, -j 使用的是bzip2

    vim编辑器使用

    vi编辑器, vim的升级版

    在/tmp目录中建立一个名为test.txt的文件并写入hello

    三种工作模式:  命令模式  输入模式  末行模式

    命令模式->输入模式 : i

    输入模式->末行模式 : Esc到命令模式 ,然后输入 : 再加命令 q (推出) / wq (保存退出) / !q (不保存退出)

    :set nu  显示行号

    :% s/l/x/g  %代表每一行, s代表替换, g是代表无论出现多少的 l 都会被替换成 x              :% s/old/new/g , 每一行中的old替换成new

    命令模式有非常多的快捷编辑快捷键

    2yy复制当前行及下一行

    p为粘贴到当前行下

    dd 删除当前行

    gg回到第一行

    G回到最后一行

    50G去五十行

    我想删除50-60的所有行, 光标放在50行, 输入50dd

    想要删除50-55行的数据  用          :50,55d

    linux软件安装

    软件的分类:

    源码包 :

     代码公开,需要自己编译安装,一般以压缩包形式提供,开源,可以进行二次编辑, 并且会有很多人维护

    可以指定安装的路径和编辑所需要的功能

    现在有一个 httpd-2.2.15.tar.gz

    先解包                 tar -zxf httpd-2.2.15.tar.gz -C /usr/src                 (/usr/src是源码存放路径)

    README可以看到软件功能, 安装是哪个文件指导我们呢?   INSTALL

    通过配置脚本指定安装路径和功能, 并且声称makefile编译脚本文件

    /configure --prefix=/usr/local/webserver

    通过make命令控制makefile文件进行顺序编译

    最后将编译好的文件拷贝到安装路径下         make install

    封装后的软件包 : 

    源码包安装步骤略显繁杂,不同linux厂家对软件进行了封装.

    特点后缀              

    rpm  red hat package manager

    deb  debian

    源码包可以不考虑系统的版本, 封装后就不能无视啦  封装好的软件包都是压缩文件

    ls | grep "tree"    解释:      | 是管道符, 作用是将前一个命令的输出作为后一个命令的输入, grep是过滤, .

    安装rpm包软件步骤

    针对软件安装,首先要确认有没有安装过该软件.   (CentOS)   rpm -qa  列出所有已经安装过的rpm软件包       (Ubuntu) dpkg -l

    确认该软件的作用 .          (CentOS) rpm -qpi [软件名]    查看软件详细信息  

    确认该软件安装的路径  封装后的软件包安装路径固定

    安装软件        (CentOS) rpm -ivh [软件名]   (Ubuntu)  apt-get installl

    怎么卸载  (CentOS) rpm -e [软件名]  (Ubuntu) apt-get uninstall

    通过yum安装软件

    卸载软件需要先卸载依赖它的软件

    安装软件需要先安装依赖

    不想这样安装卸载了, 想根据依赖关系表安装、卸载软件

    linux操作系统中的用户分类

    ryan  普通用户 比管理员低, 也可以呃登陆系统

    root  超级管理员

    用户的分类和组

    /etc/passwd  保存了操作系统中所有用户的信息

    用户名

    密码占位符

    用户的uid  0表示超级用户   500-60000表示普通用户  1-499表示程序用户, 不允许登陆系统

    基本组的gid  先有组, 才有用户

    用户信息记录字段

    用户的家目录

    用户登陆系统后使用的命令解释器

    /etc/shadow      保存了用户密码信息

     用户名

    用户的密码加密后的字符串

    距离1970/1/1 密码最近一次的修改时间

    密码的最短有效期

    密码的最长有效期

    密码过期前7天警告

    密码的不活跃期

    用户的失效时间

    调整及建立用户属性

    建立一个class1的组,组id为1005,class2的组id 2000
    建立tom用户要求其基本组是class1组, 附加组为class2组, tom用户的uid为600
    建立一个程序用户uid为250 用户名为testuser 没有家目录
    将tom用户设定密码为123 并设定密码最长有效期为90天 将用户密码进行锁定使其无法登陆系统
    删除tom用户和testuser用户 删除class1组和2组

    groupadd class1 
    cat /etc/group  发现建立的组id不符合要求

    groupmod -g 1005 class1  我改!

    groupadd -g 2000 class2  这次直接干!

    useradd -g class1 tom  还要uid?还要附加组

    usermod -G 2000 -u 600 tom

     useradd -u 250 -M -s /sbin/nologin testuser  -M是没有家目录, -s /sbin/nologin 是不能登录

     chage -M 90 tom

     passwd -l tom  锁定tom

    passwd -u tom  解锁tom

    passwd -S tom  查看用户密码信息

    userdel -r testuser

    userdel -r tom

    groupdel class1

    groupdel class2

    调整文件及目录权限

    直接查看文件权限的命令

    root@ryan-virtual-machine:/tmp# ls -l test.txt
    -rw-r--r-- 1 root root 6 8月  31 20:25 test.txt

    查看文件夹权限呢

     -rw-r--r-- 1 root(所属者) root(所属组) 6(关联的数据 / 目录中的子目录格式) 8月 31 20:25 test.txt

     权限一共10个字母 :    d rwx --- ---

    字段1 : 文件类型   -普通文件 d目录 l符号链接 b块设备

    字段2 : 文件所属者对该文件的权限

        r          w        x

    文件       读取        写入      执行

    目录   可以查看目录内容       可以增删文件  可以进入目录

    字段3 : 文件所属组的权限

    字段4 : 其他用户的权限(既不是文件所有者也不是文件所属组中的用户)


    chmod 用户 算数运算符 权限 文件

    用户  : u(所属者)   g(所属组)   o(其他用户的权限)   a(all)

    算术运算符 : -去除权限  +添加权限  =指定权限

    权限 :     rwx


    改变所属者为tom 所属组改为tom组

    chown tom /tmp/test.txt

    chgrp tom /tmp/test.txt

     7代表 111 , 是4+2+1 ,代表 rwx全有


    粘滞位针对目录进行授权, 目录中创建的文件只有建立者可以删除

    chmod o+t test  这个 t 

     tmp文件夹就有粘滞位, 每个进程只能删除自己的文件


    sgid是针对目录建立的权限, 在该目录中建立的文件所属组继承父目录的属组

    chmod g+s test


    suid针对可执行文件建立.运行这个程序的用户就会继承这个文件所属者的权限, 这个跟系统的安全有很大关系

    chmod u+s [文件名]

    不再允许添加新用户的请求

    创建新用户时候, 没有指定组的话, 先在 /etc/group创建一个用户同名组

    再在/etc/passwd注册用户信息

    再在/etc/shadow注册密码信息

    在/home下生成家目录文件

    只要/etc/passwd和/etc/shadow目录锁定 ,就可以不再添加新用户. 

    chattr +i /etc/passwd /etc/shadow  这就成啦   i 就是不可变属性

    解除的话就 -i 即可

    umask值

    目录的最高权限  0777-0022 = 0755

    文件 666 - 022 = 644

    umask值最好是027, 让其他用户没有任何权限

    在操作系统里怎么修改这个值呢??

    一个是在        /etc/profile

    还有一个在  /etc/bashrc

    建立用户默认密码有效期90天

    还在  /etc/profile         文件里修改      PASS_MAX_DAYS

     
  • 相关阅读:
    【翻译】谈 focus 和 blur 的事件代理
    【翻译】细分域名的优势
    Form窗体的Combobox键值对绑定
    日志
    ajaxload
    c#文件整理程序
    每天工作4小时的程序员
    每年这一天
    转载从交友到社交的个人成长
    旅行的意义
  • 原文地址:https://www.cnblogs.com/coderge/p/13595307.html
Copyright © 2011-2022 走看看