什么是shell?一说到命令行,我们真正指的是 shell。shell 就是一个程序,它接受从键盘输入的命令, 然后把命令传递给操作系统去执行。几乎所有的 Linux 发行版都提供一个名为 bash 的 来自 GNU 项目的 shell 程序。“bash” 是 “Bourne Again SHell” 的首字母缩写, 所指的是这样一个事实,bash 是最初 Unix 上由 Steve Bourne 写成 shell 程序 sh 的增强版。本文将讲解一些常用的命令。

一. 文件,目录操作命令
ls:显示文件和目录信息

1
2
3
4
5
ls 以默认方式显示当前目录文件列表
ls -a 显示所有文件包括隐藏文件
ls -l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行
ls -lh 显示文件的大小,以容易理解的格式印出文件大小 (例如 10K 10M)
ls -lt 显示文件,按照修改时间排序

操作实例如下:

ls

cd:用于切换用户当前工作目录

1
2
3
4
5
6
cd dir 切换到当前目录下的dir目录
cd / 切换到根目录
cd .. 切换到上一级目录
cd ../.. 切换到上二级目录
cd - 命令后跟一个减号,则会退回到切换前的目录
cd ~ 切换到用户目录,比如是root用户,则切换到/root下

操作实例如下:

cd

pwd:用于显示用户当前工作目录

1
pwd 显示当前的工作目录

操作实例如下:

pwd

touch,mkdir和rmdir:创建文件,创建或删除目录;mkdir和rmdir两个命令都支持-p参数,对于mkdir命令若指定路径的父目录不存在则一并创建,对于rmdir命令则删除指定路径的所有层次目录,如果文件夹里有内容,则不能用rmdir命令

1
2
3
touch minhow.txt 创建minhow.txt文件
mkdir minhow 创建minhow目录
rmdir minhow 删除minhow目录

操作实例如下:

touch

cp:复制命令

1
2
3
cp minhow.txt conf/minhow.txt 将文件minhow.txt复制到conf目录的minhow.txt
cp minhow.txt mh.txt 复制minhow.txt到本目录并改名为mh.txt
cp -r minhow mh 复制一个文件夹minhow并改名为mh

操作实例如下:

cp

mv:移动命令,加上-f表示禁止交互操作。强制覆盖。若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录不给任何指示。

1
2
mv -f minhow.txt ../ 将一个文件移动到上一级目录
mv mh.txt minhow.txt 将mh.txt文件移动在本目录并改名minhow.txt

操作实例如下:

mv

rm:删除文件或目录命令;rm命令常用的参数有三个:-i,-r,-f;–i :系统在删除文件之前会先询问确认,用户回车之后,文件才会真的被删除。需要注意,linux下删除的文件是不能恢复的,删除之前一定要谨慎确认。–r:该参数支持目录删除,功能和rmdir命令相似。–f:和-i参数相反,-f表示强制删除

1
2
rm -i minhow.txt 删除minhow.txt文件夹,并且提示是否删除
rm -f mh.txt 强制删除mh.txt文件夹

操作实例如下:

rm

diff和comm:比较文件内容和显示文件不同的内容

1
2
3
diff minhow mh 比较minhow与mh的文件列表是否相同,但不比较文件的实际内容,不同则列出
diff minhow.txt mh.txt 比较minhow.txt与mh.txt的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的
comm minhow.txt mh.txt 比较文件,显示两个文件不相同的内容

操作实例如下:

diff

find:查找文件或目录;使用格式:find [指定查找目录] [查找规则] [查找完后执行的action],默认当前目录

1
2
find minhow.txt 查找当前目录下minhow.txt文件
find minhow 查找minhow目录下的文件

操作实例如下:

find

二. 查看文件内容
cat:显示文件的内容,是concatenate的简写,类似于dos下面的type命令

1
2
3
cat minhow.txt 显示minhow.txt文件内容
cat minhow.txt mh.txt 依次显示minhow.txt,mh.txt的内容
cat minhow.txt mh.txt >> mh1.txt 把minhow.txt, mh.txt的内容结合起来,以追加方式写入mh1.txt文件中。

操作实例如下:

cat

more:分页显示

1
2
3
more minhow.txt 分页显示minhow.txt文件内容
more命令也可以通过管道符(|)与其他的命令一起使用,例如:
ls -l|more -5 分页显示当前目录,每页显示5页

操作实例如下:

more

