linux暑期实践1-字符界面与常用命令

man 帮助命令

命令语法

man [选项] 命令名称
-M, -P, -a, -d, -f, -p, -w

应用

$ man ls

LS(1)                            User Commands                           LS(1)

NAME
   ls - list directory contents

SYNOPSIS
   ls [OPTION]... [FILE]...

DESCRIPTION
   List  information  about  the FILEs (the current directory by default).  Sort entries
   alphabetically if none of -cftuvSUX nor --sort.

   Mandatory arguments to long options are mandatory for short options too.
...



help 帮助命令

命令语法:

[命令]  --help

应用

$ ls --help

Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort.

Mandatory arguments to long options are mandatory for short options too.
-a, --all                  do not ignore entries starting with .
-A, --almost-all           do not list implied . and ..
  --author               with -l, print the author of each file
-b, --escape               print octal escapes for nongraphic characters
  --block-size=SIZE      use SIZE-byte blocks.  See SIZE format below



info 帮助命令

命令语法:

info [选项] 命令名称

应用

$ info ls

File: coreutils.info,  Node: ls invocation,  Next: dir invocation,  Up: Directory listing

10.1 `ls': List directory contents
==================================

The `ls' program lists information about files (of any type, including
directories).  Options and file arguments can be intermixed
arbitrarily, as usual.



help、man和info工具的区别

  • “–help”是一个工具选项,大部分的GNU工具都具备这个选项,“–help”选项可以用来显示一些工具的信息
  • Man工具可以显示系统手册页中的内容,这些内容大多数都是对命令的解释信息。通过查看系统文档中的man页可以得到程序的更多相关主题信息和Linux的更多特性。
  • Info工具是一个基于菜单的超文本系统,由GNU项目开发并由Linux发布。info工具包括一些关于Linux shell、工具、GNU项目开发程序的说明文档。



pwd 输出当前工作目录的绝对路径

命令语法

pwd

应用

[Yecaijia_2014150087@localhost codeInPPT]$ pwd
/home/Yecaijia_2014150087/Documents/codeInPPT



cd change directory 更改工作目录

命令语法

cd [目录名]

应用

[Yecaijia_2014150087@localhost codeInPPT]$ cd   
[Yecaijia_2014150087@localhost ~]$
[Yecaijia_2014150087@localhost ~]$ cd Documents/
[Yecaijia_2014150087@localhost Documents]$



ls 打印指定目录里的文件和文件夹清单

命令语法

ls [选项] [目录或文件]

主要选项:
-a:列出目录下的所有的文件,包括以.开头的隐含文件
-A:显示除了”.”和”..”外的所有文件
-b:把文件名中不可输出的字符用反斜杠加字符编号的形式列出
-c:输出文件的i节点的修改时间,并以此排序
-d:将目录象文件一样显示,而不是显示其下的文件
-F:在每个文件名后附上一个字符以说明该文件的类型
      *:可执行的普通文件   /: 目录    @:符号连接
      |:表示FIFO       =:  套接字(sockets)
-i:输出文件的i节点索引信息
-l:列出文件的详细信息

应用

ls 缺省:

[Yecaijia_2014150087@localhost codeInPPT]$ ls
code_c1_p20_1    code_c1_p20_2    code_c2_p18    code_c2_p21    code_c4_p17      code_c4_p17.c
code_c1_p20_1.c  code_c1_p20_2.c  code_c2_p18.c  code_c2_p21.c  code_c4_p17_2.c

--------------------------------------------
[Yecaijia_2014150087@localhost codeInPPT]$ ls -la
total 72
drwxrwxr-x. 2 Yecaijia_2014150087 Yecaijia_2014150087 4096 Apr 11 04:37 .
drwxr-xr-x. 3 Yecaijia_2014150087 Yecaijia_2014150087 4096 Apr 10 01:21 ..
-rwxrwxr-x. 1 Yecaijia_2014150087 Yecaijia_2014150087 4829 Apr 10 01:39 code_c1_p20_1
-rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087  242 Apr 10 01:37 code_c1_p20_1.c
-rwxrwxr-x. 1 Yecaijia_2014150087 Yecaijia_2014150087 4865 Apr 10 01:39 code_c1_p20_2
-rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087  311 Apr 10 01:38 code_c1_p20_2.c
-rwxrwxr-x. 1 Yecaijia_2014150087 Yecaijia_2014150087 4863 Apr 10 03:08 code_c2_p18
-rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087  328 Apr 10 03:07 code_c2_p18.c
-rwxrwxr-x. 1 Yecaijia_2014150087 Yecaijia_2014150087 4739 Apr 10 03:22 code_c2_p21
-rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087   99 Apr 10 03:21 code_c2_p21.c
-rwxrwxr-x. 1 Yecaijia_2014150087 Yecaijia_2014150087 4854 Apr 10 23:15 code_c4_p17
-rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087   33 Apr 10 23:14 code_c4_p17_2.c
-rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087  140 Apr 10 23:15 code_c4_p17.c

