Skip to content

Commit

Permalink
常用基础命令
Browse files Browse the repository at this point in the history
  • Loading branch information
jaywcjlove committed Nov 6, 2016
1 parent 9773dd9 commit e281179
Showing 1 changed file with 127 additions and 7 deletions.
134 changes: 127 additions & 7 deletions Centos/常用基础命令.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ $ ind . ! -type d -print
$ ind . -type l -print
```


# ls

> 类似于dos下的dir命令
ls最常用的参数有三个: -a -l -F。
Expand All @@ -50,6 +50,7 @@ ls –F
使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@表示连结文件,这都是因为使用了-F这个参数。但是现在基本上所有的Linux发行版本的ls都已经内建了-F参数,也就是说,不用输入这个参数,我们也能看到各种分辨符号。

# cd

> 用于切换用户当前工作目录
cd aaa 进入aaa目录
Expand All @@ -63,12 +64,31 @@ cd .. 返回到当前目录下的上一级目录
> 用于显示用户当前工作目录
# mkdir 和 rmdir
> midir:创建目录 rmdir:删除目录

> midir:创建目录 / rmdir:删除目录
两个命令都支持-p参数,对于mkdir命令若指定路径的父目录不存在则一并创建,对于rmdir命令则删除指定路径的所有层次目录,如果文件夹里有内容,则不能用rmdir命令

如下:

```bash
mkdir -p 1/2/3
rmdir -p 1/2/3
```

## mkdir循环创建目录

[How do I make multiple directories at once in a directory?](http://unix.stackexchange.com/questions/636/how-do-i-make-multiple-directories-at-once-in-a-directory)

```bash
for char in {A..Z}; do
mkdir $char
done

for num in {1..100}; do
mkdir $num
done
```

# cp
> 复制命令
Expand All @@ -79,18 +99,107 @@ rmdir -p 1/2/3
- 同时拷贝多个文件,我们只需要将多个文件用空格隔开。`cp file_1.txt file_2.txt file_3.txt /home/pungki/office`

# mv

> 移动命令
将一个文件移动到另一个目录:mv 1.txt ../test1
将一个文件在本目录改名:mv 1.txt 2.txt
将一个文件一定到另一个目录并改名:mv 1.txt ../test1/2.txt

# rm命令
> rm命令用于删除文件,与dos下的del/erase命令相似,rm命令常用的参数有三个:-i,-r,-f。

> 命令用于删除文件,与dos下的del/erase命令相似,rm命令常用的参数有三个:-i,-r,-f。
1. –i :系统在删除文件之前会先询问确认,用户回车之后,文件才会真的被删除。需要注意,linux下删除的文件是不能恢复的,删除之前一定要谨慎确认。
2. –r:该参数支持目录删除,功能和rmdir命令相似。
3. –f:和-i参数相反,-f表示强制删除

# find

> find 查找目录和文件
```bash
-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查GIN: 0px">

-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 #找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 #查更改时间比f1新但比f2旧的文件
-type b/d/c/p #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查更改时间比f1新但比f2旧的文件
-type b/d/c/p #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio %; #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune #忽略某个目录
```

例子:
- ~ 代表的是$home目录,

```bash
$ find . -name '*.DS_Store' -type f -delete # 删除所有.DS_Store文件
$ find ~ -name "*.txt" -print # 在$HOME中查.txt文件并显示
$ find . -size +1000000c -print # 查长度大于1Mb的文件
$ find . -size 100c -print # 查长度为100c的文件
$ find . -size +10 -print # 查长度超过期作废10块的文件(1块=512字节)
$ find -name april* # 在当前目录下查找以april开始的文件
$ find -name april* fprint file # 在当前目录下查找以april开始的文件,并把结果输出到file中
$ find -name ap* -o -name may* # 查找以ap或may开头的文件
$ find /mnt -name tom.txt -ftype vfat # 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
$ find /mnt -name t.txt ! -ftype vfat # 在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
$ find /tmp -name wa* -type l # 在/tmp下查找名为wa开头且类型为符号链接的文件
$ find ~ -mtime -2 # 在/home下查最近两天内改动过的文件
$ find ~ -atime -1 # 查1天之内被存取过的文件
$ find ~ -mmin +60 # 在/home下查60分钟前改动过的文件
$ find ~ -amin +30 # 查最近30分钟前被存取过的文件
$ find ~ -newer tmp.txt # 在/home下查更新时间比tmp.txt近的文件或目录
$ find ~ -anewer tmp.txt # 在/home下查存取时间比tmp.txt近的文件或目录
$ find ~ -used -2 # 列出文件或目录被改动过之后,在2日内被存取过的文件或目录
$ find ~ -user cnscn # 列出/home目录内属于用户cnscn的文件或目录
$ find ~ -uid +501 # 列出/home目录内用户的识别码大于501的文件或目录
$ find ~ -group cnscn # 列出/home内组为cnscn的文件或目录
$ find ~ -gid 501 # 列出/home内组id为501的文件或目录
$ find ~ -nouser # 列出/home内不属于本地用户的文件或目录
$ find ~ -nogroup # 列出/home内不属于本地组的文件或目录
$ find ~ -name tmp.txt -maxdepth 4 # 列出/home内的tmp.txt 查时深度最多为3层
$ find ~ -name tmp.txt -mindepth 3 # 从第2层开始查
$ find ~ -empty # 查找大小为0的文件或空目录
$ find ~ -size +512k # 查大于512k的文件
$ find ~ -size -512k # 查小于512k的文件
$ find ~ -links +2 # 查硬连接数大于2的文件或目录
$ find ~ -perm 0700 # 查权限为700的文件或目录
$ find ~ -perm 755 -print | more # 查找权限为755的文件
$ find /tmp -name tmp.txt -exec cat {} \;
$ find /tmp -name tmp.txt ok rm {} \;

