shell的本意就是“壳”的意思,其实已经很形象的说明了shell在Linux系统中的作用。shell就是围绕在Linux内核之外的一个“壳”程序,用户在操作系统上完成的所有任务都是通过shell与Linux内核的交互实现的。shell本身是一个以C语言编写的程序,是用户和操作系统内核之间沟通的桥梁。shell既是一种命令解释程序,又是一种功能强大的解释型程序设计语言。作为命令解释程序,shell解释用户输入命令,然后提交到内核处理,最后把结果返回给用户。
shell执行命令解释程序的具体过程为:用户在命令行输入命令并提交后,shell程序首先检查它是否为内置命令,如果是,就通过shell内部的解释器将命令解释为系统调用,然后提交给内核执行;如果不是shell内置的命令,那么shell会按照用户给出的路径或者根据系统环境变量的配置信息在硬盘寻找对应的命令,然后将其调入内存,最后再将其解释为系统调用,提交给内核执行。如果没有,则提示“Command not found”。
用户登录系统后,shell命令行启动。命令提示符会显示当前登录的用户名和用户当前所在的路径。shell命令的一般格式为:
command [-options] [arguments]
shell中常用的有三个通配符:"*", "?", "[]",用于进行模糊匹配。shell还有一个自动补全命令行的功能,就是当用户输入某个命令的一部分之后,按Tab键,shell就会根据系统环境变量信息提示出于用户输入命令相似的所有命令和文件。如果是唯一的,则会自动补全。
硬件资源管理:
lspci /* 查看所有的PCI设备,比如主板、声卡、显卡和网卡等 */
lspci -v /* 得到更详细的PCI设备信息 */
more /proc/cpuinfo /* 查看CPU信息 */
more /proc/meminfo /* 查看系统内存信息 */
fdisk -l /* 查看磁盘分区信息 */
mount -t 文件系统类型 设备名 挂载点 /* 挂载设备, /media目录是一个自动挂载目录,/mnt目录专门用作临时挂载点目录 */
mount -t vfat /dev/sda1 /mnt/usb /* 挂载U盘到/mnt/usb */
umonut 挂载目录 /* 卸载设备 */
系统管理与维护
ls -al 目录名 /* 显示目录下的内容,缺省为当前路径 */
pwd /* 显示当前的工作目录 */
cd 目录名 /* 改变当前工作目录 */
date /* 显示系统时间 */
passwd 用户名 /* 修改对应用户密码,需要权限,缺省为当前用户 */
su - /* 变为超级用户,-表示加载相应用户下的环境 */
clear /* 清除屏幕信息 */
man 命令名称 /* 显示指定命令的帮助信息 */
who /* 显示目前登录到系统的用户 */
w 选项 用户 /* 显示当前登录到系统的用户信息 */
uname -a /* 显示操作系统的全部信息 */
dmesg /* 显示系统缓冲区的内容 */
free /* 显示系统内存状态 */
ps -aux /* 显示所有的进程信息 */
top /* 显示系统中各个进程的资源占用情况 */
文件管理与编辑
mkdir 目录名 /* 在当前目录下创建一个目录 */
mkdir -p 路径名 /* 创建对应路径的目录 */
more 文件名 /* 读取文本文件,每次显示一屏,在每屏后暂停 */
cat 文件名 /* 将文件内容输出到标准输出 */
cat 文件1 文件2 ... 文件n > 文件名 /* 将多个文本文件合成一个文件 */
diff 选项 文件1 文件2 /* 比较文件的差异 */
grep 选项 需要查找的字符串 文件名 /* 对文件的每一行进行搜索,找到这输出该行的内容 */
rm -rf 文件或目录 /* 删除文件或目录 */
touch 文件名 /* 创建一个文件 */
ln 文件名 目录名/* 硬链接 */
ln -s 文件名 目录名 /* 软连接 */
file 文件名 /* 显示文件的类型 */
cp -r 文件或目录 目录 /* 拷贝文件或目录到另一个目录 */
find . -name "*.txt" -print /* 在当前目录及其子目录下查找所有满足“*.txt”的文件 */
mv 源文件或目录 目标文件或目录 /* 移动或重命名文件/目录 */
压缩与解压
zip -r xx.zip 目录名/文件名 //创建zip
unzip xx.zip -d 目录名 //解压zip
tar -cvf xx.tar 目录名 //创建tar
tar -xvf xx.tar //解压tar 需要先切换到指定目录
tar -zcvf xx.tar.gz 目录名 //创建tar.gz
tar -zvxf xx.tar.gz //解压tar.gz 需要先切换到指定目录
tar -jcvf xx.tar.bz2 目录名 //创建tar.bz2
tar -jvxf xx.tar.bz2//解压tar.bz2 需要先切换到指定目录
网络设置与维护
ifconfig /* 配置网络或显示当前网络接口状态 */
netstat -rn /* 查看当前系统的路由信息 */
netstat -an /* 查看当前系统中所有有效的TCP连接 */
netstat -tlnpu /* 显示目前系统中已经启动的网络连接和对应的端口信息 */
netstat -atunp /* 查看当前系统上处于连接状态的资源信息 */
traceroute hostname /* 追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置 */
网友评论