--------------------------------------------
[Yecaijia_2014150087@localhost codeInPPT]$ ls -Fla
total 72
drwxrwxr-x. 2 Yecaijia_2014150087 Yecaijia_2014150087 4096 Apr 11 04:37 ./
drwxr-xr-x. 3 Yecaijia_2014150087 Yecaijia_2014150087 4096 Apr 10 01:21 ../
-rwxrwxr-x. 1 Yecaijia_2014150087 Yecaijia_2014150087 4829 Apr 10 01:39 code_c1_p20_1*
-rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087  242 Apr 10 01:37 code_c1_p20_1.c
-rwxrwxr-x. 1 Yecaijia_2014150087 Yecaijia_2014150087 4865 Apr 10 01:39 code_c1_p20_2*
-rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087  311 Apr 10 01:38 code_c1_p20_2.c
-rwxrwxr-x. 1 Yecaijia_2014150087 Yecaijia_2014150087 4863 Apr 10 03:08 code_c2_p18*
-rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087  328 Apr 10 03:07 code_c2_p18.c
-rwxrwxr-x. 1 Yecaijia_2014150087 Yecaijia_2014150087 4739 Apr 10 03:22 code_c2_p21*
-rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087   99 Apr 10 03:21 code_c2_p21.c
-rwxrwxr-x. 1 Yecaijia_2014150087 Yecaijia_2014150087 4854 Apr 10 23:15 code_c4_p17*
-rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087   33 Apr 10 23:14 code_c4_p17_2.c
-rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087  140 Apr 10 23:15 code_c4_p17.c

--------------------------------------------
[Yecaijia_2014150087@localhost codeInPPT]$ ls -ila
total 72
262087 drwxrwxr-x. 2 Yecaijia_2014150087 Yecaijia_2014150087 4096 Apr 11 04:37 .
261655 drwxr-xr-x. 3 Yecaijia_2014150087 Yecaijia_2014150087 4096 Apr 10 01:21 ..
262098 -rwxrwxr-x. 1 Yecaijia_2014150087 Yecaijia_2014150087 4829 Apr 10 01:39 code_c1_p20_1
262097 -rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087  242 Apr 10 01:37 code_c1_p20_1.c
262096 -rwxrwxr-x. 1 Yecaijia_2014150087 Yecaijia_2014150087 4865 Apr 10 01:39 code_c1_p20_2
262091 -rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087  311 Apr 10 01:38 code_c1_p20_2.c
262099 -rwxrwxr-x. 1 Yecaijia_2014150087 Yecaijia_2014150087 4863 Apr 10 03:08 code_c2_p18
262102 -rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087  328 Apr 10 03:07 code_c2_p18.c
262100 -rwxrwxr-x. 1 Yecaijia_2014150087 Yecaijia_2014150087 4739 Apr 10 03:22 code_c2_p21
262103 -rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087   99 Apr 10 03:21 code_c2_p21.c
262104 -rwxrwxr-x. 1 Yecaijia_2014150087 Yecaijia_2014150087 4854 Apr 10 23:15 code_c4_p17
262105 -rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087   33 Apr 10 23:14 code_c4_p17_2.c
262107 -rw-rw-r--. 1 Yecaijia_2014150087 Yecaijia_2014150087  140 Apr 10 23:15 code_c4_p17.c

ls 信息

文件属性 硬链接数/子目录数 文件拥有者 文件拥有者所在组 文件大小 创建月份 创建日期 创建时间 文件名
-rw-rw-r–. 1 Yecaijia_2014150087 Yecaijia_2014150087 140 Apr 10 23:15 code_c4_p17.c

第一个符号:

符号 意义
d 目录
- 常规文件
b 块类型特殊文件
c 字符型特殊文件
s 套接字
l 链接
p 管道

文件读写属性:

(rwx) (rwx) (rwx)
owner group others

- r 表示允许读(查看文件中的数据)
- w 表示允许写(修改文件以及删除)
- x 表示允许“执行”(运行程序)



touch 文件新建、修改文件时间

命令格式

touch [选项] 文件

主要选项:
-a   或--time=atime或--time=access或--time=use  只更改存取时间。
-c   或--no-create  不建立任何文档。
-d  使用指定的日期时间,而非现在的时间。
-f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m   或--time=mtime或--time=modify  只更改变动时间。
-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t  使用指定的日期时间,而非现在的时间。

应用

创建不存在的文件

touch README.md
--------------------------------------------
[leif@localhost Documents]$ ls
[leif@localhost Documents]$ touch README.md
[leif@localhost Documents]$ ls
README.md

