一、Shell命令格式
通常一条命令包含三个要素:命令名称、选项、参数。其中命令名称是必须的,选项和参数可以根据实际情况进行填写。具体命令格式如下所示:
Command [-Options] Argument1 Argument2 ········
命令 选项 参数1 参数2
Command | shell命令名称,需要严格区分大小写。 |
Options | shell命令选项,每个参数都需要添加“-”进行引导,且选项之间需要使用空格隔开,一条命令的选项数大于等于0。 |
Argument | shell命令参数,一条命令的参数大于等于0个,且多个参数的情况需要利用空格进行隔开。 |
细节:
1.一条命令的三要数之间要用空格进行隔开。
2.若一行中要书写多个命令,需要使用分号(;)进行隔开。
3.如果一条命令不能在一行内写完,需要在行尾使用反斜杠(\)表明该命令未结束。
例:
ls 显示当前文件夹内的目录。这指令内并无选项和参数
ls -a 显示指定目录下所有子目录与文件,默认显示当前目录,包括隐藏文件,该指令内有选项无参数。
ls -a /home 该指令作用是显示home目录下的所有子目录与文件,包括隐藏文件。该指令包含选项和参数
二、常用指
pwd | 显示用户在文件系统中的当前位置,格式为:pwd |
ls | 显示当前文件夹内的目录,格式为:ls [-options] destion 若无destion则按当前目录 |
ls -a | 显示指定目录下所有子目录与文件,包括隐藏文件,无参数则默认显示当前目录 |
ls -l | 以列表的形式显示指定文件内文件的详细信息,无参数则默认显示当前目录 |
ls -R | 将指定文件夹内的内容按递归的形式显示,无参数则默认显示当前目录 |
cd | 切换到指定目录命令,格式为:cd destion 无参数时回到家目录 |
cd .. | 回到上一级目录 |
cd - | 回到上一次的工作目录 |
cat | 查看文件命令,格式为:cat [-options] filename |
cat -s a.txt | 将a.txt文件内多个连续空行合并成一个空行再显示 |
cat -b a.txt | 将a.txt文件内容加上行号再显示 |
nl a.txt | 将a.txt文件将上行号再显示,格式为 |
head -n a.txt | 显示a.txt文件前n行,无选项n时,默认显示前十行 |
tail -n a.txt | 显示a.txt文件最后n行,无选项n时,默认显示最后十行 |
cp | 复制文件命令。 cp [-options] file destination |
cp -i | 覆盖时交互提示 cp -i file destination |
cp -r | 复制文件夹 cp -r source destination |
cp [-options] file1 file2 dest 复制多个文件到文件夹dest中 | |
mv | 移动命令 |
mv [-options] file destination 移动文件夹 | |
mv [-options] file1 file2 此操作会将移动文件重命名 | |
touch | 创建文件或者更新文件时间戳(创建重名文件) |
rm | 删除命令 |
rm -r | 向下递归删除,不管有多少级目录,一并删除。删除文件夹 |
rm -i | 删除文件前提示是否删除该文件 |
rm -rf | 直接强行删除文件 |
mkdir | 创建文件夹 |
mkdir -p | 创建嵌套文件夹 例mkdir -p A/B |
rmdir | 删除一个目录 |
rmdir -p | 递归删除目录,删除嵌套目录 |
whoami | 显示用户名 |
hostname | 显示系统所有者名 |
grep | 用于查找文件中符合条件的字符串,调用格式grep [-options] ' 搜寻字符串 ' filename |
grep -a | 将binary文件以text文件的方式搜寻数据 |
grep -c | 计算搜寻到‘ 搜寻字符串 ’ 的次数 |
grep -n | 在输出结果中加上搜寻内容在文件内的行号 |
grep -v | 反向选择,即显示没有搜寻‘ 搜寻字符串 ’内容的哪一行 |
wc | Word Count命令用于统计指定文件中的字节数、字数、行数并将结果输出,格式为:wc [-options] filename |
wc -c | 统计字节数 |
wc -l | 统计行数 |
wc -m | 统计字符数 |
wc -w | 统计字数,一个字被定义为由空白、跳格或换行字符分隔的字符串。 |
wc -L | 打印最长行的长度 |
wc --help | 显示帮助信息 |
wc -version | 显示版本信息 |
无选项时,结果输出分别为,行数、单词数、字节数、文件名 | |
history | 显示最近输入命令 |
history -n | 显示最近输入的n条命令 |
HISTSIZE=N | 设置系统保存最近命令的容量 |
echo $HISTSIZE | 查询系统保存最近命令的容量 |
在家目录里的.bashrc文件中,更改HISTSIZE将可以永久更改系统保存最近命令的容量 | |
man | 获取联机帮助,查询命令的具体介绍,格式为:man commandname 帮助页面中输出“:q”即可退出 |
passwd | 修改当前用户的口令,格式为:passwd username |
su | su命令用于临时改变用户身份,具有其他用户的权限。,单独使用su命令默认为要转换为超级用户root |
su -c | 表示执行完一个命令后就结束身份的改变 |
su -m | 表示仍保留环境变量不变 |
echo | echo命令用于显示器显示一段文字,选项选择-n表示输出文字后不换行。输出信息内可以加引号 |
date | date命令用于显示和设置系统日期和时间。 |
clear | clear命令用于清除显示屏幕上的信息 |
df | df命令用于查看磁盘空间的使用情况 |
df -a | 显示所有物理文件系统的使用情况,包括虚拟文件系统,如/proc、/sys等 |
df -T | 显示物理文件系统的文件格式类型 |
df -h | 物理文件系统大小按兆字节为单位显示 |
df -k | 物理文件系统大小按千字节为单位显示 |
df -l | 仅列出本地文件系统 |
du | du命令列出目录和文件所使用的磁盘块数,每块512字节 |
du -a | 仅列出空闲的文件数 |
du -h | 列出磁盘的使用情况(kb) |
du -s | 列出总的空闲空间(kb) |
ps | ps命令用于显示系统中当前运行的进程 |
ps -ef | -e显示所有进程,-f显示全格式,该命令总的为全格式显示所有进程。 |
三、通配符
当用户需要用命令处理一组文件,例如file1.txt、file2.txt、file3.txt、file4.txt..........,用户不必输入所有文件名。可以使用shell通配符,shell命令的通配符含义如下表:
通配符 | 含义 |
* | 匹配任意长度的字符 |
? | 匹配一个长度的字符 |
[ ... ] | 匹配其中指定的一个字符 |
[ - ] | 匹配指定的一个字符范围 |
[ ^... ] | 除了其中指定的字符均可以 |
实例:
用file_*.txt,匹配file_aa.txt、file_bb.txt能匹配到,file3_cc.txt则匹配不到
用file_?.txt,匹配file_1.txt、file_2.txt、file_3.txt都可以匹配到,file_11.txt则匹配不到
用file_[abc].txt,只能匹配file_a.txt、file_b.txt和file_c.txt
用file_[a-c].txt,能匹配file_a.txt、file_b.txt,直到file_c.txt
用file_[^abc].txt,除了file_a.txt、file_b.txt、file_c.txt的其它文件
四、shell中的管道
管道可以把一系列命令链接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又将作为第三个命令的输入,以此类推。就像通过使用“ | ”符连成一个管道。
例:cat /etc/passwd | grep “linux”
该命令,首先我们先利用cat将passwd文件内容提取,然后输入到grep命令中进行筛选和“linux”有关的。
五、输入/输出重定向
(1)输入/输出重定向是改变shell命令或程序默认的标准输入/输出目标,重新定向到新的目标。
(2)linux中默认的标准输入定义为键盘,标准输出定义为终端窗口。
(3)用户可以为当前操作改变输入或输出,迫使某个特定命令的输入或输出来源为外部文件。
重定向符: | |
> file | 将file文件重定向为输出源,新建模式 ls /usr > Lsoutput.txt,将ls /usr的执行结果,打印到Lsoutput.txt当中 |
>> file | 将file文件重定向为输出源,追加模式 ls /usr >> Lsoutput.txt,将ls /usr的执行结果,追加的形式打印到lsoutput.txt当中 |
< file | 将file文件重定向为输入源 wc < file1,将file1中的内容作为输入传给wc命令 |
2> 或 &> | 将由命令产生的错误信息输入到文件中 ls noexistingfile.txt 2> err.log,使用ls命令,查看一个不存在的文件时,将系统错误提示保存在err.log文件中 |
例:cat命令是将文件内容输出到显示器上,属于标准输出设备。如下面命令:
1.若是我们输入:
cat
hello world!
将会在显示器上显示:hello world!
2.若是我们输入:
cat > filename.txt
hello world!
显示器并无显示,但是我们退出cat命令状态时,会看到一个filename.txt文件,并且里面的内容为:hello world!
3.若是我们输入:
cat < filename.txt
屏幕将会显示filename.txt文件内容,及filename.txt为输入,屏幕为输出设备。
六、命令置换
命令替换是将一个命令的输出作为另一个命令的参数。命令格式如下所示
command1 `command2`
命令command2的输出将作为命令command1的参数。需要注意,命令置换的单引号为ESC键下方的“`”键,
例:linux@ubuntu:~$ ls `pwd`
其中pwd命令用于显示当前目录的绝对路径。在上面的命令行中,使用命令置换符,将pwd的运行结果作为ls命令的参数。最终,命令执行结果是显示当前目录的文件内容。
命令置换格式是:命令 ‘要置换的命令’亦可写成 :命令 $(要置换的命令)
仓促成文,不当之处,尚祈方家和读者批评指正。联系邮箱1772348223@qq.com