Linux的基本命令都存放在/bin中,里面是命令的二进制文件。下面对常用命令进行讲解。
du :查看文件或者目录的大小。常用格式:du -h 文件名/目录。常用选项-h:易读,-s :列出目录的总大小,不列出文件的大小。
stat :查看文件自身信息(时间,权限,inode,大小等);常用格式:stat fileName;
mkdir :创建目录,常用选项:-p,自动创建需要的父母录,-v :创建完目录后查看创建的目录。常常 -pv 使用。
[plain] view plain copy
mkdir -pv /mnt/x/m
mkdir -pv /mnt/y
以上两个等价与:mkdir -pv /mnt/{x/m,y}
rmdir :删除空目录,如果目录中有文件怎删除失败,常用选项: -pv:意义同mkdir;
文件的创建和删除:
touch fileName:修改文件的时间信息。如果指定的fileName不存在,则创建一个空的文件。常用格式:touch fileName:创建文件;touch [option] fileName:修改文件的时间信息。常用选项有-m -a - t -c等;
nano fileName:创建并进行文件编辑,进入后按照提示就能操作。
cat fileName:查看文件的内容。
cp 源文件路径 目的文件:复制文件。该命令可以进行:将一个文件复制为另一个文件(只需将目的文件的文件名修改为想要的名字),将多个文件复制到一个目录,选项 -r:递归复制。如果cp 的对象是一个链接,则默认复制的是链接指向的文件。可以用 -p:指定复制的是链接。
install:复制并修改文件,与cp的比较如下
1、install和cp类似,都可以将文件/目录拷贝到指定的地点。2、如果目标文件存在,cp会先清空文件后往里写入新文件,而install则会先删除掉原先的文件然后写入新文件。所以在Makefile里一般会用到install3、whatis installinstall (1) - copy files and set attributes可以设置文件属性。cp (1) - copy files and directories4、install命令可以打印出更多更合适的debug信息5、实例:install -d /usr/bininstall -p -D -m 0755 targets /usr/bin相当于mkdir -p /usr/bincp targets /usr/binchmod 755 /usr/bin/targetstouch /usr/bin/tagets
mv :移动文件或者目录,如果同一个目录下并改名,则为重命名。如果大量文件重命名,用rename来操作,他是用匹配和替换字符来修改名字。
su :切换用户,常用格式:su name;
rm :删除文件或者目录,常用选项 -r :递归删除(比rmdir好用);
查看文本的命令:
cat :查看文件全部内容,常用格式:cat -n name;显示行号;
strl + c:终止命令或者不执行命令。
less :将文件一屏一屏显示(空格键来看下一屏,最后一屏会有END,q退出),而cat是滚屏。
more :和less 很相似,空格看后一瓶,b看前一屏。
head :查看文件前n行,默认n=10;常用格式:head -n name;
tail :查看文件倒数n行。。。;
文本处理命令:
包括:cut join sed awk
cut :表的竖直方向切片,常用选项: -d :指定分隔符,默认为空格,-f :指定要显示的字段(域),如 -f1-3,-f1,3;例子:cut -d ' ,' -f 1-3 fileName;意义:以都好切片,并显示所有行的1至3段;
sort :文本内容排序(和cut一样,只是让显示的内容排序,不影响源文件本身信息和结构),默认按照ASCII升序(从左到右比较)。有很多选项,具体看man;
uniq :处理相邻的重复行, 选项 -c:显示相邻行重复的次数,-d:只显示重复的行。
wc:文本统计命令,有各种选项,略;
tr :字符处理命令:大小写,字幕修改等。
bash及其特性
进程是程序的副本,是程序运行的实例。在每个进程看来,当前主机上只存在内核和当前进程(所以与其他进程毫无关联,所以Linux的不同终端没有关联)
ctrl + l ;清屏
history:命令历史,命令都在缓冲区中,上下键控制。常用选项:- c :清除命令历史;-d :删除指定位置的命令历史。当退出CLI时,命令历史会被清除并保存在/home/userName/.bash_history中(注意是影藏文件,用ls -la能列出),下次开机可以查看。
!n :执行命令历史中第n条命令。!-n:执行倒数第N条。
alias 别名 = ‘命令 选项 参数’ :指定命令别名;取消用:unalias 别名;如将上述命令写入配置文件,则这个别名在下次开机也有效。
命令替换:类似C++中printf的%d;格式 ${命令},或者反引号 ‵ 命令‵;反引号:键盘左上角那个和~在一起的引号。例子:echo "the dir is ${pwd}" ;
bash支持的引号:1.反引号:命令替换;2.“”:弱引号:可以实现变量替换;3.‘’单引号,强引用,表示字符本身,不能完成变量替换。
globbing :文件通配,就是字符匹配,Linux还支持正则匹配。由于两者符号不一样,而且正则匹配更强大通用,人们阶段就不看globbing了,以免弄混淆
管道和正则匹配
管道:将一个命令的输出作为另一个命令的输入,管道的操作符为 “|” ,常用格式:命令一 | 命令二 |命令三 | ...例如: cat passwd | more;将cat passwd的内容传给more命令显示;
正则匹配grep(还有正则表达式的扩展此处不介绍了):
格式:grep 选项 匹配模式 文件 :在‘文件’中查找 符合‘匹配模式’条目;经常和管道一起使用。常用选项: -i :忽略大小写; --color; -v :显示没有被模式匹配到的行; -o:只显示匹配的字符串。
匹配模式如下:
* :匹配前一个字符任意次
\?:匹配前一个字符1次或者0次
. : 任意单个字符
.* :任意长度任意字符
\{m,n\} :匹配前面的字符m<= 次数<=n;
^ :行首锚定;
$ :行尾锚定;所以空白行为 ^$ ;
\< :后面的内容作为单词出现在首 ,对应有 \>