CMD

 

 ls--- list:
  显示目录
  参数:
     -a 显示所有
     -l 显示详细
     -i 显示文件id


  pwd---print work directory :
  打印当前目录

  touch---命令:创建文件

  cp---copy:
  复制文件
 参数:  
    -r复制包括子目录
    -p复制包括文件属性
    例:如何在复制时重命名,把Downloads复制到home目录下
    并命名为rename_file
    
    cp -r /home/logan/Downloads /home/rename_file
    
    前提是在home/目录下无rename_file文件夹才可命名成功

  rm---remove:
  删除文件或文件夹
 参数:
    -r删除包括子目录文件或文件夹
    -f强行执行

    //快捷键:Ctrl+L 可达到清屏目的,等同于输入命令clear
  mv--move
  移动或重命名文件

  mkdir--make directory
  创建目录
 参数:
    -p创建连续父子目录

 rmdir---remove empty directory
  删除空目录

 如何修改语言:输入locale 查看各种功能语言,在输入相应的值进行修改.
 
  touch--- make a file
  创建一个文件
  注意,若创建含有空格的名称文件需要使用单引号或双引号括起来

  cat---show with text
  显示文件内容,从上往下输出,直到输出完毕
  参数:
    -n显示行号
  tac---show with text in inversement
  倒着打印,于cat相同,从下往上输出,直到输出完毕
****不支持-n  

  more--=show with text
 显示文件内容-可以往下翻页

  less---show with text
  显示文件内容-可以往上翻页
 使用技巧:输入/+keyword可以查找你所需要的信息

  head---show with text
 显示文件内容-指定行号进打印前几行内容
 参数:
    -n指定行号
  tail---show with text
  显示文件内容-指定行号进行打印后几行内容
  参数:
    -n指定行号
    -f动态显示文件末尾内容
*****注意,head与tail未指定行数时,默认为10行*****
  ln---link
  生成链接文件-默认硬链接
 语法: ln -s [原文件] [目标文件]
  参数: -s创建软链接


*******如何使用linux创建U盘启动器*************************




0.格式化U盘,mkfs.vfat /dev/设备名称
1. 使用 fdisk -h 查看各储存设备名称
2. 找到U盘盘符名称,使用umont /dev/设备名称--//注意,必须umount掉
3. 使用dd if=sio镜像目录 of=/dev/设备名称 bs=2M---设置刻录速度
4. 回车.---完毕!


*********************************************


  chmod---change the permissions mode of a file
  改变文件或文件目录
  语法:chomd [{ugoa}{+-=}{rwx}] {文件目录}
             [mode=421] {文件目录}
  参数:
    -R递归修改 /Important!!!!
  chown---
  改变文件或目录的所属者
  chgrp---
  改变文件或目录的所属组
  umask---
  显示,设置文件的缺省权限
  参数:
    -S以rwx形式显示新建文件缺省文件权限
注:///比如:
  umask
  0022
  (0022)代表使用777-755 >>rwx-r_x-r_x


  find---
  文件搜索
  语法:find [搜索范围] [匹配条件]
  例如:

  find /etc/ -name *woshi*  ----使用*号代表搜索*号里面的有关内容

  find /etc/ -size +204800  ----搜索大于100M的文件
  (+n 大于 -n小于 n等于)
 
  find / -cmin -5 ---在/目录下查找5min之内被修改属性的文件
 (若超过5min使用+)

  find /etc -size +163840 -a -size -204800
  在/etc下查找大于80MB小于100MB的文件

  find /etc -name inittab -exec ls -l {} \;
  在/etc下查找inittab文件并显示其详细信息
  -exec/-ok 命令 {} \;

  参数:
    -name使用名称搜索
    -size根据大小搜索

    -amin根据改动的访问时间 access
    -cmin根据文件改动的属性 change
    -mmin根据文件内容改动 modify
    
    -o条件中任意一各条件满足即可
    -type根据文件类型查找(f文件 d目录 l软链接文件)
    -inum根据i节点查寻
----------------------------------------------------------------
        压缩打包命令
    若打包 a 目录
    tar -cvf a.tar a
    若打包并压缩为gz格式
    tar -zcvf a.tar.gz
    若打包并压缩为bz2格式
    tar -jcvf a.tar.bz2
    解包tar
    tar -xvf a.tar -C ./        (-C代表指定的目录)
    解包gz
    tar -cxvf a.tar.gz -C ./
    解包tar.bz2
    tar -jxvf a.tar.bz2 -C ./
    
    gzip
    bzip2
    rar
    压缩: rar a ***
    解压: rar x ***.rar
    zip
    压缩: zip ***
    解压: unzip *** -d 目录
