shell
linux命令行就是由shell提供的,shell其实是所有命令行程序的统称,而CentOS系统中默认使用的shell程序就是bash,他是linux系统中运行的一种特殊程序,其文件位于/bin/bash,用户在登录linux系统时,系统就会自动加载一个shell程序,在用户和内核之间充当“翻译官”。
这里要跟shell脚本(shell script)区分开,shell脚本是一种未shell编写的脚本程序,业界所说的shell通常都是指shell脚本。
1 文件管理
1.1 ls命令(显示指定工作目录下的内容及属性信息)
ls命令是linux下最常用的指令之一,ls为list的缩写,默认状态下ls命令会列出当前目录的内容;
语法:ls [选项] [文件]
常用参数:
示例:
1. 列出所有文件(包括隐藏文件):ls -a
2. 列出文件的详细信息:ls -l 或 ll
3. 列出根目录(/)下的所有目录:ls /
4. 列出当前工作目录下所有名称是“s”开头的文件:ls -ltr s*
5. 列出/bin目录下的所有目录及文件的详细信息:ls -lR /bin
6. 列出当前工作目录下所有文件及目录以文件的大小进行排序:ls -AS
1.2 cp命令(复制文件或目录)
cp命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中。
语法格式:cp [参数] [文件]
常用参数:
示例:
1. 复制目录:cp -R dir1 dir2/
2. 将文件test1改名为test2:cp -f test1 test2
3. 复制多个文件:cp -r file1 file2 file3 dir
4. 交互式地将目录/usr/linuxcool中的所有.c文件复制到目录dir中:cp -r /usr/linuxcool/*.c dir
5. 复制test目录下的file.txt文件到目录下:cp /tmp/test/file.txt /tmp/test1
6. 移动test目录下的file.txt文件到test1目录下:mv test/file.txt test1
1.3 mkdir命令(创建目录)
语法:mkdir [参数] [目录]
参数:
示例:
1. 在工作目录下,建立一个名为dir的子目录:mkdir dir
2. 在目录/usr/linuxcool下建立子目录dir,并且设置文件属主有读、写和执行权限,其他人无权访问:mkdir -m 700 /usr/linuxcool/dir
3. 同时创建子目录dir1,dir2,dir3:mkdir dir1 dir2 dir3
4. 递归创建目录:mkdir -p linuxcool/dir
5. 当前目录下创建a1,a2,a3,a4,a5:mkdir a{1...5}
6. 创建多层目录(没有父目录):mkdir -R /tmp/h//d/b
1.4 mv命令(移动或改名文件)
语法:mv [参数]
参数:
示例:
1. 将文件file1重命名未file2:mv file1 file2
2. 将文件file移动到目录dir中:mv file /dir
3. 将目录dir1移动到dir2中(前提是dir2已存在,若不存在则改名):mv /dir1 /dir2
4. 将目录dir1下的文件移动到当前目录下:mv /dir1/* .
1.5 pwd命令(显示当前路劲)
语法:pwd [参数]
常用参数:
1.6 head命令(输出文件数据)
输出文件最前面的几行数据:head -2 file.txt
1.7 more命令(显示文本文件内容)
more命令用于将内容较长的文本文件内容(不能在一屏显示完)进行分屏显示,并且支持在显示时定位关键字,而对于内容较少的文本文件内容则推荐使用cat命令查看。
参数:
命令内部操作:
Space键:显示文本的下一屏内容
Enter键:向下n行,需要定义,默认为1行
斜线符\:接着输入一个模式,可以在文本中寻找下一个相匹配的模式
H键:显示帮助屏
B键:显示上一屏内容
Q键:退出more命令
Ctrl+F、空格键:向下滚动一屏
Ctrl+B:返回上一屏
=: 输出当前的行号
:f:输出文件名和当前的行号
V:调用vi编辑器
!:调用Shell,并执行命令
示例:
1. 显示文件file的内容,显示之前先清屏,附已显示的百分比:more -dc file
2. 显示文件file的内容,每10行显示一次,而且在显示之前先清屏:more -c -10 file
3. 显示文件file的内容,每5行显示一次,而且在现实之后在清屏:more -p -5 file
4. 逐页显示file文档内容,如有连续两行以上空白行则以一行空白行显示:more -s file
5. 从第20行开始显示file之后文档内容:more +20 file
1.8 less命令(分页显示工具)
浏览文字档案的内容,用less命令显示文件时,PageUp键向上翻页,PaGeDown键向下翻页,要退出less程序,应按Q键。
less的作用与more十分相似,不同点为less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。
参数:
命令内部操作:
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
示例:
1. 查看文件:less test.php
2. ps查看进程信息并通过less分页显示:ps -ef | less
3. 查看命令历史使用记录并通过less分页显示:history | less
4. 浏览多个文件:less log2018.log log2019.log
5. 当正在浏览一个文件时,也可以使用 :e 命令打开另一个文件:less file1
:e file2
2. 文档编辑
2.1 cat命令(在终端设备上显示文件内容)
cat命令就是用于查看内容较少的纯文本文件的。
注意:当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C中断键则可以终止该命令的执行。或者对于大文件,干脆用more命令。
语法格式:cat [参数] [文件]
参数:
示例:
1. 查看文件的内容:cat filename.txt
2. 查看文件的内容,并显示行数编号:cat -n filename.txt
3. 查看文件的内容,并添加行数编号后输出到另外一个文件中:cat -n linuxcool.log > linuxprobe.log
4. 清空文件内容:cat /dev/null > /root/filename.txt
5. 持续写入文件内容,碰到EOF符后结束并保存:cat > filename.txt <<EOF
6. 将软盘设备制作成镜像文件:cat /dev/fd0 > fdisk.iso
2.2 echo命令(输入字符串或提取Shell变量的值)
用于在终端设备上输出字符串或变量提取后的值;
人们一般使用在变量前加上符号的方式提取出变量的值,例如:PATH,然后再用echo命令予以输出,或者直接使用echo命令输出一段字符串到屏幕上,起到给用户提示的作用。
语法:echo [参数] [字符串]
参数:
示例:
1. 输出一段字符串:echo 'start'
2. 输出变量提取后的值:echo $PATH
3. 对内容进行转义,不让$符号的提取变量值功能生效:echo \$PATH
4. 结合输出重定向符,将字符串信息导入文件中:echo "hello world" > admin
5. 使用反引号符执行命令,并输出其结果到终端:echo `date
6. 输出带有换行符的内容:echo -e "a\b\c"
7. 输出信息中删除某个字符,删除3:echo -e "123\b456"
2.3 rm命令(移动文件或目录)
rm是常用的命令,该命令的功能为删除一个目录中一个或多个文件或目录,他也可以将某个目录及旗下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。 rm也是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。
语法:rm [参数] [文件]
参数:
示例:
1. 删除前逐一询问确认:rm -i text.txt
2. 直接删除,不会有任何提示:rm -f test.txt
3. 递归删除目录及目录下所有文件:mkdir /data/log
rm -rf /data/log
4. 删除当前目录下所有文件:rm -rf *
5. 清空系统中所有的文件(慎用):rm -rf /*
2.4 tail命令(查看文件尾部内容)
tail用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名未“-”,则读取标准输入。
语法:tail [参数]
示例:
1. 显示文件file的最后10行:taile file
2. 显示文件file的内容,从第20行至文件末尾:tail +20 file
3. 显示文件file的最后10个字符: tail -c 10 file
4. 一直变化的文件总是显示后10行:tail -f 10 file
2.5 grep命令(强大的文本搜索工具)
这个命令可以结合正则表达式使用,它也是linux使用最为广泛的命令;
grep命令的选项用于对搜索过程的补充,而其命令的模式十分灵活,可以是变量、字符串、正则表达式。需要注意的是:档模式中包含了空格,务必要用双引号将其引起来;
linux系统支持三种形式的grep命令:
1. grep,标准,模仿的代表;
2. egrep,简称扩展命令,其实和grep -E等价,支持基本和扩展的正则表达式;
3. -fgrep,快速grep命令,其实和grep -F等价,不支持正则表达式,按照字符串表面意思进行匹配。
语法:grep [参数]
参数:
示例:
1. 支持多文件查询并支持使用通配符:grep zwx file_* /etc/hosts
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
file_2:zwx
file_4:dkfjlzwxejfkje
file_4:zwx djfkdjf
file_4:zwxedkfgj
2. 输出匹配字符串行的数量:grep -c zwx filr_*
file_1:2
file_2:1
file_3:0
3. 列出所有的匹配行,并显示行号:grep -n zwx file_*
file_1:1:zwx
file_1:4:zwx
file_1:10:zwxddkjflkdjfdlkfjlsdkj
file_2:2:zwx
file_4:3:dkfjlzwxejfkje
file_4:4:zwx djfkdjf
file_4:5:zwxedkfgj
4. 显示不包含模式的所有行:grep -vc zwx file_*
file_1:7
file_2:4
file_3:5
file_4:2
5.不再显示文件名:grep -h zwx file_*
zwx
zwx
zwxddkjflkdjfdlkfjlsdkj
zwx
dkfjlzwxejfkje
zwx djfkdjf
zwxedkfgj
6. 只列出符合匹配的文件名,不列出具体匹配的行:grep -l zwx file_*
file_1
file_2
file_4
7. 不显示不存在或无匹配的文本信息:grep -s zwx file file_1
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
: grep zwx file file_1
grep: file1: No such file or directory
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
8. 递归搜索,不仅搜索当前目录,还搜索子目录:grep -r zwx file_2 *
file_2:zwx
anaconda-ks.cfg:user --name=zwx --gecos=“zwx”
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
file_2:zwx
file_4:dkfjlzwxejfkje
file_4:zwx djfkdjf
file_4:zwxedkfgj
initial-setup-ks.cfg:user --name=zwx --gecos=“zwx”
9. 匹配整词,以字面意思去解释他,相当于精准匹配:grep zw* file_1
zwx
zwx
zdkfjeld
zw
ze
zwxddkjflkdjfdlkfjlsdkj
[root@linuxcool ~]# grep -w zw* file_1
zw
10. 匹配整行,文件中的整行与模式匹配时,才打印出来:grep -x zwx file_*
file_1:zwx
file_1:zwx
file_2:zwx
2.6 touch命令-创建文件
使用指令touch时,如果指定的文件不存在,则将创建一个新的空白文件;如果制定的文件存在,则变更文件的日期属性。
1. 创建一个file文本文件:touch file.txt
2. 批量文件:touch file{1..5}.txt
2.7 vi命令-编辑文本
vi时linux系统上的第一个全屏模式编辑器,它用法简单,而且所占空间不大,操作灵活。
1. 打开或新建文件,并将光标置于第一行首:vi filename
2. 打开文件,并将光标置于第n行首:vi +n filename
3. 打开文件,并将光标置于最后一行:vi + filename
4. 在上次正用vi编辑器时发生崩溃,恢复filename:vi -r filename
vi在命令模式下的参数
复制粘贴 (命令模式下)
yy复制一行
p 粘贴
[n] yy复制光标后n行
p 粘贴
剪切与删除(命令模式下)
dd删除一行
[n] dd删除光标行的后n行
p粘贴上面的内容
快捷操作(命令模式下)
u撤销操作
搜索
命令模式下,键入 / 后面按搜索的内容
按 n 向后搜索
按 N 向前搜索
替换
末行模式下
:%s/源/目标替换/g %指代整个文件内容 g代表全局替換
:1,10s/源/目标替换/ 替换从第1行到10行中每行第一个目标内容
:1,5s/源/目标替换/g 替换从第1行到5行中所有的目标内容
撤销
命令模式下,u 撤销至上一步
crtl + r恢复至上一步撤销
其它命令
显示行号
末行模式:set nu!
显示当前文件名
末行模式:file
3. 系统管理
3.1 rpm命令-RPM软件包管理器
rpm命令包含了五种基本功能:安装、卸载、升级、查询、验证;
语法格式:rpm [参数] [软件包]
参数:
实例:
1. 直接安装软件包:rpm -ivh packge.rpm
2. 忽略报错,强制安装:rpm --force -ivh package.rpm
3. 列出所有安装过的包:rpm -qa
4. 列出rpm包中的文件安装的位置:rpm -ql ls
5. 卸载rpm包:rpm -e package.rpm
6. 升级软件包:rpm -U file.rpm
3.2 find命令-查找和搜索文件
标签:文件,常用,shell,grep,zwx,命令,file,Linux,目录 From: https://www.cnblogs.com/xiao-wang-tong-xue/p/17306525.html