更改file2的时间,使它与file1相同

touch -r file1 file2
--------------------------------------------
[leif@localhost Documents]$ ls -la
total 8
drwxr-xr-x.  2 leif leif 4096 Apr 11 05:27 .
drwx------. 22 leif leif 4096 Apr  2 20:58 ..
-rw-rw-r--.  1 leif leif    0 Apr 11 05:26 file1
-rw-rw-r--.  1 leif leif    0 Apr 11 05:27 file2
-rw-rw-r--.  1 leif leif    0 Apr 11 05:25 README.md
[leif@localhost Documents]$ touch -r file1 file2
[leif@localhost Documents]$ ls -la
total 8
drwxr-xr-x.  2 leif leif 4096 Apr 11 05:27 .
drwx------. 22 leif leif 4096 Apr  2 20:58 ..
-rw-rw-r--.  1 leif leif    0 Apr 11 05:26 file1
-rw-rw-r--.  1 leif leif    0 Apr 11 05:26 file2
-rw-rw-r--.  1 leif leif    0 Apr 11 05:25 README.md

将文件file1的时间记录改为2000年5月6日18点3分。

touch -c -t 200005061803.00 file1
--------------------------------------------
[leif@localhost Documents]$ ls -la
total 8
drwxr-xr-x.  2 leif leif 4096 Apr 11 05:27 .
drwx------. 22 leif leif 4096 Apr  2 20:58 ..
-rw-rw-r--.  1 leif leif    0 Apr 11 05:26 file1
-rw-rw-r--.  1 leif leif    0 Apr 11 05:26 file2
-rw-rw-r--.  1 leif leif    0 Apr 11 05:25 README.md
[leif@localhost Documents]$ touch -c -t 200005061803.00 file1
[leif@localhost Documents]$ ls -la
total 8
drwxr-xr-x.  2 leif leif 4096 Apr 11 05:27 .
drwx------. 22 leif leif 4096 Apr  2 20:58 ..
-rw-rw-r--.  1 leif leif    0 May  6  2000 file1
-rw-rw-r--.  1 leif leif    0 Apr 11 05:26 file2
-rw-rw-r--.  1 leif leif    0 Apr 11 05:25 README.md



cat 读取文件内容并且打印到标准输出

命令格式

cat [选项] 文件名
主要选项:
-n:由1开始对所有输出的行数编号
-b:同-n,对于空白行不编号
-s:当遇到有连续两行以上的空白行,就代换为一行的空白行
-E:在行尾显示$符号

应用

[leif@localhost Documents]$ cat README.md
test
test


test
test

test
--------------------------------------------
[leif@localhost Documents]$ cat -n README.md
 1  test
 2  test
 3
 4
 5  test
 6  test
 7
 8  test
--------------------------------------------
 [leif@localhost Documents]$ cat -b README.md
 1  test
 2  test


 3  test
 4  test

 5  test
 --------------------------------------------
 [leif@localhost Documents]$ cat -s README.md
 test
 test

 test
 test

 test
--------------------------------------------
[leif@localhost Documents]$ cat -E README.md
test$
test$
$
$
test$
test$
$
test$



more 分页显示文件内容

命令格式

more [选项] 文件名

主要选项:
-num:一次显示的行数
+num:从第num行开始显示
-d:提示使用者,在画面下方显示 [Press space to continue, q to quit.] ,如果使用者按错键,则会显示 [Press h for instructions.]

应用

[leif@localhost Documents]$ more README.md
test
test


test
test

test



less 回卷显示文件内容

命令格式

less [选项] 文件名

- 与more类似,不过会在新的页面显示



head 显示文件前若干行

命令格式

head [选项] 文件名

主要选项:
-q 隐藏文件名
-v 显示文件名
-c<字节> 显示字节数
-n<行数> 显示的行数

应用

[leif@localhost Documents]$ head -v README.md
==> README.md <==
test
test


test
test

test
--------------------------------------------
[leif@localhost Documents]$ head -n3 README.md
test
test

--------------------------------------------
[leif@localhost Documents]$ head -c3 README.md
tes



tail 显示文件后若干行

命令格式

tail [选项] 文件名
主要选项:
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

应用

[leif@localhost Documents]$ tail -n4 README.md
test
test

test



grep 过滤、搜索命令

格式

grep [option] pattern file

