一、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 | 按照文件所有者来查找文件 |
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 报错,不允许跨目录建立文件的硬链接