-----------------------------------------------------------------
        网络命令

  write---给指定在线用户发送消息
  按: Ctrl + D 保存结束

  wall---发送广播信息

  ping---测试网络的连通性
  参数:
    -c指定发送次数
  例如:ping 192.168.03.01

  nslookup---(翻译域名为IP)

  ifconfig---查看当前计算机网卡还有ip地址
  (interface configure)

  mail---查看发送邮件
  进入以后 h列出 d删除 q退出 邮件序列号-查看邮件

  last---列出目前与过去登入系统的用户信息

  lastlog---检查某特定用户上次登录的时间
  参数:
    -u
  例如:lastlog -u logan
 
  traceroute---显示数据包到主机之间的路径
  例如:traceroute www.baidu.com

  netststat---显示网络相关的信息
  参数:
    -t TCP协议
    -u UDP协议
    -l 监听
    -r 路由
    -n 显示IP地址和端口号
  范例:
    netstat -tlun 查看本地监听端口
    netstat -an  查看本地所有的网络链接
    netstat -rn   查看本机路由表
 
  mount---挂载
  umount---
-------------------------------------------------------------
        关机重启命令
  shutdown---(优先使用)
  参数:
    -h 关机
    -r 重启
    -c 取消
 halt---关机

  poweroff---关机
  reboot---重启

  init 0---关机
 init 6---重启
  系统运行级别
     0 关机
    1 单用户
    2 不完全多用户,不含NFS服务
    3 完全多用户
    4 未分配
    5 图形界面
    6 重启

  runlevel---查询系统运行级别

  logout---退出登录

---------------------------------------------------------------
   
        用户配置文件

    查看配置文件的帮助信息: man 5 配置文件名
    用户信息文件/etc/passwd
    第1字段:用户名
    第2字段:密码标志
    第3字段:UID
    UID:
    0         root
    1~499       系统用户
    500~65535 普通用户
    第4字段:GID(用户初始组)
    第5字段:用户说明
    第6字段:家目录
    第7字段:登录之后的Shell

    
    影子文件    /etc/    密码存放文件
    
    组密码文件   /etc/gshadow
    第一字段:组名
    第二字段:组密码    
    第三字段:组管理员用户名    
    第四字段:组中附加用户
    
    组信息文件   /etc/group
    第一字段:组名
    第二字段:组密码标志
    第三字段:GID
    第四字段:组中附加用户
    
    如何使其他用户变为超级用户,更改/etc/passwd的UID为0即可
    用户的邮箱文件: /var/spool/mail/用户名/
    用户模板目录:    /etc/skel/    (就是创建用户时家目录中出现的文件,用户的家目录中的文件就是从这拷贝来的)

----------------------------------------------------------------
    用户管理命令:
  useradd---添加用户
参数:
    -u 指定用户UID
    -d 指定家目录
    -c 用户说明
    -g 指定初始组
    -G 指定用户的附加组
    -s 指定用户登录的shell,默认是/bin/bash
    -m 指定用户的家目录,若不存在,则创建一个
    用户默认值文件:
    /etc/default/useradd    ---创建用户的默认属性
    /etc/login.defs ---密码有效期文件

  adduser---添加用户脚本
    可以添加完整的目录

  passwd----修改或添加用户密码
参数:
    -S 查询用户密码的密码状态
    -l 暂时锁定用户 -u 解锁用户
  usermod---修改用户信息
 
  whoami---查看当前用户

  change----修改用户密码状态

  userdel---删除用户   -r 删除用户同时删除用户家目录

  su--------用户切换
    注意:直接使用su并不能全部切换为切换的用户
    参数:
    - 选项只使用"-"代表连带用户环境变量一起切换
    -c 仅执行一次命令,而不切换用户身
    
    手动删除用户:
    vi /etc/passwd
    vi /etc/shadow
    vi /etc/group
    vi /etc/gshadow
    rm -rf /var/spool/mail/用户名
    rm -rf /home/用户名

  id---查看用户ID
  env---查看环境变量

    用户组管理命令:
  groupadd---添加组
  参数:
    -g      指定GID
  groupmod---修改组
    -g      修改组GID
    -n      修改组名
    
  groupdel---删除组
  gpasswd---把用户添加入组或从组里删除
    -a 把用户加入组
    -d 把用户从组中删除
