1. time测算一个命令(即程序)的执行时间,在命令前面加入time即可
time ./process
time ps aux
2. gcc命令,对于一个用linux开发C程序的人来说,这个命令非常重要,用于把C语言的源程序文件,编译成可执行程序,由于g++的很多参数与它非常近似,所以这里指介绍gcc的参数
-o: output, 用于指定生成一个可执行文件的文件名
-c: 把源文件生成目标文件(.o),并阻止编译器创建一个完整的程序
-I: 增加编译时搜索头文件的路径
-L:增加编译时搜索静态链接库的路径
-S:把源文件生成汇编代码文件
-lm: 表示标准库的目录名为libm.a的函数库
-lpthread: 连接NPTL实现的线程库
-std=:用于指定C语言的版本
- # 例如:
- # 把源文件test.c按照c99标准编译成可执行程序test
- gcc -o test test.c -lm -std=99
- #把源文件test.c转换为相应的汇编程序源文件test.s
- gcc -S test.c
3. vim命令主义用于文本编辑,接一个或多个文件名作为参数,如果文件存在就打开,如果文件不存在就以该文件名创建一个文件。vim是一个非常好用的文本编辑器,它里面有很多非常好用的命令。
4.chmod命令,改变文件的权限
chmod [-R] xyz 文件或目录
同时 chmod还可以使用u(user)、g(group)、o(other)、a(all)和+(add)、-(delete)、=(set)跟rwx搭配来对文件的权限进行更改
5.chgrp用于改变文件所述用户组
chgrp [-R] dirname/filename
-R: 进行递归的持续对所有文件和子目录更改
#例如:
chgrp users -R ./dir #递归地把dir目录下中的所有文件和子目录下所有文件的用户组修改为users
6.chown
该命令用于改变文件的所有者,与chgrp命令的使用方法相同,只是修改的文件属性不同
7.cat命令 该命令用于查看文本文件的内容,后接要查看的文件名,通常可用管道与more和less一起使用,从而可以一页页地查看数据
使用方式: cat[-AbeEnstTuv] [--help] [--version] filename
cat text | less #查看text文件中的内容
#这条命令也可用less text来代替
-n或--number 由1开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting
范例:
cat -n textfile1>textfile2 把textfile1的内容加上行号后输入到textfile2里
cat /dev/null > /etc/text.txt 清空/etc/test.txt档案内容
8.tar命令,用于对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip何bzip等)进行压缩和解压
-c:新建打包文件
-t:查看打包文件的内容含有哪些文件名
-x:解打包或解压缩功能,可以搭配-C(大写)指定解压的目录,-c,-t,-x不能同时出现在同一条命令中
-j:通过bzip2的支持进行压缩、解压缩
-z:通过gzip的支持进行压缩、解压缩
-v:在压缩、解压缩过程中将正在处理的文件名显示出来
-f filename:filename为要处理的文件
-C dir:指定压缩、解压缩的目录dir
压缩; tar -jcv -f filename.tar.bz2要被处理的文件或目录名称
查询:tar -jtv -f filename.tar.bz2
解压:tar -jxv -f filename.tar.bz2 -C要解压缩的目录
9.file命令 直接用于判断接在file命令后的文件的基本数据,因为在linux下文件的类型并不是以后缀为分的,
所以这个命令对我们来说就很有用了,用于辨识该文件的类型,它的用法非常简单,基本语法如下:
-b:列出辨识结果时不显示文件名称
-c:详细显示指令执行过程,便于排错或分析程序执行的情形
-f<文件名称>:指定名称文件
-L:直接显示符号链接所指向的文件类别
-m<魔法数字文件> 指定魔法数字文件。
-v 显示版本信息。
-z 尝试去解读压缩文件的内容
10.kill命令 删除执行中的程序或工作
kill [-s <信息名称或编号>] [程序] 或 [-l <信息编号>]
补充说明:kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。
1:SIGHUP,启动被终止的进程
2:SIGINT,相当于输出ctrl + c,中断一个程序的进行
9:SIGKILL,强制中断一个进程的进行
15:SIGTERM,以正常的结束进程方式来终止进程
17; SIGSTOP,相当于输入ctrl + z毛暂停一个进程的执行
- # 以正常的结束进程方式来终于第一个后台工作,可用jobs命令查看后台中的第一个工作进程
- kill -SIGTERM %1
- # 重新改动进程ID为PID的进程,PID可用ps命令通过管道命令加上grep命令进行筛选获得
- kill -SIGHUP PID
11.killall命令
用于向一个命令启动的进程发送一个信号
killall [-iIe] [command name]
参数:
-i:交互式,需要删除时会询问用户
-e:后面接的command name要一致,但command name不能超过15个字符
-I:命令名称忽略大小写
例如:
killall -SIGHUP syslogd #重新启动syslogd
12. ps命令,用于将某个时间点的进程运行情况选取下来并输出,显示进程的动态,process之意
-A:列出所有的行程
-a:不予terminal有关的所有进程
-w:显示加宽可以显示较多的咨询
-au:显示较详细的咨询
ps -ax:不与terminal有关的所有进程
ps -aux:查看系统所有的进程数据
ps -lA:查看系统所有的进程数据
ps axjf: 查看连同一部分进程数状态
13. rm命令 用于删除文件或目录,remove之意
-f: force,忽略不存在的文件,不会出现警告消息
-i:互动模式,删除前询问用户是否操作
-r:递归删除,最常用于目录删除,是一个非常危险的参数
例如:
rm -i filename #删除前询问
rm -fr dir #强制删除dir中的所有文件
14. mv 用于移动文件、目录或更名,move之意
-f:
-i:
-u:
该命令可以把一个文件或多个文件一次移动到一个文件夹中,但是最后一个目标文件一定要是dir
15.cp 用于复制文件,可以把多个文件一次性地复制到一个目录下
-a:连同文件的特性一起复制
-p:连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-i:若目标文件已经存在是,覆盖是会先询问操作是否进行
-r:递归持续复制,用于目录的复制行为
-u:目标文件与源文件有差异时才会复制
例如:
cp -a file1 file2 #连同文件的所有特效把file1复制成file2
cp file1 file2 file3 dir #将file1, file2, file3复制到dir里
16. find是一个基于查找的功能非常强大的命令,相对而言,它的使用和参数也相对多
- find [PATH] [option] [action]
- # 与时间有关的参数:
- -mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件;
- -mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;
- -mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;
- -newer file : 列出比file还要新的文件名
- # 例如:
- find /root -mtime 0 # 在当前目录下查找今天之内有改动的文件
- # 与用户或用户组名有关的参数:
- -user name : 列出文件所有者为name的文件
- -group name : 列出文件所属用户组为name的文件
- -uid n : 列出文件所有者为用户ID为n的文件
- -gid n : 列出文件所属用户组为用户组ID为n的文件
- # 例如:
- find /home/ljianhui -user ljianhui # 在目录/home/ljianhui中找出所有者为ljianhui的文件
- # 与文件权限及名称有关的参数:
- -name filename :找出文件名为filename的文件
- -size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件
- -tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、
- 目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p);
- -perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755;
- -perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示
- -perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示
- # 例如:
- find / -name passwd # 查找文件名为passwd的文件
- find . -perm 0755 # 查找当前目录中文件权限的0755的文件
- find . -size +12k # 查找当前目录中大于12KB的文件,注意c表示byte
17. grep命令用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,通常与管道命令一起使用,用于
对一些命令的输出进行筛选加工等,它的简单语法为
grep [-acinv] [--color = auto] '查找的字符串' filename
常用参数:
-a:将binary文件以text文件的方式查找数据
-c:count,计算查找到的“查找的字符串”的次数
-i:忽略大小写的区别
-v:反向选择,即显示没有所查找内容的那一行
# 取出文件/etc/man.config中包含MANPATH的行,并把找到的关键字加上颜色
grep --color=auto 'MANPATH' /etc/man.config
# 把ls -l的输出中包含字母file(不区分大小写)的内容输出
ls -l | grep -i file
18. ls命令
- -l :列出长数据串,包含文件的属性与权限数据等
- -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
- -d :仅列出目录本身,而不是列出目录的文件数据
- -h :将文件容量以较易读的方式(GB,kB等)列出来
- -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
19. cd命令这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。
cd /root/Documents
cd ./path #切换到当前目录下的path目录中, “.“表示当前目录
cd ../path #切换到上层目录中的path目录中, ”..“表示上层目录
20. scp 命令
scp就是security copy,用于将文件或者目录从一个Linux系统拷贝到另一个Linux系统下。scp传输数据用的是SSH协议,保证了数据传输的安全,其格式如下:
scp 远程用户名@IP地址:文件的绝对路径 本地Linux系统路径
这是第一种,将远程Linux系统上的某个文件或者目录拷贝到本地Linux系统上来。
scp 本地Linux系统文件路径 远程用户名@IP地址:远程系统文件绝对路径名
这是第二种第二种是将本地的某个文件或者目录拷贝到远程Linux系统的某个路径下。
2、举例
(1)目前我们处在IP为“192.168.60.133”的Linux系统下,计划将系统下的/home/ixdba/etc.tar.gz文件拷贝到IP为“192.168.60
168”的远程Linux系统中root用户下的/tmp目录下:
scp /home/ixdba/etc.tar.gz root@192.168.60.168:/tmp
命令输入完毕,会要求输入“192.168.60.168”服务器root的密码,然后开始远程拷贝数据。
如果我们处在“192.168.60.168”服务器上,也可以使用下面的命令传输数据:
scp root@192.168.60.133:/home/ixdba/etc.tar.gz /tmp
命令输入完毕,此时会要求输入“192.168.60.133”服务器root的密码,然后开始远程拷贝数据。
例如:scp ./id_rsa.pub jing.wei@10.28.8.20:/home/jing.wei
进入一个服务器将当前目录下 id_rsa.pub拷贝到另一个服务器。
(2)将本地/etc目录中所有的文件和子目录拷贝到IP为“192.168.60.135”的远程Linux系统的root用户下的/opt目录中:
scp -r /etc root@192.168.60.135:/opt
这里的选项“r”与cp命令的“r”选项含义相同。