$ find / -amin -10 # 查找在系统中最后10分钟访问的文件
$ find / -atime -2 # 查找在系统中最后48小时访问的文件
$ find / -empty # 查找在系统中为空的文件或者文件夹
$ find / -group cat # 查找在系统中属于 groupcat的文件
$ find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
$ find / -mtime -1 # 查找在系统中最后24小时里修改过的文件
$ find / -nouser # 查找在系统中属于作废用户的文件
$ find / -user fred # 查找在系统中属于FRED这个用户的文件
```

# du、df命令

Expand All @@ -103,6 +212,7 @@ rmdir -p 1/2/3
这两个命令都支持-k,-m和-h参数,-k和-m类似,都表示显示单位,一个是k字节一个是兆字节,-h则表示human-readable,即友好可读的显示方式。

# cat命令

> cat命令的功能是显示或连结一般的ascii文本文件。cat是concatenate的简写,类似于dos下面的type命令。用法如下:
1. `cat file1` 显示file1文件内容
Expand All @@ -113,6 +223,7 @@ rmdir -p 1/2/3
如果">"左边没有指定文件,如: cat >file1,将会等用户输入,输入完毕后再按[Ctrl]+[c][Ctrl]+[d],就会将用户的输入内容写入file1。

# echo命令

> echo命令的使用频率不少于ls和cat,尤其是在shell脚本编写中。
> 语法:echo [-ne][字符串]
> 功能:echo会将输入的字符串送往标准输出,输出的字符串间以空白字符隔开, 并在最后加上换行符。
Expand All @@ -132,7 +243,8 @@ rmdir -p 1/2/3
- `/nnn` 插入nnn(八进制)所代表的ASCII字符;

示例:
```

```bash
kenny@jstest:~/hgd> echo "123" "456"
123 456
kenny@jstest:~/hgd> echo "123/n456"
Expand All @@ -153,7 +265,9 @@ kenny@jstest:~/hgd> echo -e "123/100456"
注意事项:
在Linux使用的bash下,单引号’’和双引号是有区别的,单引号忽略所有的转义,双引号不会忽略以下特殊字符:
Dollar signs ($),Back quotes (`),Backslashes (/),Excalmatory mark(!)

示例如下:

```
kenny@jstest:~> echo "`TEST`"
-bash: TEST: command not found
Expand All @@ -175,6 +289,7 @@ Hello!
```

# more,less,clear

> more,less命令
```
Expand All @@ -200,11 +315,12 @@ less的常用动作命令:
- `clear`命令 clear命令是用来清除当前屏幕显示的,不需任何参数,和dos下的cls命令功能相同。

# head,tail
- head和tail命令都用于查看文本文件,区别在于: head显示文件的头n行,tail显示文件的尾n行,缺省情况n都为10行。可以通过-n方式指定行数,如:
head -100 file和tail -100 file分别表示显示文件头100行和尾100行内容。

- head和tail命令都用于查看文本文件,区别在于: head显示文件的头n行,tail显示文件的尾n行,缺省情况n都为10行。可以通过-n方式指定行数,如:head -100 file和tail -100 file分别表示显示文件头100行和尾100行内容。
- tail -f命令可以实时查看文件新增内容。

# wc命令

该命令用于统计指定文件中的字节数、字数、行数。该命令各选项含义如下:

- -l 统计行数
Expand All @@ -216,7 +332,8 @@ less的常用动作命令:
如果命令行中没有文件名,则输出中不出现文件名。

例如:
```

```bash
oracle@hjtest:~> wc 1.txt 2.txt
460 1679 16353 1.txt
300 1095 10665 2.txt
Expand All @@ -228,6 +345,7 @@ oracle@hjtest:~> wc -l 1.txt
缺省参数为-lcw,即wc file1 file2命令的执行结果与上面一样。

# grep 命令

> grep是(global search regular expression(RE) and print out the line的缩写,用于从文件面搜索包含指定模式的行并打印出来,它是一种强大的文本搜索工具,支持使用正则表达式搜索文本。grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被””引用,模板后的所有字符串被看作文件名。搜索结果送到屏幕,不影响原文件内容。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
Expand Down Expand Up @@ -278,7 +396,9 @@ $ls | xargs rm


# basename 和 dirname

basename用于查看文件不含路径的名字,dirname则用于查看文件路径,使用效果我们测试一下便知:

```
> basename /home/hj/1.txt
1.txt
Expand Down

0 comments on commit e281179

Please sign in to comment.