-----------------------------------------------------------
    权限管理
    ACL权限:
  查看分区ACL权限是否开启:dumpe2fs -h /dev/sda3 (-h仅显示超级块中的信息)
  临时开启分区ACL权限: mount -o remount,acl /
  永久开启ACL权限:修改 /etc/fstab
  重新挂载文件系统 mount -o remount /

  getfacl + 目录---查看ACL
  setfacl----设定ACL权限命令
  参数:
    -m 设定ACL权限
    -x 删除指定的ACL权限
    -b 删除所有的ACL权限
    -d 设定默认ACL权限
    -k 删除默认ACL权限
    -R 递归设定ACL权限
  例如: setfacl -m u:用户名:rwx 目录 //给用户
        setfacl -m g:组名:rwx 目录   //给组

    最大权限mask:
  mask是用来指定最大有效权限的.如果我妈给用户赋予ACL权限,是需要
和mask的权限"相与"才能利亚到用户的真正权限
  例如: setfacl -m m:rx 目录/文件

    删除ACL: setfacl u:用户名 目录/文件
    
    递归ACL权限: setfacl -m  u:用户名:权限 -R  目录 注意:-R 只能在后面
  默认ACL权限: setfacl -m d:u:用户名:权限 -R  目录 (防止子目录中产生的新文件没有该用户的ACL权限)

-----------------------------------------------------------
    文件特殊权限
    SetUID (灵魂附体,只能是对可执行文件有效)
    chmod 4755 文件名 4代表是SUID
    chmod u+s  文件名 2代表是SGID
              1代表是SID
    可利用修改一些命令文件,可获得暂时的root身份
    取消SUID: 直接输入 chmod 755 文件名
    
    SetGID(暂时升级为组的该文件的所属组)
    chmod g+s 目录/文件名

    Sticky BIT------SBIT
    chmod 1755 目录
    chmod o+t  目录

技巧: echo 文本内容 >> 文件 -----向文件中写入数据
  文件系统属性权限:chattr[+-=][选项] 文件/目录
  选项:
    -i 如果对文件设了i属性,那么对文件不能修改,也对root有效
    -a 只能增加文件内容,其他不能做其他的
  lsattr---查看文件系统属性权限
  参数:
    -a 显示所有文件和目录
    -d 仅显示目标目录或文件
    
    系统命令权限: sudo
  描述:把本来只能超级用户的执行命令赋予普通命令执行
  操作对象是系统命令

  visudo---实际修改的是/etc/sudoers文件
  例如:
    用户名 ALL=/sbin/shutdown -r now
    sudo -l 可查看可用的sudo命令
  使用: sudo /sbin/shutdown -r now
-----------------------------------------------------------

    文件管理
  mount---挂载
  语法: mount [-t 文件系统] [-L 卷标名] [-o 特殊选项] 设备名 挂载点
  参数:
    -a 根据 /etc/fstab的内容,自动挂载
    -t 加入文件系统类型来指定挂载类型,可以以ext3,ext4,iso9660等文件系统
    -L 卷标名:挂载指定卷标的分区,而不是安装设备文件名挂载
    -o 特殊选项:可以指定挂载的额外选项
    常见额外选项:
    remount  rw/ro  exec/noexec

    fdisk分区-自动挂载与fstab文件修复
  fstab文件: /etc/fstab 开机自动挂载文件
    第1字段:UUID/设备文件名
    第5字段:分区是否被dump备份0代表不备份,1代表每天备份,2代表不定期备份
    第6字段:指定分区是否被fsck检测,0代表不检测,其他数字代表检测的优先级,那么当然1的优先级比2高

!!!!!!!    注意:若手动修改/etc/fasab文件之后,写之后记得去使用 mount -a命令来自动挂载,防止下次开机系统崩溃.
    若系统出错后,一般进入只读状态,使用命令:mount -o remount,rw /进行重新挂载

  df---文件系统查看
  参数:
    -a 显示所有文件系统信息,包括特殊文件系统,如/proc,/sysfs
    -h 使用习惯单位显示容量,如KB,MB或GB等
    -T显示文件系统类型
    -m 以MB为显示单位
    -k 以KB为显示单位
  du---查看文件总的大小
    注意:ls命令只能查看本目录和子目录下的文件名大小之和
  常用: du -sh 目录

  fsck---文件系统修复命令
  参数:
    -a 不用显示用户提示,自动修复文件系统
    -y 自动修复.和-a作用一致,不过有些文件系统只支持-y
    
  dumpe2fs---显示磁盘状态命令

  分区命令:
    fdisk
  参数:
    -l 显示分区信息    

