Ubuntu Linux字符界面使用

一、Ubuntu关机和重启

Ubuntu的运行级别

运行级别 含义
0 所有进程中止,关闭系统
1 单用户模式,用于维护系统,只有少数进程运行
2~5 图形界面的多用户模式
6 重新启动机器

1.使用shutdown命令关闭系统

shutdown [选项]
参数说明:
[-t]在改变到其他runlevel之前,告诉init多久之后关机
[-r]重启计算机
[-k]并不真正关机,只是送警告信号给每位登录者{
    
    login}
[-h]关机后关闭电源,可以指定开机的时间
[-time]设定关机{
    
    shutdown}前的时间
sudo shutdown -h 16:00       #指定关机时间
sudo shutdown -r now         #立即重新启动
sudo shutdown -h now         #立即关机

2.使用halt命令关闭系统

halt
参数说明:
-n  在关机前不做将记忆体资料写回硬盘的动作
-w  并不会真的关机,只是把记录写到/var/log/wtmp文档里
-d  不把记录写入/var/log/wtmp文档里
-i  在关机之前,先关闭所有的网络接口
-p  该选项为默认选项,当关机时,调用关闭电源(poweroff)的动作
/home/shangyja  halt

3.reboot

reboot的工作过程跟halt差不多,不过它是引发主机重启,halt是引发关机

/home/shangyja  reboot

4.init

init是所有进程的祖先,它的进程号始终为1,。
init 0 为关机
init 6 重新引导计算机

二、 putty远程登录

1.首先在服务器端安装openssh-server

命令方式安装:
sudo apt-get install openssh-server

2.测试ssh-server是否启动

安装完成后,使用命令,确认是否已经启动

netstat-tl

3.在客户端配置putty

4.设置颜色、字体、字的大小等

三、文件操作命令

1.文件内容显示命令

1.1 cat

cat [选项] [文件名]
-n或-number  由1开始对所有输出的行数编号
-b           和-n相似,只不过对于空白行不编号
-s           当遇到有两行以上的空白行,就替换为一行的空白行
-E           -show-ends在每行结束处显示$

(1)显示文件内容到屏幕

cat interfaces

(2)显示文件内容到文件

cat a1.txt a2.txt > a3.txt          #重定向
cat a1.txt a2.txt >> a3.txt         #追加重定向

cat test1                         查看test1的内容
cat test1>test2                   将test1内容重定向到test2
cat test1>>test2                  将test1内容重定向到test2尾部
cat test1  test2 > test3          将test1和test2合并到新文件test3
cat>> test3                     从键盘输入内容到test3(按Ctrl+D退出)

$ cat > textfile <<EOF           创建textfile文件
>This is a text file.            输入内容
>I like it.                      输入内容
>EOF                             退出编辑状态
$ cat >> textfile <<EOF         向textfile文件追加内容
>really?                        所追加的内容
>yes!                           所追加的内容
>EOF                            退出编辑
$ cat text1 text2 text3 > text0     将text1 text2 text3文件内容存到text0中
$ cat text1 text2 text3 >> text4    将text1 text2 text3文件追加到text4中

1.2 more

语法:
more [文件名]

more命令选项

选项 作用
-f或<空格> 显示下一页
<回车> 显示下一行
-q或-Q 显示下一页
-f或<空格> 退出more
+num 从第num行开始显示
-num 定义屏幕大小为num行
+/pattern 从pattern前两行开始显示
-c 从顶部清屏然后开始显示
-d 提示按空格键继续,按q键退出,禁止响铃功能
-l 忽略换页(Ctrl +l)字符
-p 通过清除窗口而不是滚屏来对文件进行换页
-s 把连续的多个空行显示为一行
-u 把文件内容中的下划线去掉
$ more isolat1.ent    分页显示文件isolat1.ent的内容
$ more +5 test3            从文件的第5行开始显示
$ more -4 test3            每屏只显示4行
$ more +/2 test3           从文件中的第一个“2”的前两行开始显示
$ more -dc test3           显示提示,并从终端或者控制台顶部显示

1.3 less

语法:
less [选项] [文件名]

less命令选项

选项 作用
-m 显示读取文件的百分比
-M 显示读取文件的百分比、行号及总行数
-N 在每行前输出行号
-s 把连续多个空白行作为一个空白行显示
-c 从上到下刷新屏幕,并显示文件内容
-f 强制打开文件,禁止文件显示时不提示警告
-i 搜索时忽略大小写,除非搜索串中包含大写字母
-I 搜索时忽略大小写,除非搜索串中包含小写字母
-p字符串 从搜索到的字符串处开始显示
less  -N  English         显示文件English的内容时显示行号

