Linux学习之Shell命令基础

一、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命令的参数。最终,命令执行结果是显示当前目录的文件内容。

命令置换格式是:命令 ‘要置换的命令’亦可写成 :命令 $(要置换的命令)

 

仓促成文,不当之处,尚祈方家和读者批评指正。联系邮箱[email protected]

发布了12 篇原创文章 · 获赞 5 · 访问量 637

猜你喜欢

转载自blog.csdn.net/qq_35600620/article/details/104125158