Shell是Linux为用户提供的一个使用其服务的命令接口,基于该接口的实现有很多,其中最流行的是Bash Shell。
[root@test /root]# command -options param1 param2 …
@左边的root表示用户名,右边的test表示当前主机名,test右边的/root表示当前目录,#为提示符,后面可以输入命令。
command为命令,命令过长可使用\续接到下一行,其后不要再写任何内容,输入\后直接回车在下一行写。
options为命令选项,以-开头,若选项为完整名称用–(两个中划线)开头,没有为缺省值。param为命令参数,可有多个。
Linux命令严格区分大小写,在输入命令时可以通过按tab键,补全命令或显示当前目录下的目录与文件信息。
date
使用默认格式输出日期时间
===========================================
cal
使用默认格式显示日历
===========================================
clear
清屏
===========================================
ls
显示当前目录或指定目录的全部文件信息,包括目录信息,如ls -al。
选项a,表示显示隐藏文件,隐藏文件以.开头。
选项l,表示显示文件的详细信息。
Linux为多用户多任务系统,存在多个用户或多个任务同时在一台主机上运行的情况,由此Linux有用户与群组的概念。
显示的文件信息形式为文件属性、连接数、文件拥有者、文件所属群组、文件容量、文件最后修改时间、文件名。
-rw——-表示文件属性,共十个。
第一个-表示文件类型,取值d为目录、-为文件、b为可供存储的接口设备、c为串行端口设备、l为链接文件。
剩下的9个-,每三个一组,分别表示文件拥有者的属性、文件所属群组的属性、其他人关于此文件的属性。每组取值均为rwx,分别表示可读、可写、可执行,不具备某功能用-代替。
对于目录,r表示可看目录下的文件或子目录信息,w表示可对目录下的文件或子目录进行操作,x表示可以进入该目录,由此要对目录进行操作,必须先放开x权限,否则不能进入目录。
===========================================
chgrp
修改文件所属群组,如chgrp grp file,将file文件所属的群组改为grp。
===========================================
chown
修改文件的拥有者,如chown usr file,将file文件的拥有者改为usr。
===========================================
chmod
修改文件属性,如chmod 777 file。r为4、w为2、x为1,rwx数字加和为属性配置,7表示可读写执行,777表示文件拥有者、群组、其他人可读写执行该文件。
===========================================
cd
改变目录,如cd absPath或relPaht。
cd /,返回根目录。
cd ~,返回用户目录。
绝对路径从根目录开始,以根目录/开头,如/usr/share/doc。
相对路径从当前目录判断,直接写目录名或./目录名从当前目录开始,../目录名从当前目录的上一级目录开始。
Linux的文件结构为树形结构,全部文件或目录均从根目录开始。根目录有且只有一个为/,本身就是一个目录,其下可放其它目录或文件。通常不建议在根目录下直接放文件,而是在根目录下建立子目录后再放文件。
===========================================
pwd
以绝对路径的形式显示当前用户所在目录。
#提示符前仅显示用户当前所在的一级目录,而不是完整路径。
===========================================
mkdir
创建目录,如mkdir tmp-lt。目录必须一层层地创建,不能一次创建多层。
===========================================
rmdir
删除目录,如rmdir tmp-lt。
目录必须一层层地删除,且必须为空,通过命令rm –rf 目录名,可强制删除非空目录。
===========================================
touch
创建文件,如touch file.txt。
Windows下文件通过扩展名表示是否可执行,Linux下文件扩展名仅起标识作用,实际文件是否可执行取决于是有无x权限。
===========================================
cp
复制文件,如cp a b,将文件a复制一份,且复制的文件名为b。
===========================================
rm
删除文件,如rm –f file.txt。
删除目录,如rm -rf tmp-lt。
选项f,表示强制删除,否则系统会提示选择是否确定删除。
选项r,表示递归删除,用于删除非空目录。
===========================================
mv
重命名,如mv old new,将old文件或目录重命名为new文件或目录。
===========================================
./
执行文件,如./test.exe,必须有x权限。
键盘按下ctrl+c,中断当前程序。
===========================================
cat
从第一行开始显示文件内容,如cat -n file.txt。
选项n,表示显示行号。
cat file.txt | grep zz,表示从file.txt中查找出现zz内容的行,并返回显示。
===========================================
tac
从最后一行开始显示文件内容,如tac file.txt。
tac是cat反写过来的。
===========================================
more
一页一页地显示文件内容,如more file.txt。
用键盘只能按回车向下翻页。
===========================================
less
一页一页地显示文件内容,如less file.txt。
可以用键盘的向上向下键翻页。
===========================================
head
显示文件的前几行内容,如head -n 20 file.txt,显示文件前20行内容,默认显示前10行内容。
===========================================
tail
显示文件的后几行内容,如tail -n 20f file.txt,显示文件后20行内容,并显示行号,默认显示后10行内容。
选项f,表示循环显示。
选项F,表示循环打开文件显示。
head -n 20 file.txt | tail -n 10,显示文件第11-20行内容。|为管线命令,指在上一个操作的基础上继续操作。
以上查看文件的命令可通过按键盘q键,直接退出,按/进入命令行,输入关键词进行查找操作。
===========================================
vi
打开编辑文件,如vi file.txt,必须r、w权限。
若文件不存在,会新建文件再打开,vi有三种执行模式
一般模式
进入vi的默认模式,无法编辑,可删除、复制、粘贴、查找、替换以及通过键盘的上下左右移动光标操作。
ctrl+f向下翻页、ctrl+b向上翻页、x在当前行向后删除一个字符、X在当前行向前删除一个字符、dd删除光标所在的行、yy复制光标所在的行、p在当前光标下一行粘贴、P在当前光标上一行粘贴、u撤销之前的操作。
编辑模式
在一般模式下按i进入编辑模式,按Esc键回到一般模式。
命令模式
在一般模式下按/或:进入命令模式,光标移到最后一行,可输入命令。
/key从光标后查找关键字。
?key从光标前查找关键字。
:1,$s/k1/k2/g从第一行到最后一行查找关键字k1并替换为k2。
:1,$s/k1/k2/gc从第一行到最后一行查找关键字k1并替换为k2且替换前提示用户确认。
:w保存。
:w!强制保存。
:wq保存并退出。
:w file另存为file。
:q退出。
===========================================
echo
输出变量信息,如echo $PATH,输出系统环境变量PATH的信息。
Shell规定命令中变量前加$以区分字符串信息,通常系统变量用大写,用户自定义变量用小写。
===========================================
set
输出全部环境变量及其值。
===========================================
env
仅输出全部系统环境变量及其值。
===========================================
in
创建链接文件,如in -s /bin /root/bin。
选项s表示创建软链接,默认创建硬链接。第一个参数为原文件,第二个参数为链接文件。
/root下的bin实际对应的是根目录/下的bin,将/root/bin里的内容删除,实际会将/bin里的内容删除,由此/root下的东西未必都是root的,尤其注意链接文件。
Linux中每个文件都有一个incode,用于存放该文件的属性及其在磁盘上的存储位置。
全部文件的incode放在一个表中,系统先从该表找到文件的incode,然后从incode找出文件在磁盘的位置,最后从磁盘找到该文件。
目录与文件同样也对应一个incode,但目录仅消耗incode,其不会在磁盘上存储信息。
硬链接文件
类似原文件的别名,与其共用同一个incode,两个文件共享磁盘的同一片数据区,但是incode的incode link count域增1。
删除一个文件时,incode link count域会减1,只要不为0,磁盘记录区的内容就不会删除。
硬链接文件依赖incode结构,不可跨文件系统,且Linux规定硬链接文件不可链接目录,否则会出现死循环。
软链接文件
又叫符号链接文件,类似Windows的快捷方式,是一个完整的文件,有自己的内容,有自己的incode。
文件的内容为原文件的地址,通过软链接文件可直接同步操作原文件。
若删除源文件,软链接文件会找不到目标文件,但是删除软链接文件不影响原文件,其可以跨文件系统,可以指向目录。
===========================================
ps
显示当前所有进程,如ps -ef。
选项e,显示所有进程,等同于A。
选项f,显示所有进程启动时的命令行。
uid,用户id
pid,进程id
ppid,当前进程的基进程id
===========================================
kill
发送指定的信号到指定的进程,如kill -2 pid。
选项2,信号编号,等同于在前端运行进程时按下ctrl+c。
不指定信号,缺省为15,终止指定进程。
信号9,表示强制终止指定进程。
===========================================
rz
从本地上传文件到Linux服务端,如rz xxx.zip。
===========================================
unzip
解压zip文件,如unzip xxx.zip。
===========================================
tar
压缩或解压指定的文件。
tar -cf xx.tar zz,将zz压缩到xx.tar,xx.tar是一个新的压缩包。
tar -rf xx.tar zz,将zz添加到已存在的压缩包xx.tar。
tar -uf xx.tar zz,用zz更新压缩包xx.tar中的zz内容。
tar -xf xx.tar,解压xx.tar到当前目录。
选项f,其后必须跟压缩包文件名。
选项c、r、u、x,有且只能选一个,分别表示压缩,添加,更新,解压。
对xx.tar.gz类型的压缩包,必须加z选项。
tar xzf xx.tar.gz,解压xx.tar.gz到当前目录。