1.4 head

语法:
head  [选项] [文件名]

head命令选项

选项 作用
-n 显示文件的前n行,系统默认值是10
-c 显示文件的前n行个字节
head -n 3 English  显示English文件的前3行内容
head -2 test3              显示文件的前2行
head -n 2 test3            显示文件的前2行
head -n -5 test3           显示文件除后5行以外的所有内容

1.5 tail

语法:
tail [选项] [文件名]

tail命令选项

选项 作用
-n 显示文件的最后n行,系统默认值是10
-f 不断读取文件的最新内容,达到实时监控的目的
tail  -3 test3           显示文件的最后3行
tail  -n 2 test3         显示文件的最后2行
tail  -f  test3          显示文件内容,并且不断刷新,按Ctrl+Z退出实时监控

1.6 echo

语法:
echo [选项] 字符串

echo 命令选项

选项 作用
-n 不输出末尾的换行符
-e 启用反斜杠转义
\a 发出警告声
\c 最后不加上换行符号
\f 换行但光标仍旧停在原来的位置
\nnn 插入nnn(八进制)所代表的ASCII字符
\b 退格
\ 反斜杠
\n 另起一行
\r 回车
\t 插入一个制表符的位置
\v 插入一个垂直制表符的位置
echo -e "I\nlike\nyou!"
输入"I like you!" \n表示换行

1.7 od

功能描述:
od命令用于输出文件的八进制、十六进制或其他格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符。

语法:
od [选项] 字符串
选项 作用
-a 表示ASCII码的名字
-b 按照前3个数值位的八进制数进行解释
-c 选择ASCII码字符或者是转义字符
-d 选择无符号2字节单位
-f 选择单精度浮点数
-I 等价于-t dI,选择十进制整型
-l 等价于-t dL,选择十进制长整型
-o 等价于-t o2,选择两个字节的单元并按照八进制进行解释
-s 等价于-t d2,选择两字节单元并按照十进制进行解释
-x 等价于-t x2,选择两个字节单元,并作为十六进制解释
od -b text1.doc   使用单字节八进制解决进行输出

2.目录内容显示及更改命令

2.1 ls

功能描述:
列出目录的内容,是list的简写形式

语法:
ls [选项][文件或目录]

ls命令选项

选项 作用
-a 显示所有文件,包括隐藏文件(以“.”开头的文件和目录是隐藏的),还包括本级目录"."和上一级目录“…”
-A 显示所有文件,包括隐藏文件,但不列出“.”和“…”
-b 显示当前工作目录下的目录
-l 使用长格式显示文件的详细信息,包括文件状态、权限、拥有者,以及文件大小和文件名等
-F 附加文件类别,符号在文件名后
-d 如果参数是目录,只显示其名称而不显示其下的各个文件
-t 将文件按照建立时间的先后次序列出
-r 将文件以相反次序显示(默认按英文字母顺序排序)
-R 递归显示目录,若目录下有文件,则以下的文件也会被依序列出
-i 显示文件的inode(索引节点)信息

2.2 pwd

功能描述:
显示当前工作目录的完整路径

语法:
pwd

pwd命令选项

选项 作用
-P 一般情况下不带任何参数。如果目录是链接时,显示出实际路径,而非使用链接(link)路径
pwd         查看默认工作目录的完整路径

2.3 cd

功能描述:
改变当前工作目录

语法:
cd [目录]
cd..                    返回上一级路径
cd Documents            进入/Documents目录
cd                      回到主目录
cd ~                    回到用户的主目录

3.文件创建、删除命令

3.1 touch

功能描述:
生成空文件和修改文件存储时间

语法:
touch [选项][文件名]

touch 命令选项

选项 作用
-d 以yyyymmdd的形式给出要修改的时间,而非现在的时间
-a 只更改存储时间
-c 不建立任何文档
-f 此参数将忽略不予处理,仅负责解决BSD版本指令的兼容性问题
-m 只更改变动时间
-r 把指定文档或目录的日期时间统统设成参考文档或目录的日期时间
touch touch1.doc touch2.doc               创建新文件touch1和touch2
touch -r touch touch2.doc                 将touch2.doc的文件时间更改为touch的文件时间

