Linux学习之Shell命令基础

一、Shell命令格式

通常一条命令包含三个要素:命令名称、选项、参数。其中命令名称是必须的,选项和参数可以根据实际情况进行填写。具体命令格式如下所示:

Command   [-Options]  Argument1  Argument2 ········

      命令           选项         参数1           参数2

Commandshell命令名称,需要严格区分大小写。
Optionsshell命令选项,每个参数都需要添加“-”进行引导,且选项之间需要使用空格隔开,一条命令的选项数大于等于0。
Argumentshell命令参数,一条命令的参数大于等于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反向选择,即显示没有搜寻‘ 搜寻字符串 ’内容的哪一行  
  
wcWord 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
  
susu命令用于临时改变用户身份,具有其他用户的权限。,单独使用su命令默认为要转换为超级用户root
su -c表示执行完一个命令后就结束身份的改变
su -m表示仍保留环境变量不变
  
echoecho命令用于显示器显示一段文字,选项选择-n表示输出文字后不换行。输出信息内可以加引号
  
datedate命令用于显示和设置系统日期和时间。
  
clearclear命令用于清除显示屏幕上的信息
  
dfdf命令用于查看磁盘空间的使用情况
df -a显示所有物理文件系统的使用情况,包括虚拟文件系统,如/proc、/sys等
df -T显示物理文件系统的文件格式类型
df -h物理文件系统大小按兆字节为单位显示
df -k物理文件系统大小按千字节为单位显示
df -l仅列出本地文件系统
  
dudu命令列出目录和文件所使用的磁盘块数,每块512字节
du -a仅列出空闲的文件数
du -h列出磁盘的使用情况(kb)
du -s列出总的空闲空间(kb)
  
psps命令用于显示系统中当前运行的进程
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

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值