!!! 注意: 在分区之后要得重新读取分区表信息
    命令: partprobe

  格式化命令:
    mkfs -t ext4 /dev/sdb1
  注意:拓展分区不能格式化

  分配swap
  free-查询swap占用情况
  fdisk中使用l查看ID,swap为82,分配好内存分区后,使用t来改变该分区的ID,改为swap.
  修改之后使用命令mkswap 来格式化该分区
  改好之后可使用swapon /dev/sdb6 来挂载swap(暂时)
  spwaoff可来umount swap
  若想永久修改,可修改 /etc/fstab 按着要求填写

-----------------------------------------------------------
        shell基础

    环境变量
  source---重新读取配置文件
  source等效于'.'
  . 配置文件 or source 配置文件
  shell支持的配置文件: /etc/shells

    shell 脚本
  如何run shell脚本:
  1-使用绝对路径 2-使用相对路径 3-bash + 当前目录下的shell脚本
  在shell脚本中必写:#!/bin/bash ---告诉计算机这是shell脚本

  windows中编写的shell脚本的回车符是M$,而Linux是$,这造成了
windows和linux不兼容,使用命令 dos2unix可以改变格式.:

  echo---打印字符串在终端
  参数:
    -e 支持反斜线控制的字符转换
  若想颜色输出: echo -e "\e[1;31m abcd \e[0m"
  30m=黑色 31m=红色 32m=绿色 33m=黄色
  34m=蓝色  35m=洋红 36m=青色 37m=白色
 
  history---历史命令
  参数:
    -c 清楚历史
    -w 把缓存历史命令写入保存中 ~/.bash_history
  历史命令默认保存1000条 可以在环境变量配置文件/etc/profile中修改
  历史命令的调用:
  使用上下键,!n 执行第n行命令 !!重复执行上一条,!字符串

    命令的别名 ~/.bashrc
  alias 别名='原命令'    ---设定别名
  alias 查询别名
  让别名永久生效:修改 ~/.bashrc
    命令执行顺序
  1---绝对路径\相对路径
  2---别名
  3---bash内部命令
  4---$PATH环境变量 查看---echo $PATH
 
---------------------------------------------------------------
    多命令执行顺序
  命令1;命令2   命令1&&命令2    命令||命令2
   顺序执行      逻辑与    逻辑或

  dd if=输入文件 of=输出文件 bs=字节数 count=个数
 
    管道符
  命令1 | 命令2  ---命令1的正确输出作为命令2的输入
  例如:分屏显示:  ls -al /etc | more

  grep---搜索内容
    -i 忽略大小写
    -n 输出行号
    -v 反向查找
    --color=auto 搜索出的关键字用颜色显示
 例如: netstat -an | grep "ESTABLISHED"  查看多少人连接
---------------------------------------------------------------
  PATH
  PS1
  Position Variale
  $n $ $@ $#
 
  predefine variable
  $?  $$ $!

  read---receive input from keyborad
    -r show imformation
    -t time
    -n the number of words
    -s hide the data of input
 -------------------------------------------------------------
     数值运算与运算符
   declare---声明变量类型
    - :给变量设定类型属性
    + :取消变量类型的属性
    -i:给变量声明为整数型(integer)
    -x:给变量声明为环境变量
    -p:显示指定变量的被声明类型
  例:a=1;b=2;declare -i c=$a+$b;echo $c
  使用expr或let数值运算工具
  例:a=1;b=2;c=$(expr $a + $b)
  注:+号的左右两侧必须有空格

 法三:(常用)
  $((运算式))或$[运算式]
---------------------------------------------------------------
    变量的测试与变量的替换
    x=${y-New_Value}
    x=${y:-New_value}
    x=${y+New_value}
    x=${y:+New_value}
    x=${y=New_value}
    x=${y:=New_value}
    x=${y?New_value}
    x=${y:?New_value}