3.2 rm

功能描述:
删除一个目录中的若干文件或子目录
注意:
Linux与Windows不同,没有回收站,一旦删除,不能恢复

语法:
rm [选项][文件或目录]

rm 命令选项

选项 作用
-f 强制删除,忽略不存在的文件,不提示确认
-i 删除前会有提示,需要确认
-I 删除前超过3个文件时或存在递归删除时需要确认
-r® 递归删除目录及其内容(无该选项时只删除文件)
rm  -i *.doc          删除所有.doc文件,执行前系统会先询问是否删除
rm  -r test           删除目录test,及目录下的文件ax
rm  -r test1          删除目录test1,及其下的子目录和文件

4.目录创建、删除命令

4.1 mkdir

功能描述:
用来创建指定名称的目录,要求创建目录的用户在当期目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录

语法:
mkdir [选项][目录名]

mkdir 命令选项

选项 作用
-p 依次创建目录,需要时创建目标目录的上级目录
-m 设置权限模式,在建立目录时按模式指定设置目录权限
-v 每次创建新目录都显示执行过程信息
权限 数值
4
2
执行 1

-m参数的含义

参数 含义
600 只有所有者有读和写的权限
644 所有者有读和写的权限,组用户只有读的权限,其他人也只有读的权限
666 每个人都有读和写的权限
700 只有所有者有读和写以及可执行的权限
777 每个人都有读和写以及执行的权限
mkdir   c-language                    在当前目录下创建子目录c-language
mkdir   -p aaa/test                   创建子目录aaa,并在其下建立子目录test
mkdir   -vp scf/{
    
    lib/,bin/,doc/{
    
    info,product}}
创建目录scf; scf下创建目录lib、bin、doc;doc下创建目录info、product,并显示过程
mkdir -m777 test4                     创建目录test4,每个人对该目录都有读、写和执行的权限
mkdir -m700 ./cc                      创建子目录cc,只有目录的所有者具有全权

4.2 rmdir

功能描述:
删除空目录

语法:
rmdir [选项][目录列表]

rmdir 命令选项

选项 作用
-p 当子目录被删除后其父目录为空目录时,也一同被删除
-v 显示详细的步骤
rmdir   c-language                    删除当前目录下的子目录c-language
rmdir   -p aaa/test                   删除目标目录test和上级目录aaa(aaa下只有一个test子目录)
rmdir   *                             删除目录test2下的所有文件
rmdir   -v  test2                     删除目录test2并显示过程(test2不是空白目录不能删除)
rmdir   -v  test1                     删除目录test1并显示详细过程

5.复制、移动命令

5.1 cp

功能描述:
将文件或目录复制到另一文件或目录中

语法:
cp [选项][源文件或目录][目的文件或目录]
cp [选项][源文件组][目标目录]

cp 命令选项

选项 作用
-b 将要覆盖的文件做备份,但不接受参数递归时特殊文本的副本内容
-i 覆盖前查询,提示是否覆盖已存在的目标文件
-f 强制复制文件,若目标文件无法打开,则将其移除并重试
-p 保留源文件或目录的属性,如日期
-R 复制所有文件及目录
-a 不进行文件数据复制,只对每一个现有目标文件的属性进行备份
-H 跟随源文件中的命令行符号链接
-l 硬链接文件而不复制文件本身
-L 总是跟随源文件中的符号链接
-n 不要覆盖已存在的文件
-P 不跟随源文件中的符号链接
-s 只创建符号链接而不复制文件
cp test1/file1 test2                    将test1文件夹下的file1文件复制到目录test2中
cp -i a1 a2                             复制文件a1为a2,如果文件a2存在,则询问是否覆盖a2
cp -b a1 a2                             复制文件a1为a2,如果文件a2存在,则将a2覆盖并做备份
cp f1 f2 dir1                           复制文件f1和f2到目录/dir1
cp f1 f2 dir2                           复制文件f1和f2到目录/dir2,该目录不存在,则报错

5.2 mv

功能描述:
将文件或目录改名,或将文件由一个目录移入另一个目录

语法:
mv [选项][源文件或目录][目的文件或目录]

mv 命令选项