主要选项:
-a   --text   #不要忽略二进制的数据。   
-A<显示行数>   --after-context=<显示行数>   #除了显示符合范本样式的那一列之外,并显示该行之后的内容。   
-b   --byte-offset   #在显示符合样式的那一行之前,标示出该行第一个字符的编号。   
-B<显示行数>   --before-context=<显示行数>   #除了显示符合样式的那一行之外,并显示该行之前的内容。   
-c    --count   #计算符合样式的列数。   
-C<显示行数>    --context=<显示行数>或-<显示行数>   #除了显示符合样式的那一行之外,并显示该行之前后的内容。   
-d <动作>      --directories=<动作>   #当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。   
-e<范本样式>  --regexp=<范本样式>   #指定字符串做为查找文件内容的样式。   
-E      --extended-regexp   #将样式为延伸的普通表示法来使用。   
-f<规则文件>  --file=<规则文件>   #指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。   
-F   --fixed-regexp   #将样式视为固定字符串的列表。   
-G   --basic-regexp   #将样式视为普通的表示法来使用。   
-h   --no-filename   #在显示符合样式的那一行之前,不标示该行所属的文件名称。   
-H   --with-filename   #在显示符合样式的那一行之前,表示该行所属的文件名称。   
-i    --ignore-case   #忽略字符大小写的差别。   
-l    --file-with-matches   #列出文件内容符合指定的样式的文件名称。   
-L   --files-without-match   #列出文件内容不符合指定的样式的文件名称。   
-n   --line-number   #在显示符合样式的那一行之前,标示出该行的列数编号。   
-q   --quiet或--silent   #不显示任何信息。   
-r   --recursive   #此参数的效果和指定“-d recurse”参数相同。   
-s   --no-messages   #不显示错误信息。   
-v   --revert-match   #显示不包含匹配文本的所有行。   
-V   --version   #显示版本信息。   
-w   --word-regexp   #只显示全字符合的列。   
-x    --line-regexp   #只显示全列符合的列。   
-y   #此参数的效果和指定“-i”参数相同。

pattern

grep的规则表达式:

符号 意义 例子
^ 锚定行的开始 ‘^grep’匹配所有以grep开头的行。

| #锚定行的结束 | 'grep’匹配所有以grep结尾的行。
. | #匹配一个非换行符的字符 | ‘gr.p’匹配gr后接一个任意字符,然后是p。
* | #匹配零个或多个先前字符 | ‘*grep’匹配所有一个或多个空格后紧跟grep的行。
.* | #一起用代表任意字符。 |
[] | #匹配一个指定范围内的字符 | ‘[Gg]rep’匹配Grep和grep。
[^] | #匹配一个不在指定范围内的字符 | ‘[^A-FH-Z]rep’匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
(..) | #标记匹配字符 | ‘(love)’,love被标记为1。
\< | #锚定单词的开始 | ‘\

POSIX字符:

为了在不同国家的字符编码中保持一至,POSIX(The Portable Operating System Interface)增加了特殊的字符类,如[:alnum:]是[A-Za-z0-9]的另一个写法。要把它们放到[]号内才能成为正则表达式,如[A- Za-z0-9]或[[:alnum:]]。在linux下的grep除fgrep外,都支持POSIX的字符类。

表达式 意义
[:alnum:] 文字数字字符
[:alpha:] 文字字符
[:digit:] 数字字符
[:graph:] 非空字符(非空格、控制字符)
[:lower:] 小写字符
[:cntrl:] 控制字符
[:print:] 非空字符(包括空格)
[:punct:] 标点符号
[:space:] 所有空白字符(新行,空格,制表符)
[:upper:] 大写字符
[:xdigit:] 十六进制数字(0-9,a-f,A-F)

应用

在文件中查找包含相应字串行

[leif@localhost Documents]$ grep "Hello" README.md
Hello
[leif@localhost Documents]$ grep Hello README.md
Hello

在文件中查找包含相应字串行并打印相应的行号

[leif@localhost Documents]$ grep -ni Hello README.md
10:Hello

在文件中查找不包含相应字串的行

[leif@localhost Documents]$ grep -vi Hello README.md
test
test


test
test

test

查询系统是否安装了gcc

[leif@localhost Documents]$ rpm -qa | grep gcc
libgcc-4.4.4-2.fc13.i686
gcc-c++-4.4.4-2.fc13.i686
gcc-gfortran-4.4.4-2.fc13.i686
gcc-4.4.4-2.fc13.i686



find 搜索指定目录的文件

命令格式

find [path] [options] [expression]
常用参数:
-name: 搜索指定文件名字的文件,支持通配符
-atime n: 搜索过去n天之内访问过的文件
-ctime n: 搜索过去n天之内修改过的文件
-group gname: 搜索指定组属的文件

通配符

符号 意义 例子
* 0到多个 /etc/g* /tmp/my*1
? 单个字符 file?
[] 与[]内任一字符相匹配 file[12]
[!] 不与括弧中的任何字符匹配 rm file[!9]

Bash对与通配符相关的字符(*、?、[、]、!)进行特殊的处理,当你需要将包含这些字符的参数输入到命令中时,需要用单引号把这些字符括起来
echo[fo]>file1 echo [fo]* > file1

你可能感兴趣的:(linux,linux)