linux 一切从根开始,一切皆文件~ 让我们从一些命令开始了解吧

基本命令

  man  command:manual;查看命令帮助手册

  ls:list;查看当前文件夹下的内容

    -a  查看所有内容,包含隐藏文件及文件夹

    -l   以列表形式显示文件及文件夹的详细信息

    -h  配合 -l 以人性化的方式显示文件及文件夹的大小

  pwd:print work directory;查看当前工作目录

  cd  [路径]:change directory;切换工作目录

    cd ~       切换到家目录

    cd          切换到家目录

    cd .(点)  切换到当前目录

    cd ..       切换到上级目录

    cd -     切换到上次所在的目录,相当于回看功能

  touch  [文件名]:新建文件

  mkdir  [目录名]:make directory;创建目录

    -p  递归创建目录

  rm  [文件名]:remove;删除指定文件

    -r  recursion;递归删除目录下的内容,删除目录时需要添加此参数

    -f  force;强制删除;忽略不存在的文件,取消提示

    -i  为了防止误删,以逐个确认要删除的文件

  clear:清屏;快捷键是 ctrl + l

  cp:copy;拷贝文件或目录

    -a  通常在复制目录时使用,它保留链接、文件属性、并递归的复制目录;简单来说,就是保持文件的原有属性

    -f   force;已经存在的目标文件直接覆盖,不会提示

    -i   交互式复制,在覆盖目标文件之前给与提示,要求用户确认

    -r   recursion;递归拷贝目录下的内容,拷贝目录时需要添加此参数

    -v  显示拷贝进度

  scp:拷贝远程文件/目录

    远程拷贝:scp TargetUserName@TargetHostIP : TargetFileName  LocalPath(Absolute  or  Relative)

    复制到远程:scp  LocalFileName  RemoteUserName@RemoteHostIP : RemoteFileName

    -r  recursion;递归拷贝目录下的内容,拷贝目录时需要

    注意:scp 的前提条件是目标主机已经安装了 openssh-server;安装命令:sudo  apt-get  install  openssh-server

  mv:move;移动、重命名

    -f  force;已经存在的目标文件直接覆盖,不会提示

    -i  交互式操作,在覆盖目标文件之前给与提示,询问是否重写

    -v  显示移动进度

  history:历史命令记录,保存在 ~/.bash_history 文件中

    history  查看历史命令

    !n       根据编号使用第n条命令

    