选项 作用
-f 禁止交互模式,本选项会使mv命令执行移动而不给出提示(在权限足够的情况下直接执行;如果目标文件存在但用户没有写权限时,mv会给出提示)
-i 交互模式,当移动的目录已存在同名的目标文件时,用覆盖方式写文件,但在写入之前系统会询问用户是否重写,要求用户回答y或者n,这样可以避免覆盖文件
-n 不要覆盖已存在的文件
-u 只在源文件比目标文件新或者目标文件不存在时才进行移动
-v 显示详细的步骤
cp test1/file1 test2                    将test1文件夹下的file1文件复制到目录test2中
cp -i a1 a2                             复制文件a1为a2,如果文件a2存在,则询问是否覆盖a2
cp -b a1 a2                             复制文件a1为a2,如果文件a2存在,则将a2覆盖并做备份
cp f1 f2 dir1                           复制文件f1和f2到目录/dir1
cp f1 f2 dir2                           复制文件f1和f2到目录/dir2,该目录不存在,则报错
mv -v test1/file2 test2                将test1目录中的file2文件移动到目录test2中
mv 1.txt  11.txt                       将文件2.txt更名为11.txt,原11.txt被覆盖
mv 2.txt  11.txt                       将文件3.txt更名为11.txt,覆盖原11.txt之前询问
mv -i 3.txt  11.txt                    将文件3.txt更名为11.txt,覆盖原11.txt之前询问

6.压缩、备份命令

6.1 tar

功能描述:
在Ubuntu中广泛应用的压缩解压命令,可以把许多文件打包成为一个归档文件或者把它们写入备份文件。

语法:
tar [选项][文件或目录]

tar 命令选项

选项 作用
-z 使用gzip或gunzip压缩格式处理备份文件。配合c使用是压缩,配合x使用是解压缩。
-c 创建一个新的压缩文件,格式为.tar
-v 显示过程
-f 指定压缩后的文件名
-x 从压缩文件中还原文件
-u 仅转换比压缩文件新的内容
-r 新增文件至已存在的压缩文件的结尾部分
tar -cf  aa.tar  a.txt                     将a.txt文件压缩成tar格式,并命名为aa.tar
tar -czvf  doc.tar.gz  *.doc               将目录中所有doc文件打包成doc.tar后并用gzip压缩,生成一个gzip压缩过的包,命名为doc
tar -xvf  doc.tar.gz                       将压缩包doc.tar.gz解压缩到当前目录

6.2 gzip

功能描述:
在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,压缩后的文件格式为.gz,只压缩不打包。

语法:
gzip [选项][文件]

gzip 命令选项

选项 作用
-1 是数字1,表示快速压缩
-9 9表示最佳状况压缩,其英文nine与nice的发音相似
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩
-c 压缩结果写入标准输入,源文件保持不变
-v 对每一个压缩和解压的文件,显示文件名和压缩比
-d 解压缩指定文件
-t 测试压缩文件的完整性
-l 对每个压缩文件,显示压缩文件的大小、未压缩文件的大小、压缩比、未压缩文件的名字等详细信息
gzip  -9 a.txt                以最佳压缩比压缩文件a.txt,生成a.txt.gz
gzip -d a.txt.gz              将压缩包解压缩到当前目录
gzip *                        压缩当前目录下的所有文件为.gz文件
gzip -r  Documents            压缩/Documents下的所有文件为.gz文件
gzip -dr Documents            解压缩/Documents下的所有文件   

6.3 gunzip

功能描述:
解压缩以gzip压缩的.gz文件

语法:
gunzip [选项][文件或目录]

gunzip 命令选项

选项 作用
-a 使用ASCII文字模式
-d 解压文件
-c 把解压后的文件输出到标准输出设备
-f 强行解压压缩文件,不理会文件名称或硬链接是否存在
-h 在线帮助
-l 列出压缩文件的相关信息
-L 显示版本与版权信息
-n 解压文件时,若压缩文件内容含有原来的文件名称及时间戳,则将其忽略不予处理
-p 不显示警告信息
-r 递归处理,将指定目录下的所有文件及子目录一并处理
-S 更改压缩字尾字符串
-t 测试压缩文件是否正确无误
-v 显示指令执行过程

6.4 zip

功能描述:
zip是一个压缩和归档的工具,压缩文件时使用zip命令,会创建一个带.zip扩展名的zip文件。

语法:
zip [选项][压缩文件名]

zip 命令选项

