关于Shell与Linux的命令
什么是Shell?
Shell是系统的⽤户界⾯,提供了⽤户与内核进⾏交互的⼀种接⼝(命令解释器),Shell接收⽤户输⼊的命令并把他送⼊内核执⾏,在⽤户与系统之间进⾏交互。Shell在整个Linux中具有极其重要的地位。
Shell是⼀个⽤C语⾔编写的程序,它是⽤户使⽤Linux的桥梁
Shell的功能:
命令解释器是Shell最重要的功能。Linux系统中所有的可执⾏⽂件都可以作为Shll来执⾏
常见Linux中可执⾏的⽂件类
类别说明
Linux命令存放在 /bin、/sbin ⽬录下的命令
内置命令出于效率的考虑,将⼀些命令的解释程序构造在Shell内部
实⽤程序存放在/usr/bin、/usr/sbin、/usr/local/bin、/usr/local/sbin 等⽬录下的实⽤程序
⽤户程序⽤户程序经过编译⽣成可执⾏⽂件后可作为Shell命令运⾏
Shell脚本由Shell脚本编写的批处理⽂件
常见的Shell版本如下:
bash:多数Linux系统的默认Shell,包含了ksh的优点,接⼝强⼤,界⾯友好。
ksh:由Dava Kom编写,是UNIX系统上的标准Shell。
tcsh:C Shell的拓展
Shell的元字符:
代表任意字符串
代表任意字符
. 代表根⽬录或作为路径间隔符使⽤
\ 转义字符。当命令的参数要⽤到保留字时,要在保留字前⾯加上转义字符
<Enter> 续⾏符。可以使⽤续⾏符将⼀个命令⾏分写在多⾏上
$ 变量值置换,如SPATH表⽰环境变量PATH的值
’ 在’.…’.中间的字符均被当作⽂字处理,指令、⽂件名、保留字等都不再具有原来的意义
" 在"…"中间的字符会被当作⽂字处理并允许变量值置换命令替换,置换……中命令的执⾏结果
< 输⼊重定向字符
输出重定向字符linux登录命令
| 管道字符
& 后台执⾏字符。在⼀个命令之后加上字符“&”,该命令就会以后台⽅式执⾏
; 分割顺序执⾏的多个命令
() 在⼦Shell中执⾏⼀组命令
{} 在当前Shell中执⾏⼀组命令
!
执⾏命令历史记录中的命令
~ 代表登录⽤户的宿主⽬录(⾃家⽬录)
什么是⽂件?
在Linux上,⽂件被看作是字节序列,这种概念使得所有的系统资源有了统⼀的标识,这些资源包含普通⽂件或⽬录、磁盘设备、控制器、(键盘、显⽰器)、打印机等。
-普通⽂件
d⽬录,存放位置
l符号链接
c字符设备⽂件
b块设备⽂件
s套接字
p命名管道符
普通⽂件:普通⽂件可以是执⾏⽂件(⽂本、程序、脚本等)、源代码等类型,在windows中后缀名决定了⽂件的类型,但是在Linux中,可执⾏⽂件是⽤权限来标识的,只要有了可执⾏权限,,那么不论⽂件后缀是什么都可以执⾏,但是对于⼀些数据⽂件⼀般也遵循⽂件名后缀的规则。
常见的⽂件名后缀
.txt⽂件 ⽂本⽂件
.conf 配置⽂件
.html/.xml/.yml/.sql html、xml、yml、sql⽂件
.c/.cpp c/c++源码⽂件
.so/.ko/. lib 模块、库⽂件
.sh/.php/.py/.pl/.rb SheII/PHP/Python/Perl/Ruby脚本⽂件
.rpm RPM包⽂件
.tar 打包、存档⽂件
.gz/.bz2/.xz 由gzip/bzip2/xz ⽣成的压缩⽂件
./.tgz/.tar.bz2/.tbz/./.txz 压缩后的tar包⽂件
*.lock ⽤于表⽰某个程序或某种服务正在运⾏的锁⽂件
*~ 备份⽂件
⽬录和硬链接:
⽬录是由⼀组⽬录项组成。⽬录可以是对其他⽂件的指向。也可以是对其下的⼦⽬录的指向
硬链接:将两个⽂件名指向同⼀个存储空间,任意修改其中⼀个都不会影响另⼀个⽂件,它并不是⼀种特殊⽂件类型,⽽是允许多个⽬录指向同⼀⽂件的⼀种机制。
符号链接
符号链接⼜叫软连接,是指将⼀个⽂件指向零⼀个⽂件
软链接:将⼀个⽂件指向另⼀个⽂件,类似与快捷⽅式,如果删了源⽂件,那么另⼀个⽂件成为死链接。
设备⽂件:设备⽂件是指计算机中的外围硬件装置,也就是除了cpu和内存以外的所有设备,Linux下为了屏蔽⽤户对设备访问的复杂性,采⽤了设备⽂件,就可以向普通⽂件⼀样对设备进⾏读写访问,设备⽂件⽤来访问设备,包括硬盘、光驱、打印机等,每个设备⾄少与⼀个⽂件关联
设备⽂件⼜分为字符设备(如硬盘)和块设备(如磁盘)。
套接字和命名管道:
套接字和命名管道是Linux环境下实现进程间通信的(IPC)机制。
命名管道(FIFO)⽂件允许在同⼀计算机上的两个进程之间进⾏通信。
套接字(socket)允许运⾏在不同的计算机上的进程之间互相通信。
它们通常实在进程运⾏时创建或删除,⽆需管理员来⼲预。
Linux常⽤命令格式
Linux常⽤命令格式:Command[-option][argument}
Command: 即是要运⾏的命令的本⾝,说⽩了就是⼀个软件(程序)
Option: 是选项(可选),选项是控制命令运⾏状态和⾏为的(可多个选项⼀起,如df -ht)Argument: 是参数(可选),是命令要操作对象如⽂件、路径、数据、⽬录等;
系统信息相关:
1. lscpu或cat /proc/cpuinfo 显⽰cpu信息
free -m或cat /proc/meminfo | grep -i memtotal 显⽰物理内存⼤⼩
cat /etc/system-release 查看系统发⾏版本
uname -r 查看内核版本
uanme -a 显⽰版本详细信息
arch 查看机器架构
lsmod 查看内核模块
dmesg 查看系统启动信息
lsblk 查看系统中的块设备
fdisk -l 查看磁盘分区
findmnt 查看挂载的⽂件系统
df -Ph 查看磁盘剩余空间
2. df -h 显⽰已经挂载的分区列表
date/timedatectl 查看本地时间和⽇期
localectl 查看语⾔⽀持与键盘设置
3. (centos)软件包安装
4. yum install package_name 下载并安装⼀个rpm包
yum update package_name 更新⼀个rpm包
yum remove package_name 删除⼀个rpm包
yum list 列出当前系统中安装的所有包
yum search package_name 在rpm仓库中搜寻软件包
yum clean packages 清理rpm缓存删除下载的包
yum repolist 查看已经启⽤的软件更新源
rpm -qa 查看已经安装的软件
yum autoremove ⾃动查并删除所有缓存的包
yum check-update 检查可更新的所有软件包
yum update 下载更新已安装的所有软件
yum groups install package_name 下载软件包,并⾃动解决依赖关系
⽂件和⽬录
1. ls 显⽰⽂件和⽬录列表
ls -al 以列表形式显⽰所有⽂件、⽬录(包含隐藏⽂件、⽬录)
ls -R 递归显⽰当前⽬录及其⼦⽬录下的⽂件及⽬录
mkdir /dirname/dirname1 以绝对路径创建⼀个空⽬录
mkdir -p /srv/{abc,def}/html 递归创建 /srv/abc/html 和 /srv/def/html ⽬录
touch file file1 ⽣成file、file1空⽂件
touch oldfile 修改已有⽂件的时间为当前时间
cd dirname 切换到⽬录
cd - 切换到上⼀次使⽤cd命令前的⽬录
cd … 切换到当前⽬录的上级⽬录
cd …/… 切换当前⽬录的上两级⽬录
tree 树状显⽰当前⽬录结构
cp 复制⽂件
cp file1 dirname 复制单个⽂件到⽬录
cp file1 file2 dirname 复制两个⽂件到⽬录
cp -r /etc/dir . 复制/etc/dir ⽬录及所有的⽂件复制到当前⽬录
mv file1 file 2 将file1改名为file2
mv file /dirname 移动到⽬录
rm -rf file/dir 强制删除⽂件或⽂件夹
rmdir dir 删除空⽂件夹
find . -name ‘my*’ 从当前⽬录查名字为my开头的⽂件
find /home -user “osmond” 从/home⽬录下开始查⽤户属主为osmond的⽂件
信息显⽰:
whereis ls 查程序ls的位置
history 显⽰历史命令
history -c 清空历史命令
cal 2015 显⽰2015年⽇历
ifconfig eth0 显⽰⽹卡eth0的详细信息
netstat -antp 显⽰所有已经建⽴的连接
du -sh 显⽰当前⽬录已使⽤量
df -h ⽬录名 显⽰⽬录磁盘使⽤量
who 显⽰当前tty或伪终端占⽤
id 显⽰⽤户uid、gid
⽹络命令:
ifconfig 显⽰⽹卡信息及IP地址
ifconfig ⽹卡名 显⽰⼀个eth0的配置
ifup ⽹卡名 启⽤⼀个 ‘eth0’ ⽹络设备
ifdown ⽹卡名 禁⽤⼀个 ‘eth0’ ⽹络设备
wget url/uri 下载某个⽂件
ifconfig eth0 promisc 设置 ‘eth0’ 成混杂模式以嗅探数据包 (sniffing)
dhclient eth0 以dhcp模式启⽤ ‘eth0’
route -n 显⽰路由表
echo “1” > /proc/sys/net/ipv4/ip_forward 开启路由转发(数据转发)
hostname 显⽰系统主机名
ping hostname/IP地址 ⽹络连通性测试
ss或netstat 显⽰⽹络状态信息
firewall-cmd --list-all 查看防⽕墙规则
Vi编辑器:
Vi 是 Visual Interface的简称,可以执⾏输⼊、删除、查、替换、块操作等众多⽂本操作,⽽且⽤户可以根据⾃⼰的需要对其进⾏定制,这是其他编辑器所不具备的功能。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。