初级命令

  echo:回显命令,输出 echo 后面的内容,默认输出到控制台

  >:输出重定向

    如 ls > test.txt;将执行结果重定向到一个文件(会覆盖)

  >>:追加重定向

    如:ls >> test.txt;将执行结果追加到一个文件

  more:分屏显示;每次只显示一页,按空格键显示下一页,按 q 退出显示,按 h 获取帮助

  |:管道;一个命令的输出可以通过管道作为另一个命令的输入,| 的左端表示放,右端表示取

    如:ls -lh | more

  ln:链接

    硬链接:ln  源文件  链接文件

    软链接:ln  -s  源文件  链接文件

  xargs:分组

    -n  分几组

  head:默认取文件的前 10 行内容

    -n20  取前 20 行,简写为 -20

  tail:默认取文件的最后 10 行内容

    -n100  取最后 100 行,简写为 -100

    -f    动态打印,常用于动态查看日志

    例子:取文件的第 20 - 30 行内容:head  -30  /home/Desktop/test.txt  |  tail  -11

  grep:文本搜索;如果找到过滤内容,则输出包含内容的所有行(排行老三)

    -v  显示不包含匹配文本的所有行(取反)

    -n  显示行号

    -c  只输出匹配行的数量

    -i   忽略大小写

    -An  显示过滤结果及接下来的 n 行

    多个条件:

      • &          grep -n 'read' | grep 'download' | grep 'write'            过滤包含 read 和 download 和 write 内容的行
      • ||          grep -n 'read\|download\|write'            过滤包含 read 或 download 或 write 的行,(\| 表示转义 |)

    支持正则表达式:

      ^     行首,搜寻 a 开头的行;grep  -n  '^a'  1.txt

      $       行尾,搜索 z 结尾的行;grep  -n  'z$'  1.txt

      []       匹配中括号里一系列字符中的一个;grep  -n  '[AB]cd[EF]'  1.txt,那么包含 AcdE... 的行被输出

      .(点)  匹配一个非换行的字符;grep  -n  'A.A'  1.txt,那么包含 AbA, AcA... 的行被输出

  sed:行文件编辑工具(擅长对行内容进行操作)(排行老二)

    匹配条件分为两种:数字行号或者匹配关键字

    关键字匹配格式:'/keyword/'  (隔离符号 / 可以换成 @、#、!等符号)

    -n  取消默认输出

    -i   文件编辑

      i   (insert)在匹配到的内容上一行增加内容

      a  (append)在匹配到的内容下一行增加内容

      d   删除匹配的内容

      s   替换匹配到的内容

    例子:

    查看:

    • 取文件的第 20 - 30 行内容:sed  -n  '20, 30p'  /home/Desktop/test.txt

    替换:sed -i '行号s#原内容#替换后内容#列号' 文件名

    • 替换全部sed为SED          sed -i 's#sed#SED#g' sed.txt
    • 替换首每行的第1个sed为SED                    sed -i 's#sed#SED#' sed.txt
    • 替换第2行的首个SED为sed                       sed -i '2s#SED#sed#' sed.txt
    • 替换每行的第2个SED为sed                       sed -i 's#SED#sed#2' sed.txt
    • 替换第3行的第2个SED为sed                     sed -i '3s#SED#sed#2' sed.txt

    增加:sed -i '行号a\增加的内容' 文件名

    • 在第一行上增加内容(内容占一行)(不指定行数,则在每行上增加内容)                sed -i '1i\insert-1' sed.txt
    • 在第二行下增加内容                                    sed -i '2a\zengjia-2' sed.txt
    • 在1~3行上都增加内容                                 sed -i '1,3i\tongshi-2' sed.txt
    • 在1~3行下都增加内容                                 sed -i '1,3a\tongshi-2' sed.txt

    删除:sed -i '行号d' 文件名

    • 删除第4行内容                    sed -i '4d' sed.txt
    • 删除3~5行内容                   sed -i '3,5d' sed.txt

  awk:非常强大的文档编辑工具,不能能操作文件的,还能操作文件的(排行老大)

    -F  指定行的分隔符

    !     取反

    print 显示内容:

      $0    显示当前所有内容

      $n    显示当前行的第 n 内容,如果存在多个 $n,它们之间有逗号,隔开

    常见内置变量:

      FILENAME  当前输入文件的文件名,该变量是只读的

      NR       指定显示行的行号

      NF       输出最后一列的内容

      OFS       输出格式的列分隔符,缺省是空格

      FS       输出文件的列分隔符,缺省是连续的空格和 Tab 建

    例子:

    • 取文件中不包含 test 的行                         awk '!/test/' test.txt
    • 取文件的第 20 - 30 行内容                            sed  -n  'NR==20, NR==30'  /home/Desktop/test.txt
    • 打印第1列的内容                                           awk '{print $1}' awk.txt
    • 打印第一行第1和第3列内容                           awk  'NR==1 {print $1,$3}' awk.txt
    • 指定行的分隔符,查看内容                           awk -F ':' '{print $1,$7}' awk.txt
    • 设置显示分隔符,查看内容                      awk 'BEGIN{OFS=":"} {print NR,$0}' awk.txt

  find:查找文件/目录;用法:find  路径  -type  f/d  -name  test  -size  2M/+2M

    -name   按照文件名查找文件

    -perm    按照文件权限来查找文件

    -user     按照文件属主来查找文件

    -group   按照文件所属的组来查找文件

    -size   指定文件大小(或范围)来查找文件

    -type     查找某一类型的文件    

      • f    普通文件
      • d   目录
      • b    块设备文件
      • c    字符设备文件
      • p    管道文件
      • l     符号链接文件

    例子:

    • find  ./  -name  test.sh    当前目录,名称为 test.sh 的文件
    • find  ./  -name  '*.sh'     当前目录,后缀为 .sh 的文件
    • find  ./  -name  '[A-Z]*'       当前目录,以大写字母开头的文件
    • find  /tmp  -size  2M     /tmp 目录,等于2M的文件
    • find  /tmp  -size  +2M     /tmp 目录,大于2M的文件
    • find  /tmp  -size  -2M     /tmp 目录,小于2M的文件
    • find  ./  -size  +4K  -size  -5K    当前目录,大于4K,小于5K的文件
    • find  ./  -perm  777       当前目录,权限为 777 的文件或目录 

  tar:归档命令

    打包压缩:tar  [参数]  打包文件名  文件

      tar  -zcvf  test.tar.gz  *  将当前路径下所有的文件和文件夹打包并压缩到 test.tar.gz 文件中

    解压:tar  -zxvf  test.tar.gz   解压到当前路径下

      tar  -zxvf  test.tar.gz  -C  /home/ubuntu/Desktop/  解压到指定路径

  chmod:修改权限

    数字法:

字母 说明
r 读取权限,数字代号为 "4"
w 写入权限,数字代号为 "2"
x 执行权限,数字代号为 "1"
- 不具任何权限,数字代号为 "0"

如执行:chmod u=rwx, g=rx, o=r filename 就等同于:chmod u=7, g=5, o=4 filename

chmod 751 file:

  文件所有者:读/写/执行

  同组用户:读/执行

  其它用户:执行

&:后台展示符号(将一个命令从前台转到后台执行,并输出进程ID)

[root@centos7_3 ~]# sleep 5
// 界面暂停5秒
[root@centos7_3 ~]# sleep 5 &
[1] 22760
[root@centos7_3 ~]# ps -aux | grep "sleep" | grep -v auto
root 22760 0.0 0.0 107896 608 pts/0 S 10:30 0:00 sleep 5
[root@centos7_3 ~]#

    全部信息符号:2>&1

    • 1    表示正确输出的信息
    • 2    表示错误输出的信息
    • 2>&1    代表所有输出的信息

    符号示例:

      • 标准正确输出:cat test.txt 1>>true.log
      • 标准错误输出:fsdfaasdfsdfa  test.txt 2>>false.log

    案例:

      脚本内容

#!/bin/bash
echo "$0"
bad command

    1 和 2 分开使用(把正确输出追加到true.log,错误输出追加到false.log,注意空格):bash case.sh 1>>true.log 2>>false.log

    1 和 2 混合使用(把输出全部追加到 result.log):bash case.sh 1>>result.log 2>&1

管理命令

sudo   -s:切换到root用户

passwd  test:设置 test 用户的密码

exit:退出登录用户

who:查看登录用户

reboot、init6:重启

shutdown  -now、init0:立即关机

shutdown  -h 20:23:定时关机

shutdown  -h +10:十分钟后自动关机

查看内核版本

  cat  /etc/redhat-release

        [root@hahaha ~]# cat /etc/redhat-release
        CentOS Linux release 7.4.1708 (Core)

查看运行级别

  runlevel

  0  关机状态

  1  单用户

  2  多用户,但没有 NFS(网络文件系统)

  3  完整的多用户模式,命令模式,文本模式

  4  未使用

  5  x11,桌面模式

  6  重启状态

网卡

  网卡启动:ifup  网卡名称

  重启某个网卡:ifup  网卡名称  &&  ifdown  网卡名称; 千万不要只关闭网卡噢

    demo:  ifdown  enp0s3  &&  ifup  enp0s3

修改主机名

  临时修改:hostname test

  永久修改(需要重启):vim  /etc/hostname(centos7版本)  或者  使用命令 hostnamectl  set-hostname  hahaha

查看磁盘分区使用情况

  df  -h

随时补充 ~

Linux 命令集锦的更多相关文章

  1. 手把手 git建立仓库,远程推拉及常用git命令和部分Linux命令集锦

    方法一:直接在GitHub上建立一个项目,然后git clone (git address name): 此时已经建立好了一个git仓库: cd 文件夹 > 添加文件进去 >git add ...

  2. Linux命令集锦

    梳理常用的Linux命令 day1--cd命令 cd命令:(注意以下的命令,cd后均有一个空格) 1.进入盘符: cd f: 2.进入当前目录命令: cd . 3.进入指定文件夹(在进入确定盘符之后, ...

  3. Linux命令集锦:crontab命令

    Linux crontab是用来定期执行程序的命令.当安装完成操作系统之后,默认便会启动此任务调度命令.crontab命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作. 而 ...

  4. Linux命令集锦:scp命令

    scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的,可能会稍微影响一下速度.当你服务器硬盘变为只读 read on ...

  5. 有用的linux命令集锦

    http://blog.csdn.net/hackerain/article/details/7946193 1. 查看内存使用情况 free -m 2. 查看系统版本信息 sudo lsb_rele ...

  6. linux命令集锦 基于centos7---优化linux的命令

    sed -i ‘s###g’ /etc/selinux/config  3个# 用于更改selinux配置文件:sed -i 's#SELINUX=enforcing#SELINUX=disabled ...

  7. 常用Linux命令集锦-ls命令

    1.命令格式:ls [选项] [目录名] 2.常用参数 -a:列出该目录下所有文件(包含隐藏文件). -A:列出该目录下除了隐藏文件的所有文件. -l:以行显示目录下的所有文件.输出信息从左到右分别是 ...

  8. Linux命令集锦:ansible命令

    ansible 命令主要用于批量管理,来实现自动化管理.常用批量操作包括:主机分组管理.实时批量执行命令或脚本.实时批量分发文件或目录.定时同步文件等. 一.安装 ansible yum instal ...

  9. Linux命令集锦:chown命令

    chown命令改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者变成文件所属的组. 使用 chown -R liu /usr/wang //将目录/usr ...

随机推荐

  1. python @classmethod

    写在前面 写博客的时候,我发现拖延症很严重,本来昨天要开始写的,结果东看看,西翻翻,啥也没落实下来.时间过去了,口袋里的收获却寥寥无几.讨厌这样的自己.我要戒掉这个不好的毛病. 拖延症的底层原因之一是 ...

  2. 批量转换Excel转CSV文件

    本文为Excel VBA代码,可以实现将某一文件夹内的Excel文件(xls或者xlsx)另存为“逗号分隔的csv文件”.   使用条件: 1. Windows系统: 2. 已安装 MS 2007或以 ...

  3. VS中卸载Visual Assist X

    Tools=>Extensions and updates=>找到Visual Assist X 卸载:

  4. c#添加资源

    1.在项目目录下创建Resources文件夹,把需要用到的图片放到此文件夹里 2.在项目属性-资源里面添加这些图片 此时就可以在项目里看到资源文件夹及其下的图片了 3.在代码里这样使用这些图片: Im ...

  5. spring整合atomikos实现分布式事务

    前言 Atomikos 是一个为Java平台提供增值服务的并且开源类事务管理器,主要用于处理跨数据库事务,比如某个指令在A库和B库都有写操作,业务上要求A库和B库的写操作要具有原子性,这时候就可以用到 ...

  6. thymeleaf自定义属性

    例如我想给添加一个属性data-page,可以根据(SpringEL/Ognl)表达式计算获得. 需求: 期望效果 app个数大于0,有数据时链接 <xxx data-page="/a ...

  7. 使用ClientScriptManager向客户端注册脚本

    ClientScriptManager在非异步(就是说非AJAX)环境下使用的.如果要在异步环境下注册脚本应该使用ScriptManager的静态方法来注册(ScriptManager兼容异步于非异步 ...

  8. Python之汉诺塔递归运算

    汉诺塔问题是一个经典的问题.汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆 ...

  9. eNSP——配置全局地址池的DHCP

    原理: 拓扑图: 实验编址: 1.基本配置 2.配置全局地址池的DHCP Server 在R1上开启DHCP功能,使用ip pool命令创建一个全局地址池,名字自己定. 在全局地址池配置网段.掩码.租 ...

  10. el-table中通过renderHeader方法为表头添加hover等效果

    在我们的日常工作中有时候需要为element表格的表头进行自定义操作.在element官网中也有提到renderHeader方法.但是并未给出具体实现方法.现在具体说一下. 在element官网(ht ...