head和tail:分别显示文件头n行或最后n行;缺省情况n都为10行。可以通过-n方式指定行数,如:

1
2
3
tail -3 minhow.txt 显示minhow.txt文件最后三行
head -3 minhow.txt 显示minhow.txt文件前三行
tail -f 命令可以实时查看文件新增的内容

操作实例如下:

tail&head

echo:echo会将输入的字符串送往标准输出,输出的字符串间以空白字符隔开, 并在最后加上换行符

1
echo "hello minhow" >> minhow.txt 添加内容到minhow.txt文件里

操作实例如下:

echo

wc:该命令用于统计指定文件中的字节数、字数、行数;;-l 统计行数,-w 统计字数,-c 统计字节数

1
2
3
wc minhow.txt 统计minhow.txt文件信息
wc -l minhow.txt 统计minhow.txt文件行数
wc -l -w minhow.txt 统计minhow.txt文件行数和字数

操作实例如下:

wc

三. 基本系统命令
man:相当于Unix/Linux的联机Help,每个系统命令和调用都有非常详细的说明

1
man ls 查看ls命令的使用说明,一般还有另一种方法用来查看帮助,如:ls –-help,这种方式绝大多数命令都支持。

操作实例如下:

man

w和who:w显示登录用户的详细信息;who显示登录用户

1
2
w 显示当前登录用户的详细信息
who 显示登录用户

操作实例如下:

w&who

last:显示最近登录系统的用户

1
last 显示最近登录的用户信息

操作实例如下:

last

date和clock:系统时间设置和时钟设置

1
2
3
date 显示当前的系统时间
date -s 2016-11-11 12:10:10 设置系统时间为2016-11-11 12:10:10
clock -r 对系统Bios中读取时间参数

操作实例如下:

date

uname:查看系统版本信息

1
2
uname -r 显示操作系统内核的version
uname -a 显示系统全部信息

操作实例如下:

uname

关闭和重新启动系统命令

1
2
3
4
reboot 重新启动计算机
shutdown -r now 重新启动计算机,停止服务后重新启动计算机
shutdown -h now 关闭计算机,停止服务后再关闭系统
halt 关闭计算机

su:切换用户

1
su root 切换到root用户

四. 监视系统状态命令
top:实时显示系统中各个进程的资源占用状况
操作实例如下:

top

free:查看内存和swap分区使用情况
操作实例如下:

free

vmstat:监视虚拟内存使用情况
操作实例如下:

vmstat

ps:显示进程信息

1
2
ps ux 显示当前用户的进程
ps ef 显示系统所有进程信息

操作实例如下:

ps

kill:中止某个进程,进程号可以通过ps命令得到

1
2
kill -9 109 中止进程编号为109的程序
kill all mysqld 中止所有mysqld的进程

五.用户和组相关命令
groupadd:添加组

1
groupadd minhow 添加minhow组

useradd:添加用户

1
useradd minhow 添加minhow用户

passwd:更改用户密码

1
passwd minhow 修改minhow用户密码

userdel:删除用户

1
userdel minhow 删除minhow用户

chmod:改变用户的权限;读、写、运行三项权限可以用数字表示,就是r=4,w=2,x=1,例如777,第一个7代表文件所属者的权限,第二个7代表文件所属者所在组的权限,第三个7代表其它用户的权限;就是rwxrwxrwx

1
2
chmod 666 minhow.txt 修改minhow.txt文件权限为可读写
chmod 777 minhow.txt 修改minhow.txt文件权限为该用户组的最高权限

六. 网络相关命令
ping:判断网络故障常用的命令

1
ping www.minhow.com

traceroute:路由跟踪

1
traceroute www.minhow.com 跟踪当前网站路由

nslookup:域名解析排错

1
nslookup www.minhow.com

七. 其他命令
ssh:远程登陆到其他UNIX主机

1
ssh root@192.168.1.8 使用用户名root登陆到192.168.1.8

telnet:登陆到远程主机

1
telnet 192.168.1.8 登陆到192.168.1.8

以上列举的是一些常用的shell命令,还有很多没有一一列举出来,大家可以查看linux的shell命令使用手册,Shell命令有非常强大和快速的处理能力,给我们平常的操作提供了很多方便。

最后更新: 2017年11月19日 20:17

原始链接: http://blog.minhow.com/2016/11/12/linux/shell-command/

× 请我吃糖~
打赏二维码