Linux命令学习过程笔记

来源:互联网 发布:淘宝房间吸顶灯 编辑:程序博客网 时间:2024/05/23 18:40
  • cd:切换目录 (用法:cd / 切换到根目录)
  • mkdir:创建文件夹目录 (用法:mkdir /data 在根目录下创建一个data的文件夹)
    • -p 创建目录,若无父目录,则创建(parent)
  • touch:创建空文件 (用法:touch a.txt 在当前路径下创建一个a.txt的空文件)
  • pwd:显示当前所在路径
  • ls:显示文件或目录
    • -l 列出文件详细信息(list)
    • -a 列出当前目录下所有文件及目录,包括隐藏的a(all)
    • -t 用文件和目录的更改时间排序
    • -r 反序排列输出目录内容列表
    • -i 显示文件索引节点号
  • cat : 显示和连接一个或多个文件至标准输出(用法: cat file 将file文件中的内容输出显示)
    • -n 输出时显示行号
  • head:显示文件的头n行,通常加参数-n(不带参数默认显示头10行,用法 head -10 file 显示file文件前10行内容)
    • -n 显示文件的头多少行
  • tail:显示文件的尾n行,与head对应,通常加参数-n(不带参数默认显示尾10行)
    • -n 显示文件的头多少行
  • cp [ -p ] [ -r ] 文件 1 [ 文件 2 …] 目标
    [说明]: 将文件1(文件2 …)拷贝到目标上,目标不能与文件同名, 若目标是文件名,则拷贝的文件只能有一个,若目标是目录, 则拷贝的文件可以有多个,若目标文件不存在,则建立这个文件,若存在,则覆盖其以前的内容,若目标是目录,则将文件拷贝到这个目录下。
    • -i 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止
    • -p 不仅拷贝文件内容,还有修改时间,存取模式,存取控制表, 但不拷贝UID 及 GID
    • -r 若文件名为目录,则拷贝目录下所有文件及子目录和它们的文件,此时目标必须为目录
  • mv 命令
    [语法]: mv [-f] [-i] [文件1] [文件2…] 目标
    [说明]: 将文件移动至目标,若目标是文件名,则相当于文件改名

    • -i 在覆盖已存在文件时作提示,若回答 y 则覆盖,其他则中止
    • -f 覆盖前不作任何提示
      [例子]:
      %mv file1 file2 将文件 file1 改名为 file2
      %mv file1 file2 /tmp 将文件 file1 和文件 file2 移动到目录/tmp
  • rm命令
    [语法]: rm [-f] [-i] 文件… 或 rm -r [-f] [-i] 目录名… [文件]
    [说明]: 用来删除文件或目录

    • f 删除文件时不作提示
    • r 递归地删除目录及其所有子目录
    • i 删除文件之前先作提示
      [例子]:
      %rm file1 删除文件 file1
      %rm -i /tmp/* 删除目录 /tmp 下的所有文件
      %rm -r /mytmp 递归地删除目录 /mytmp
  • touch 命令
    [语法]: touch [-amc] [mmddhhmm[yy]] 文件…
    [说明]: 将指定文件的访问时间和修改时间改变,若指定文件不存在则创建之,若无指定时间,则使用当前时间,返回值是未成功改变时间的文件个数,包括不存在而又未能创建的文件。

    • -a 只改变访问时间
    • -m 只改变修改时间
    • -c 若文件不存在,不创建它且不作提示
    • -mmddhhmm[yy] 两位表示 月日时分[年]
      [例子]:
      %touch file 更新文件file的时间
      %touch 0701000097 HongKong 将文件HongKong的时间改为97年7月1日0时0分
  • chmod 命令
    [语法]:chmod [-R] 模式 文件… 或 chmod [ugoa] {+|-|=} [rwxst] 文件…
    [说明]: 改变文件的存取模式,存取模式可表示为数字或符号串。
    [例子]:
    %chmod 0666 file1 file2 将文件 file1 及 file2 置为所有用户可读可写
    %chmod u+x file 对文件 file 增加文件属主可执行权限
    %chmod o-rwx 对文件file 取消其他用户的所有权限

  • find 命令
    [语法]: find 路径名… 表达式
    [说明]: find 命令递归地遍历指定路径下的每个文件和子目录,看该文件是否能使表达式值为真。

    • -name 模式 文件名与模式匹配则为真。
    • -type 类型(d:目录、f:文件)
    • -mtime 根据时间查找(+2:2天以前、-2今天算起,前两天内、2从今天算起,前面的第二天)
      [例子]:
      %find / -name host* -print
      从根目录开始搜索文件名如 host* 的文件并显示之。
  • grep 命令
    [语法]: grep [options] 模式 [文件…]
    [说明]: 在指定的文件中搜索模式,并显示所有包含模式的行,模式是一个正则表达式,在使用正则表达式时,最好将其引在单引号(’)中,若指定文件为缺省,则使用标准输入,正则表达式可以是:
    grep [options]

    [options]主要参数:

    • -c:只输出匹配行的计数。
    • -I:不区分大 小写(只适用于单字符)。
    • -h:查询多文件时不显示文件名。
    • -l:查询多文件时只输出包含匹配字符的文件名。
    • -n:显示匹配行及 行号。
    • -s:不显示不存在或无匹配文本的错误信息。
    • -v:显示不包含匹配文本的所有行。
      pattern正则表达式主要参数:
    • \: 忽略正则表达式中特殊字符的原有含义。
    • :匹配正则表达式的开始行。
    • $: 匹配正则表达式的结束行。
    • \<:从匹配正则表达 式的行开始。
    • >:到匹配正则表达式的行结束。
    • [ ]:单个字符,如[A]即A符合要求 。
    • [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    • 。:所有的单个字符。
    • *:有字符,长度可以为0

[例子]:
%grep ‘good’ * 在所有文件中搜索含有字符串 good 的行
%grep ‘^myline’ mytext 在文件mytext中搜索行首出现myline字符串的行。

  • sed 命令
    [语法]:sed [-nefr] [动作]
    选项与参数:
    • -n :使用安静(silent)模式。取消默认输出,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
    • -e :直接在命令列模式上进行 sed 的动作编辑;
    • -f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;
    • -r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)
    • -i :直接修改读取的文件内容,而不是输出到终端。
    • Sed替换方式为 s#原内容#新内容#g
      find / -type f -name 97.txt |xargs sed -i s#972579#97#g
      [例子]:
      [root@97 data]# sed /972579/p 97.txt
      972579
      972579
      456
      789
      123
      [root@97 data]# sed -n /972579/p 97.txt
      972579
  • awk命令(简单用法)
    [语法]:awk ‘{pattern + action}’ {filenames}
    [例子]:
    [root@wr data]# awk ‘{if(NR>19&&NR<31) print $0}’ a.txt
    显示 a.txt文件中 20-30行的内容
    筛选包含数字9的行
    [root@97 data]# awk /9/ 97.txt
    显示以:为分隔符的第一列信息
    [root@wr data]# awk -F ‘:’ ‘{print $1}’ /etc/passwd

  • 2.1.1 who 显示系统中的用户
    [语法]:
    who
    who am i
    [说明]:
    列出现在系统中的用户,who am i 显示自己。

  • 2.1.2 whodo 显示系统中用户及进程
    [语法]:whodo [-h] [-l] [用户]
    [说明]:显示系统中用户及进程,若指定用户,则只列出该用户的信息:

    • -h 不显示头部信息
    • -l 长列表格式输出
  • 2.1.3 passwd 修改密码
    [语法]:passwd [用户]
    [说明]: 修改密码,指定用户则修改指定用户密码

  • 2.3.2 ps 查看进程状态
    [语法]:ps [ -efl] [ -t 终端表] [ -u 用户表] [ -g 组表]
    [说明]: 显示出有关进程的状态

    • -e 显示出现在正在运行的所有进程
    • -f 显示所有信息
    • -l 产生一个长列表
    • -t 显示指定终端进程
    • -u 显示指定用户进程
    • -g 显示指定组进程
  • 2.3.3 at在指定时间执行进程
    [语法]:at [-f 命令文件] [-m] [-q 队列] -t 时间
    [说明]: at命令由cron管理,在未来一个指定的时间内执行一组命令,命令可以从指定文件读入,也可从键盘读入,从键盘读入时以EOF结束。(通常为Ctrl+d)

    • -f 从指定命令文件中读入命令
    • -m 命令执行完后给用户发邮件
    • -q 将命令放入指定队列
    • -t 指定时间 指定的时间格式为 [[CC]YY]MMDDhhmm[ss],CC表示年的前两位,YY表示年的后两位,MM表示月,DD表示日,hh表示时,mm表示分,ss表示秒。
  • 2.4.6 tar文件归档
    [语法]:tar -c[vwfbL] [设备] [块] 文件…
    tar -r[vwfbL] [设备] [块] 文件…
    tar -t[vfL] [设备] [文件…]
    tar -u[vwfbL] [设备] [块] 文件…
    tar -x[lmovwfL] [设备] [文件…]
    [说明]: 将多个文件归档

    • -r 附加方式归档
    • -x 抽取文件
    • -t 显示文件
    • -u 附加方式归档,同时删除旧版文件
    • -c 建立新档案文件
    • -v 显示所处理的文件名
    • -w 处理文件前,要求用户确认
    • -f 文件名 使用指定文件名作为档案文件
    • -bn 每次读写 n 块,缺省值为1,最大值为20
    • -m 将新的文件修改时间设为获取时的时间
    • -o 获取出来的文件以下达tar指令的UID和GID存储
      [例子]:
      %tar cvf file.tar * 将当前目录下所有文件及子目录打包到文件file.tar
      %tar tvf file.tar 察看打包文件file.tar中的内容
  • vimdiff 比对文件内容 用法: vimdiff a.txt b.txt c.txt(比较a.txt b.txt c.txt 文件内容区别)

  • wget linux 从互联网上下载文件 后接下载路径 文件下载位置默认为当前文件路径

  • grep -E 过滤多个 用|隔开 用法 grep -E “a|B|c” a.txt(将a.txt中含有a.B.c的行打印出来) -i 不区分大小写 -v 排除过滤。符合条件的不打印

-which 加命令 查看命令位置(命令全路径) 用法 which cp : /bin/cp

-PATH 环境变量(大写) 所有包含在环境变量里面的路径 都可以直接执行 用法 PATH中有 cat(bin路径中含有cat) 便可以直接使用cat命令

-chatter 改变文件属性 +i给文件上锁,不能访问 -i解锁使其能够访问(用于Linux安全)

-lsatter 查看文件属性

-file 查看文件类型(linux 普通文件分为:1.ascii 文件,二进制文件,data类型文件)

-wc 得到文件的字节数,字符串数,行数

-groups 972579 ; 查看972579这个用户是哪个组内的成员

-shotdown 关机 -r 后接参数,表示延迟多少分钟关机

-tail -f 或者 tailf 可以跟踪一个文件末尾发生的改变

-cut 按列切割|-d指定分隔符,-f数字选列,-c按字符