---------------------------------------------------------------
    环境变量的配置文件
  /etc/profile
  USER
  LOGNASME
  MAIL
  PATH
  HOSTNAME
  HISTSIZE
  HISTSIZE

  /etc/profile.d/*.sh
 
  ~/.bash_profile
  ~/.bashrc
  /etc/bashrc

---------------------------------------------------------------
  Shell欢迎信息:  /etc/issue  /etc/issue.net (登录前)
  /etc/issue  (本地生效)
  \d 显示当前系统日期
  \s 显示操作系统名称
  \l 显示登录的终端号(比较常用)
  \m 显示硬件结构体系
  \n 显示主机名
  \o 显示域名
  \r 显示内核版本
  \t 显示当前系统时间
  \u 显示当前登录用户的序列号

  /etc/issue.net (远程生效)
  转义符不生效,只能为纯文本
  是否显示欢迎信息,有SSH的配置文件/etc/ssh/sshd_config决定
  加入"Banner /etc/issue.net"行才能显示,(重启SSH服务) service sshd restart

  /etc/motd(登录后)
---------------------------------------------------------------
    正则表达式与通配符
  正则表达式
  用来在文件中匹配符合条件的字符串,正则是包含匹配.grep,awk,sed

  Linux通配符号:* ? []
  通配符用来匹配符合条件的文件名,通配符是完全匹配.ls,find,cp
这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了.

---------------------------------------------------------------
        shell编程
  cut---截取字符段截取命令
  printf---格式化输出

--------------------------------------------------------------
    服务管理
  RPM包安装服务
  chkconfig --list  查看自启动服务状态  0~6 代表Linux的运行级别
  ps aux  查看进程
  源码包安装服务:
  安装位置默认: usr/local
--------------------------------------------------------------
    shell 操作
    Ctrl+p    //上一行命令
    Ctrl+n      //下一行命令
    Ctrl+b    //光标向后移动
    Ctrl+f      //光标向前移动
    Ctrl+a    //光标移动到行首
    Ctrl+e      //光标移动到行未
    Ctrl+h      //backspace    
    Ctrl+j    //Enter 回车
    Ctrl+i      //TAb键
    Ctrl+d    //Delete
    Ctrl+u    //删除光标前面的内
--------------------------------------------------------------

    vim

    文本编辑器Vim
  进入插入模式:
    a 在光标所在字符后插入
    A 在光标所在行尾插入
    i 在光标所在字符前插入
    I 在光标所在行首插入
    o 在光标下插入新行
    O 在光标上插入新行

  定位命令:
    set nu 设置行号
    set nonu 取消行号
    gg  到第一行
    G   到最后一行
    nG  到第n行
    n   到第n行
    $   移至行尾
    0   移至行首
  删除命令:
    x   删除光标标所在处字符
    nx  除光标所在后n个字符
    dd  删除光标所在行
    ndd 删除光标所在的n行
    dG  删除光标删除光标所在行到文件末尾内容
    D   删除光标所在处到行尾内容
    nl,n2d  删除指定内容
  复制和剪切命令:
    yy   复制当前行
    nyy  复制当前行的以下n行
    dd   剪切当前行
    ndd  剪切当前行以下n行
    p,P  粘贴在当前光标所在行下或行上
  替换和取消命令:
    r    取代光标所在字符
    R    从光标所在处开始替换字符,按Esc结束
    u    撤销

    /string  搜索指定字符串,若搜索时忽略大小写:set ic
    n     搜索
    s/old/new/g      替换当前行
    %s/old/new/g     全文替换指定字符串
    n1,n2s/old/new/g 在一定范围内替换指定字符串
    
    !cmd ----(执行shell命令)
    
    分屏操作:

    水平分屏: sp + file
    垂直分屏: vsp + file
    切换屏幕:   Ctrl +ww
    保存并全部退出: wqall 后加all
    
    保存和退出命令:
    w    保存修改
    w new_filename 保存为指定文件
    wq   保存修改并退出
    ZZ   快捷键,保存修改并退出
    q!   不保存修改退出
    wq!  保存修改并退出(文件所有者及root可使用)

    vim使用技巧
    r !命令     导入命令执行结果
    map 快捷键 触发命令    定义快捷键
    例如:
    map ^P I#<ESC>
    map ^B 0x
    连续注释技巧:
    n1,n2s/^/内容/g
    n1,n2s/^#//g
    n1,n2s/^/\/\//g    (使用转义符\)
    替换
    ab 输入内容 变成内容
    
    若想永久保存自定义命令或快捷键,修改用户目录下.vimrc配置文件

      自动对齐: gg=G

  找到 '{' 对应的 '}':   光标选中然后%
--------------------------------------------------------------

  系统命令:

  e2lable--- 改变磁盘卷标

  用法  e2lable [interface] [name]

  例: e2lable /dev/sda2  home

 Ubuntu 开启图形化界面与关闭

systemctl set-default multi-user.target   #关闭图形界面
systemctl set-default graphical.target    #打开图形界面
 
关闭:在图形界面下 终端输入 sudo service lightdm stop
 
开启:在命令行输入:sudo service lightdm start

查看系统资源上限:

  ulimit -a
    

posted @ 2019-12-18 21:03  i0gan  阅读(726)  评论(0)    收藏  举报