选项 作用
-f 以新文件取代现有文件
-u 只更新改变过的文件和新文件
-d 从zip文件移出一个文件
-m 将特定文件移入zip文件中,并且删除特定文件
-r 递归压缩子目录下的所有文件,包括子目录
-j 只存储文件的名称,不含目录
-1 最快压缩,压缩率最差
-9 表示最慢速度的压缩(最佳化的压缩),预设值为-6
-q 安静模式,不会显示相关讯息和提示
-v 显示版本资讯或详细讯息
zip test2.zip  test2                  将文件test2压缩为test2.zip
zip -r test.zip ./*                   将当前目录下的所有子目录和文件递归压缩为test.zip
zip -d test.zip touch                 删除压缩文件test.zip中的文件touch
zip -d test.zip test2/file2           删除压缩文件test.zip中的test2目录下的file2文件
zip -m test.zip touch                 向压缩文件test.zip中添加touch文件
zip  test.zip./* -x test2/file1       压缩当前目录下所有文件,除了test2/file1文件

6.5 unzip

功能描述:
解压缩zip文件。

语法:
zip [选项][压缩文件名]

zip 命令选项

选项 作用
-x 解压文件时,机器给出提示覆盖,若不覆盖,则重命名
-t 测试压缩文件有无损坏,并不解压
-v 查看压缩文件的详细信息,具体包括压缩文件中包含的文件大小、文件名和压缩比等,并不解压
-n 解压时不覆盖已经存在的文件
-o 解压时覆盖已经存在的文件,并且不要求用户确认
-d 把压缩文件解压到指定目录下
unzip test.zip                                      将test.zip压缩文件直接解压到当前目录
unzip -n test.zip -d/home/malimei/Documents         将test.zip解压到/home/malimei/Documents下
unzip -o test.zip -d/home/malimei/Documents         将test.zip解压到/home/malimei/Documents下,如有相同文件则覆盖
unzip -v test.zip                                   查看压缩文件test.zip,不解压

7.权限管理命令

7.1 chgrp

功能描述:
改变文件或目录的所属组。

语法:
chgrp [选项][群组][文件或目录]

chgrp 命令选项

选项 作用
-R 处理指定目录及其子目录下的所有文件
-c 当发生改变时输出调试信息
-f 不显示错误信息
-v 运行时显示详细的处理信息
-dereference 作用于符号链接的指向,而不是符号链接本身
–no-dereference 作用于符号链接本身
–reference =文件1,改变文件2所属群组,使其与文件1相同
chgrp -v bin tar1.doc                               将tar1.doc文件由malimei群组改为bin
chgrp --reference=tar2.doc  tar1.doc                改变tar1.doc文件所属群组,使其与tar2.doc相同
chgrp -R malimei test1                              递归改变目录test1及其下文件的所属群组为malimei

7.2 chown

功能描述:
change over的简写,将文件或目录的所有者改变为指定用户,还可以修改文件所属群组。

语法:
chown [选项][用户[:群组]][文件或目录]

chown 命令选项

选项 作用
-c 显示更改的部分信息
-f 忽略错误信息
-R 处理指定目录及其子目录下的所有文件,递归式地改变指定目录及其下的所有子目录和文件的拥有者
-v 显示详细的处理信息
–reference=<目录或文件> 把指定的目录/文件作为参考,把操作的目录/文件设置成参考文件/目录相同所有者和群组
chgrp -v bin tar1.doc                               将tar1.doc文件由malimei群组改为bin
chgrp --reference=tar2.doc  tar1.doc                改变tar1.doc文件所属群组,使其与tar2.doc相同
chgrp -R malimei test1                              递归改变目录test1及其下文件的所属群组为malimei

7.3 chmod

功能描述:
改变文件或目录的访问权限。

语法:
chmod [选项][模式]文件
chmod命令有两种模式:**符号模式**和**绝对模式**
选项 作用
-v 运行时显示详细的处理信息
-c 显示改变部分的命令执行过程
-f 不显示错误信息
-R 将指定目录下的所有文件和子目录做递归处理
-reference=<目录或者文件> 设置成与指定目录或者文件具有相同的权限

(1)符号模式

chmod [选项] [who] operator [permission] files

who选项

选项 作用
a all 所有用户均具有的权限
o other 除了目录或者文件的当前用户或群组以外的用户或者群组
u user 文件或目录的当前所有者
g group 文件或者目录的当前群组

operator选项

选项 作用
+ 增加权限
- 取消权限
= 设定权限

permission选项

选项 作用
r 读权限4
w 写权限2
x 执行权限1

(2)绝对模式
chmod [选项] mode files
mode代表权限等级,由3个八进制数表示。
这3位数的每一位都表示一个用户类型的权限设置,
取值是0~7,即二进制的[000]-[111]。
对应关系:

数字 权限
0 000无任何权限
1 001执行权限
2 010写权限
3 011写执行权限
4 100只读权限
5 101读、执行权限
6 110读、写权限
7 111读、写、执行权限
ls -l                          查看当前目录下所有文件及子目录的详细信息
chmod   a+x   file1            给file1文件所有用户增加可执行权限
chmod   u=x   file1            设置文件file1所有者的权限为可执行
chmod   ug+w,o-x    file1      给file1文件的所有者和文件属群增加权限,删除其他用户的执行权限
chmod   u+x,g-r,o+w  ax        为ax设置权限如下:为所有者添加执行权限,同组人去掉读权限,其他人(普通人)加上写的权限
chmod   712 a                  设置a文件的权限:所有者具有读、写和执行权限,同组人具有可执行权限,其他人具有写权限

8.文件查找命令

8.1 whereis

功能描述:
寻找命令的二进制文件,同时也会找到其帮助文件。

语法:
whereis [选项][文件名]

whereis命令选项

选项 作用
-b 定位可执行文件
-m 定位帮助文件
-s 定位源代码文件
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其他文件
-B 指定搜索可执行文件的路径
-M 指定搜索帮助文件的路径
whereis -m ls                  搜索ls的帮助文件
whereis -m find                搜索find的帮助文件
whereis -m tar                 搜索tar的帮助文件

8.2 help

功能描述:
查看命令的内容和使用方法。

语法:
help [选项][文件名]

help命令选项

选项 作用
-s 输出短格式的帮助信息,仅包括命令格式
-d 输出命令的简短描述,仅包括命令的功能
-m 仿照man格式显示命令的功能、格式及用法
help help     查看help命令的帮助文件,显示该命令的内容和使用方法                
help -s cd    查看cd命令的格式
help -d cd    查看cd命令的功能
help cd       查看cd命令的帮助信息
ls  --help    查看ls命令的帮助信息,给出了用法和各个选项

8.3 man

功能描述:
查看命令的帮助手册。

语法:
man [选项]命令名称

man命令选项

选项 作用
-s 根据章节显示,具体见后面的说明
-f 只显示命令的功能而不显示其中详细的说明文件
-w 不显示手册页,只显示将被格式化和显示的文件所在位置
-a 显示所有的手册页,而不是只显示第一个
-E 在每行的末尾显示$符号

选项-s的章节参数

章节参数 作用
1 一般使用者的命令
2 系统调用的命令
3 C语言函数库的命令
4 有关驱动程序和系统设备的解释
5 配置文件的解释
6 游戏程序的命令
7 其他的软件或程序的命令和有关系统维护的命令
man -s 1 ls   查看ls命令的帮助手册

8.4 find

功能描述:
寻找文件或目录的位置。

语法:
find [搜索路径][搜寻关键字][文件或目录]

find命令选项

选项 作用
-type 查找某一类型的文件
-name 按照文件名查找文件
-group 按照文件所属组查找文件
-user 按照文件所有者来查找文件
-print find命令将匹配的文件输出到标准输出
-link 按照文件的链接数来查找文件
-size n : [C] 查找文件长度为n块的文件,带有c时表示文件长度以字节记
-newerfile1 ! file2 查找更改时间比文件file1新,但比文件file2旧的文件
-perm 按照文件权限来查找文件
-depth 在查找文件时,首先查找当前目录中的文件,然后在其子目录中查找
-prune 不在指定的目录中查找,如同时使用depth选项,-prune将被忽略
-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在
-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在

-type选项参数

type参数 作用
b 块设备文件
d 目录
c 字符设备文件
p 管道文件
l 符号链接文件
f 普通文件

时间特征参数

时间参数 作用
amin n 查找n分钟以内被访问过的所有文件
atime n 查找n天以内被访问过的所有文件
cmin n 查找n分钟以内文件状态被修改过的所有文件
ctime n 查找n天以内文件状态被修改过的所有文件
mmin n 查找n分钟以内文件内容被修改过的所有文件
mtime n 查找n天以内文件内容被修改过的所有文件
find  ~ -name "*.doc" -print         查找当前目录及子目录中.doc文件并显示
find  . -name "[A-F]*" -print        查找以大写字母A-F开头的文件并显示
find  /etc -iname 'f????'            查找/etc下,所有以f开头后面有4个字符的文件
find  .-perm 777 -print              在当前目录下查找文件权限为777的文件,即查找每个人都有可读写可执行权限的文件
find  work-path "work/file" -prune  -o  -print          查找work文件夹中的文件,忽略file文件夹中的文件
find  work -user malimei -print                         在/work下查找所有者为malimei的文件并输出
find  /home/malimei/Documents -group malimei -print     在指定目录下查找属于malimei用户组的文件
find  /home/malimei/Documents/work -mtime -5 -print     查找更改时间在5日内的/home/malimei/Documents/work文件
find  /home/malimei/Documents -type  d  -print          查找目标目录下所有的目录文件并显示
find  .-size +1000000c  -print                          在当前目录下查找文件长度大于1MB的文件

8.5 locate

功能描述:
寻找文件或目录的位。

语法:
locate [搜索路径][搜寻关键字]

locate命令选项

选项 作用
-a 输出所有匹配模式的文件
-d 指定资料库的路径
-n 显示n个输出查找到的文件
-h 显示辅助信息
-q 安静模式,不会显示任何错误信息
locate -n 2 named.conf      查找文件名为named.conf的文件,显示前两个文件
locate /file1/t             查找file1文件夹下以t开头的文件
whatis  ls                  查询ls命令的功能
which   ls                  查询ls命令的可执行路径

8.6 grep

功能描述:
使用正则表达式查找文件内容。

语法:
grep [选项] 匹配字符串 文件列表

grep命令选项

选项 作用
-v 列出不匹配串或正则表达式的行,即显示不包含匹配文本的所有行
-c 对匹配的行计数
-l 只显示包含匹配的文件的文件名
-h 查询多文件时不显示文件名,抑制包含匹配文件的文件名的显示
-n 每个匹配行只按照相对的行号显示
-i 产生不区分大小写的匹配,默认状态是区分大小写

正则表达式的参数

参数 含义
\ 忽略正则表达式中特殊字符的原有含义
^ 匹配正则表达式的开始行
$ 匹配正则表达式的结束行
\ < 从匹配正则表达式的行开始
\ > 到匹配正则表达式的行结束
[ ] 单个字符,如[A] 即A符合要求
[ - ] 范围,如[A-Z] 即A、B、C一直到Z都符合要求
* 所有字符,长度可以为0
grep  -n "s" 1.txt                  搜索文件1.txt中包含s的行,并显示行号
grep  -n '-'   a                    搜索文件a中包含'-'的行,并显示行号
grep  -vn '-'  a                    搜索文件a中不包含'-'的行,并显示行号
grep  -n '*'   a                    搜索文件a中包含'*'的行,并显示行号
grep  -n '[a-z]\{14\}'  a           搜索文件a中包含/或多于14个连续小写字符的字符串,并显示行号
grep  -n 'li' c a                   搜索当前目录下文件a和c中包含'li'的行
grep  'any'  *                      搜索当前目录下的所有文件包含'any'的行

9.统计命令

9.1 wc

功能描述:
统计指定文件中的字节数、字数、行数,并将统计结果显示输出。

语法:
wc [选项] 文件列表

wc命令选项

选项 作用
-c 统计字节数
-w 统计字数,一个字被定义为由空白、跳格或换行字符分隔的字符串
-l 统计行数
-L 统计最长行的长度
wc -c test1      统计文件test1字节数
wc -w test1      统计文件test1字数
wc -l test1      统计文件test1行数
wc -L test1      统计文件test1最长行的长度

四、输入、输出重定向

1.标准输入、输出

执行一个Shell命令行时通常会自动打开三个标准文档:
标准输入文档(stdin)
标准输出文档(stdout)
标准错误输出文档(stderr)

cat                         从标准输入到标准输出
Hello!                     在键盘上输入'Hello!'
Welcome to Ubuntu!         在键盘上输入'Welcome to Ubuntu!'

2.输入重定向

使用标准输入不方便,需要将输入从标准输入重新定向转到其他位置,这就是输入重定向。

wc < /etc/passwd            输入重定向,将/etc/passwd文档内容传给wc命令
cat << end                  从控制台输入字符串,当输入为“end”时结束输入
cat > ss.txt << eof         从控制台输入字符串,当输入“eof”时结束输入,并把内容保存到文件ss.txt中

3.输出重定向

因为输出到终端屏幕上的数据只能看,不能进行更多处理,所以需要把输出从标准输出或标准错误输出重新定向到指定的文件,这就是输出重定向。

cat > c                        将屏幕输入的信息保存到文件从(c初始为空文件),按Ctrl+z退出输入
ll >> c                        将命令ll的输出追加到文件c,即保存到文件的尾部,原内容不变
ll > c                         将命令ll的输出保存到文件c,如c不空,则覆盖原内容
cat a>b                        将文件a中的内容复制到文件b中(最初b为空文件)

五、管道

管道(Pipeline):一个由标准输入输出链接起来的进程集合,是一个连接两个进程的连接器
管道的命令操作符是“|”,他将操作符左侧命令的输出信息(stdout)作为操作符右侧命令的输入信息(stdin)
管道使用需注意:
(1)管道是单向的,一端只能输入,另一端只能用于输出,遵循“先进先出”原则
(2)管道命令只处理前一个命令的正确输出,如果输出的是错误信息,则不处理
(3)管道操作符右侧命令,必须能够接收标准输入流命令
管道分为普通管道和命名管道两种,这里讲的是普通管道。

cat a1.txt|grep "a"                           查找文件a1.txt中包含a的字符串并显示
cat a1.txt|grep "a"|wc -l                     查找文件a1.txt中包含a的字符串并统计行数,随后显示统计结果
cat 1.txt|grep "s"|wc-l                       统计文件1.txt中包含s的字符串行数,并显示
cat 1.txt|grep "s"|wc-w                       统计文件1.txt中包含s的字符串字数,并显示
cat 1.txt|grep "s"|wc-s                       统计文件1.txt中包含s的字符串字节数,并显示
ls -l | grep '^d'                             通过管道过滤ls-l输出的内容,只显示以d开头的行(即只显示当前目录中的目录/子目录)

六、链接

1.什么是链接

链接是一种在共享文件和访问它的若干目录项之间建立联系的方法。

2.索引节点(inode)

在Linux系统中,内核为每一个新创建的文件分配一个inode(索引节点),每个文件都有一个唯一的inode号,
我们可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。文件属性保存在索引节点里,在访问文件时,索引节点被复制到内存里,从而实现文件的快速访问。系统是通过索引节点(而不是文件名)来定位每一个文件。

3.两种链接

链接分类 含义
硬链接(Hard Link) 硬链接就是一个指针,指向文件索引节点。但系统并不为它重新分配inode,不占用实际的空间。硬链接不能链接目录和不同文件系统的文件。ln命令用来建立硬链接。ln命令保持每一处链接文件的同步性,不论你改动哪一处,其他文件都会发生相同变化。
软链接(Soft Link) 软连接也叫符号链接,这个文件包含了另一个文件的路径名,系统会为其重新分配inode,类似于windows的快捷方式。软链接可以是任意文件或目录,包括不同文件系统的文件和不存在的文件名。ln-s命令用来建立软链接。
两者区别 硬链接会在选定的位置上生成一个和源文件大小相同的文件。软连接:不会占用磁盘空间生成文件的镜像,软链接可以跨分区,硬链接只能在同一分区内。

4.链接命令ln

功能描述:
为某一文件在另外一个位置建立一个同步的链接。
ln命令会保持每一处链接文件的同步性,也就是说,不论改动了哪一处,其他的文件都会发生相同的变化。

语法:
ln [参数] [源文件或目录] [目标文件或目录]

ln命令选项

选项 作用
-s 软连接(符号链接)
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-v 显示详细的处理过程
-S “-S<字尾备份字符串>”或“–suffix=<字尾备份字符串>”
-V “-V<备份方式>”或“–version-control=<备份方式>”
ln    -s    x.txt    xx                 建立x.txt的符号链接xx
ln    x.txt   xxy.txt                   建立x.txt的硬链接xxy.txt
ln    -s   s2   aa                      在aa目录下建立s2文件的符号链接,默认命名为s2
ln    s1   aa                           在aa目录下建立文件s1的硬链接
ln    -s  第一章.ppt  /root/aa           跨目录建立文件“第一章.ppt”的软链接
ln        第一章.ppt  /root/aa1          报错,不允许跨目录建立文件的硬链接

猜你喜欢

转载自blog.csdn.net/weixin_43138792/article/details/129688860