2023年8月3日发(作者:)

terminal常⽤命令ls   显⽰⽂件或⽬录 -l 列出⽂件详细信息l(list) -a 列出当前⽬录下所有⽂件及⽬录,包括隐藏的a(all)mkdir 创建⽬录 -p 创建⽬录,若⽆⽗⽬录,则创建p(parent)cd 切换⽬录touch 创建空⽂件和更新时间echo 创建带有内容的⽂件。cat 查看⽂件内容cp 拷贝mv 移动或重命名rm 删除⽂件 -r 递归删除,可删除⼦⽬录及⽂件 -f 强制删除find 在⽂件系统中搜索某⽂件wc 统计⽂本中⾏数、字数、字符数grep 在⽂本⽂件中查找某个字符串rmdir 删除空⽬录tree 树形结构显⽰⽬录,需要安装tree包pwd 显⽰当前⽬录ln 创建链接⽂件more、less 分页显⽰⽂本⽂件内容head、tail 显⽰⽂件头、尾内容ctrl+alt+F1 命令⾏全屏模式

系统管理命令stat 显⽰指定⽂件的详细信息,⽐ls更详细who 显⽰在线登陆⽤户whoami 显⽰当前操作⽤户hostname 显⽰主机名uname 显⽰系统信息top 动态显⽰当前耗费资源最多进程信息ps 显⽰瞬间进程状态 ps -auxdu 查看⽬录⼤⼩ du -h /home带有单位显⽰⽬录信息df 查看磁盘⼤⼩ df -h 带有单位显⽰磁盘信息ifconfig 查看⽹络情况ping 测试⽹络连通netstat 显⽰⽹络状态信息man 命令不会⽤了,找男⼈ 如:man lsclear 清屏alias 对命令重命名 如:alias showmeit="ps -aux" ,另外解除使⽤unaliax showmeitkill 杀死进程,可以先⽤ps 或 top命令查看进程的id,然后再⽤kill命令杀死进程。

打包压缩相关命令gzip:bzip2:tar: 打包压缩 -c 归档⽂件 -x 压缩⽂件 -z gzip压缩⽂件 -j bzip2压缩⽂件 -v 显⽰压缩或解压缩过程 v(view) -f 使⽤档名例:tar -cvf /home/ /home/abc 只打包,不压缩tar -zcvf /home/ /home/abc 打包,并⽤gzip压缩tar -jcvf /home/2 /home/abc 打包,并⽤bzip2压缩当然,如果想解压缩,就直接替换上⾯的命令 tar -cvf / tar -zcvf / tar -jcvf 中的“c” 换成“x” 就可以了。

关机/重启机器shutdown -r 关机重启 -h 关机不重启 now ⽴刻关机halt 关机reboot 重启 Linux管道将⼀个命令的标准输出作为另⼀个命令的标准输⼊。也就是把⼏个命令组合起来使⽤,后⼀个命令除以前⼀个命令的结果。例:grep -r "close" /home/* | more 在home⽬录下所有⽂件中查找,包括close的⽂件,并分页输出。

Linux软件包管理dpkg (Debian Package)管理⼯具,软件包名以.deb后缀。这种⽅法适合系统不能联⽹的情况下。⽐如安装tree命令的安装包,先将传到Linux系统中。再使⽤如下命令安装。sudo dpkg -i tree_1.5.3-1_ 安装软件sudo dpkg -r tree 卸载软件

注:将传到Linux系统中,有多种⽅式。VMwareTool,使⽤挂载⽅式;使⽤winSCP⼯具等;APT(Advanced Packaging Tool)⾼级软件⼯具。这种⽅法适合系统能够连接互联⽹的情况。依然以tree为例sudo apt-get install tree 安装treesudo apt-get remove tree 卸载treesudo apt-get update 更新软件sudo apt-get upgrade

将.rpm⽂件转为.deb⽂件.rpm为RedHat使⽤的软件格式。在Ubuntu下不能直接使⽤,所以需要转换⼀下。sudo alien

vim使⽤vim三种模式:命令模式、插⼊模式、编辑模式。使⽤ESC或i或:来切换模式。命令模式下::q 退出:q! 强制退出:wq 保存并退出:set number 显⽰⾏号:set nonumber 隐藏⾏号/apache 在⽂档中查找apache 按n跳到下⼀个,shift+n上⼀个yyp 复制光标所在⾏,并粘贴h(左移⼀个字符←)、j(下⼀⾏↓)、k(上⼀⾏↑)、l(右移⼀个字符→) ⽤户及⽤户组管理/etc/passwd 存储⽤户账号/etc/group 存储组账号/etc/shadow 存储⽤户账号的密码/etc/gshadow 存储⽤户组账号的密码useradd ⽤户名userdel ⽤户名adduser ⽤户名groupadd 组名groupdel 组名passwd root 给root设置密码su rootsu - root

/etc/profile 系统环境变量bash_profile ⽤户环境变量.bashrc ⽤户环境变量su user 切换⽤户,加载配置⽂件.bashrcsu - user 切换⽤户,加载配置⽂件/etc/profile ,加载bash_profile更改⽂件的⽤户及⽤户组sudo chown [-R] owner[:group] {File|Directory}例如:还以为例。属于⽤户hadoop,组hadoop要想切换此⽂件所属的⽤户及组。可以使⽤命令。sudo chown root:root

⽂件权限管理三种基本权限R 读 数值表⽰为4W 写 数值表⽰为2X 可执⾏ 数值表⽰为1如图所⽰,⽂件的权限为-rw-rw-r---rw-rw-r--⼀共⼗个字符,分成四段。第⼀个字符“-”表⽰普通⽂件;这个位置还可能会出现“l”链接;“d”表⽰⽬录第⼆三四个字符“rw-”表⽰当前所属⽤户的权限。 所以⽤数值表⽰为4+2=6第五六七个字符“rw-”表⽰当前所属组的权限。 所以⽤数值表⽰为4+2=6第⼋九⼗个字符“r--”表⽰其他⽤户权限。 所以⽤数值表⽰为2所以操作此⽂件的权限⽤数值表⽰为662

更改权限sudo chmod [u所属⽤户 g所属组 o其他⽤户 a所有⽤户] [+增加权限 -减少权限] [r w x] ⽬录名

例如:有⼀个⽂件filename,权限为“-rw-r----x” ,将权限值改为"-rwxrw-r-x",⽤数值表⽰为765sudo chmod u+x g+w o+r filename上⾯的例⼦可以⽤数值表⽰sudo chmod 765 filename

1、cd命令这是⼀个⾮常基本,也是⼤家经常需要使⽤的命令,它⽤于切换当前⽬录,它的参数是要切换到的⽬录的路径,可以是绝对路径,也可以是相对路径。如:

[plain]

1. cd /root/Docements # 切换到⽬录/root/Docements

2. cd ./path # 切换到当前⽬录下的path⽬录中,“.”表⽰当前⽬录

3. cd ../path # 切换到上层⽬录中的path⽬录中,“..”表⽰上⼀层⽬录

2、ls命令这是⼀个⾮常有⽤的查看⽂件与⽬录的命令,list之意,它的参数⾮常多,下⾯就列出⼀些我常⽤的参数吧,如下:

[plain]

1. -l :列出长数据串,包含⽂件的属性与权限数据等

2. -a :列出全部的⽂件,连同隐藏⽂件(开头为.的⽂件)⼀起列出来(常⽤)

3. -d :仅列出⽬录本⾝,⽽不是列出⽬录的⽂件数据

4. -h :将⽂件容量以较易读的⽅式(GB,kB等)列出来

5. -R :连同⼦⽬录的内容⼀起列出(递归列出),等于该⽬录下的所有⽂件都会显⽰出来

注:这些参数也可以组合使⽤,下⾯举两个例⼦:

[plain]

1. ls -l #以长数据串的形式列出当前⽬录下的数据⽂件和⽬录

2. ls -lR #以长数据串的形式列出当前⽬录下的所有⽂件

3、grep命令该命令常⽤于分析⼀⾏的信息,若当中有我们所需要的信息,就将该⾏显⽰出来,该命令通常与管道命令⼀起使⽤,⽤于对⼀些命令的输出进⾏筛选加⼯等等,它的简单语法为[plain]

1. grep [-acinv] [--color=auto] '查找字符串' filename

它的常⽤参数如下:

[plain]

1. -a :将binary⽂件以text⽂件的⽅式查找数据

2. -c :计算找到‘查找字符串’的次数

3. -i :忽略⼤⼩写的区别,即把⼤⼩写视为相同

4. -v :反向选择,即显⽰出没有‘查找字符串’内容的那⼀⾏

5. # 例如:

6. # 取出⽂件/etc/中包含MANPATH的⾏,并把找到的关键字加上颜⾊

7. grep --color=auto 'MANPATH' /etc/

8. # 把ls -l的输出中包含字母file(不区分⼤⼩写)的内容输出

9. ls -l | grep -i file

4、find命令find是⼀个基于查找的功能⾮常强⼤的命令,相对⽽⾔,它的使⽤也相对较为复杂,参数也⽐较多,所以在这⾥将给把它们分类列出,它的基本语法如下: [plain]

1. find [PATH] [option] [action]

2.

3. # 与时间有关的参数:

4. -mtime n : n为数字,意思为在n天之前的“⼀天内”被更改过的⽂件;

5. -mtime +n : 列出在n天之前(不含n天本⾝)被更改过的⽂件名;

6. -mtime -n : 列出在n天之内(含n天本⾝)被更改过的⽂件名;

7. -newer file : 列出⽐file还要新的⽂件名

8. # 例如:

9. find /root -mtime 0 # 在当前⽬录下查找今天之内有改动的⽂件

10.

11. # 与⽤户或⽤户组名有关的参数:

12. -user name : 列出⽂件所有者为name的⽂件

13. -group name : 列出⽂件所属⽤户组为name的⽂件

14. -uid n : 列出⽂件所有者为⽤户ID为n的⽂件

15. -gid n : 列出⽂件所属⽤户组为⽤户组ID为n的⽂件

16. # 例如:

17. find /home/ljianhui -user ljianhui # 在⽬录/home/ljianhui中找出所有者为ljianhui的⽂件

18.

19. # 与⽂件权限及名称有关的参数:

20. -name filename :找出⽂件名为filename的⽂件

21. -size [+-]SIZE :找出⽐SIZE还要⼤(+)或⼩(-)的⽂件

22. -tpye TYPE :查找⽂件的类型为TYPE的⽂件,TYPE的值主要有:⼀般⽂件(f)、设备⽂件(b、c)、

23. ⽬录(d)、连接⽂件(l)、socket(s)、FIFO管道⽂件(p);

24. -perm mode :查找⽂件权限刚好等于mode的⽂件,mode⽤数字表⽰,如0755;

25. -perm -mode :查找⽂件权限必须要全部包括mode权限的⽂件,mode⽤数字表⽰

26. -perm +mode :查找⽂件权限包含任⼀mode的权限的⽂件,mode⽤数字表⽰

27. # 例如:

28. find / -name passwd # 查找⽂件名为passwd的⽂件

29. find . -perm 0755 # 查找当前⽬录中⽂件权限的0755的⽂件

30. find . -size +12k # 查找当前⽬录中⼤于12KB的⽂件,注意c表⽰byte

5、cp命令该命令⽤于复制⽂件,copy之意,它还可以把多个⽂件⼀次性地复制到⼀个⽬录下,它的常⽤参数如下:

[plain]

1. -a :将⽂件的特性⼀起复制

2. -p :连同⽂件的属性⼀起复制,⽽⾮使⽤默认⽅式,与-a相似,常⽤于备份

3. -i :若⽬标⽂件已经存在时,在覆盖时会先询问操作的进⾏

4. -r :递归持续复制,⽤于⽬录的复制⾏为

5. -u :⽬标⽂件与源⽂件有差异时才会复制

例如 : [plain]

1. cp -a file1 file2 #连同⽂件的所有特性把⽂件file1复制成⽂件file2

2. cp file1 file2 file3 dir #把⽂件file1、file2、file3复制到⽬录dir中

6、mv命令该命令⽤于移动⽂件、⽬录或更名,move之意,它的常⽤参数如下:

[plain]

1. -f :force强制的意思,如果⽬标⽂件已经存在,不会询问⽽直接覆盖

2. -i :若⽬标⽂件已经存在,就会询问是否覆盖

3. -u :若⽬标⽂件已经存在,且⽐⽬标⽂件新,才会更新

注:该命令可以把⼀个⽂件或多个⽂件⼀次移动⼀个⽂件夹中,但是最后⼀个⽬标⽂件⼀定要是“⽬录”。

例如:

[plain]

1. mv file1 file2 file3 dir # 把⽂件file1、file2、file3移动到⽬录dir中

2. mv file1 file2 # 把⽂件file1重命名为file2

7、rm命令该命令⽤于删除⽂件或⽬录,remove之间,它的常⽤参数如下:

[plain]

1. -f :就是force的意思,忽略不存在的⽂件,不会出现警告消息

2. -i :互动模式,在删除前会询问⽤户是否操作

3. -r :递归删除,最常⽤于⽬录删除,它是⼀个⾮常危险的参数

例如:

[plain]

1. rm -i file # 删除⽂件file,在删除之前会询问是否进⾏该操作

2. rm -fr dir # 强制删除⽬录dir中的所有⽂件

8、ps命令该命令⽤于将某个时间点的进程运⾏情况选取下来并输出,process之意,它的常⽤参数如下: [plain]

1. -A :所有的进程均显⽰出来

2. -a :不与terminal有关的所有进程

3. -u :有效⽤户的相关进程

4. -x :⼀般与a参数⼀起使⽤,可列出较完整的信息

5. -l :较长,较详细地将PID的信息列出

其实我们只要记住ps⼀般使⽤的命令参数搭配即可,它们并不多,如下:

[plain]

1. ps aux # 查看系统所有的进程数据

2. ps ax # 查看不与terminal有关的所有进程

3. ps -lA # 查看系统所有的进程数据

4. ps axjf # 查看连同⼀部分进程树状态

9、kill命令该命令⽤于向某个⼯作(%jobnumber)或者是某个PID(数字)传送⼀个信号,它通常与ps和jobs命令⼀起使⽤,它的基本语法如下:[plain]

1. kill -signal PID

signal的常⽤参数如下:注:最前⾯的数字为信号的代号,使⽤时可以⽤代号代替相应的信号。

[plain]

1. 1:SIGHUP,启动被终⽌的进程

2. 2:SIGINT,相当于输⼊ctrl+c,中断⼀个程序的进⾏

3. 9:SIGKILL,强制中断⼀个进程的进⾏

4. 15:SIGTERM,以正常的结束进程⽅式来终⽌进程

5. 17:SIGSTOP,相当于输⼊ctrl+z,暂停⼀个进程的进⾏

例如:

[plain]

1. # 以正常的结束进程⽅式来终于第⼀个后台⼯作,可⽤jobs命令查看后台中的第⼀个⼯作进程

2. kill -SIGTERM %1

3. # 重新改动进程ID为PID的进程,PID可⽤ps命令通过管道命令加上grep命令进⾏筛选获得

4. kill -SIGHUP PID

10、killall命令该命令⽤于向⼀个命令启动的进程发送⼀个信号,它的⼀般语法如下:[plain]

1. killall [-iIe] [command name] 它的参数如下:

[plain]

1. -i :交互式的意思,若需要删除时,会询问⽤户

2. -e :表⽰后⾯接的command name要⼀致,但command name不能超过15个字符

3. -I :命令名称忽略⼤⼩写

4. # 例如:

5. killall -SIGHUP syslogd # 重新启动syslogd

11、file命令该命令⽤于判断接在file命令后的⽂件的基本数据,因为在Linux下⽂件的类型并不是以后缀为分的,所以这个命令对我们来说就很有⽤了,它的⽤法⾮常简单,基本语法如下:

[plain]

1. file filename

2. #例如:

3. file ./test

12、tar命令该命令⽤于对⽂件进⾏打包,默认情况并不会压缩,如果指定了相应的参数,它还会调⽤相应的压缩程序(如gzip和bzip等)进⾏压缩和解压。它的常⽤参数如下:

[plain]

1. -c :新建打包⽂件

2. -t :查看打包⽂件的内容含有哪些⽂件名

3. -x :解打包或解压缩的功能,可以搭配-C(⼤写)指定解压的⽬录,注意-c,-t,-x不能同时出现在同⼀条命令中

4. -j :通过bzip2的⽀持进⾏压缩/解压缩

5. -z :通过gzip的⽀持进⾏压缩/解压缩

6. -v :在压缩/解压缩过程中,将正在处理的⽂件名显⽰出来

7. -f filename :filename为要处理的⽂件

8. -C dir :指定压缩/解压缩的⽬录dir

上⾯的解说可以已经让你晕过去了,但是通常我们只需要记住下⾯三条命令即可:

[plain]

1. 压缩:tar -jcv -f 2 要被处理的⽂件或⽬录名称

2. 查询:tar -jtv -f 2

3. 解压:tar -jxv -f 2 -C 欲解压缩的⽬录

注:⽂件名并不定要以后缀2结尾,这⾥主要是为了说明使⽤的压缩程序为bzip2

13、cat命令该命令⽤于查看⽂本⽂件的内容,后接要查看的⽂件名,通常可⽤管道与more和less⼀起使⽤,从⽽可以⼀页页地查看数据。例如: [plain]

1. cat text | less # 查看text⽂件中的内容

2. # 注:这条命令也可以使⽤less text来代替

14、chgrp命令该命令⽤于改变⽂件所属⽤户组,它的使⽤⾮常简单,它的基本⽤法如下:

[plain]

1. chgrp [-R] dirname/filename

2. -R :进⾏递归的持续对所有⽂件和⼦⽬录更改

3. # 例如:

4. chgrp users -R ./dir # 递归地把dir⽬录下中的所有⽂件和⼦⽬录下所有⽂件的⽤户组修改为users

15、chown命令该命令⽤于改变⽂件的所有者,与chgrp命令的使⽤⽅法相同,只是修改的⽂件属性不同,不再详述。

16、chmod命令该命令⽤于改变⽂件的权限,⼀般的⽤法如下:

[plain]

1. chmod [-R] xyz ⽂件或⽬录

2. -R:进⾏递归的持续更改,即连同⼦⽬录下的所有⽂件都会更改

同时,chmod还可以使⽤u(user)、g(group)、o(other)、a(all)和+(加⼊)、-(删除)、=(设置)跟rwx搭配来对⽂件的权限进⾏更改。

[plain]

1. # 例如:

2. chmod 0755 file # 把file的⽂件权限改变为-rxwr-xr-x

3. chmod g+w file # 向file的⽂件权限中加⼊⽤户组可写权限

18、vim命令该命令主要⽤于⽂本编辑,它接⼀个或多个⽂件名作为参数,如果⽂件存在就打开,如果⽂件不存在就以该⽂件名创建⼀个⽂件。vim是⼀个⾮常好⽤的⽂本编辑器,它⾥⾯有很多⾮常好⽤的命令,在这⾥不再多说。你可以从这⾥下载 的详细说明。

19、gcc命令对于⼀个⽤Linux开发C程序的⼈来说,这个命令就⾮常重要了,它⽤于把C语⾔的源程序⽂件,编译成可执⾏程序,由于g++的很多参数跟它⾮常相似,所以这⾥只介绍gcc的参数,它的常⽤参数如下: [plain]

1. -o :output之意,⽤于指定⽣成⼀个可执⾏⽂件的⽂件名

2. -c :⽤于把源⽂件⽣成⽬标⽂件(.o),并阻⽌编译器创建⼀个完整的程序

3. -I :增加编译时搜索头⽂件的路径

4. -L :增加编译时搜索静态连接库的路径

5. -S :把源⽂件⽣成汇编代码⽂件

6. -lm:表⽰标准库的⽬录中名为libm.a的函数库

7. -lpthread :连接NPTL实现的线程库

8. -std= :⽤于指定把使⽤的C语⾔的版本

9.

10. # 例如:

11. # 把源⽂件test.c按照c99标准编译成可执⾏程序test

12. gcc -o test test.c -lm -std=c99

13. #把源⽂件test.c转换为相应的汇编程序源⽂件test.s

14. gcc -S test.c

20、time命令该命令⽤于测算⼀个命令(即程序)的执⾏时间。它的使⽤⾮常简单,就像平时输⼊命令⼀样,不过在命令的前⾯加⼊⼀个time即可,例如:

[plain]

1. time ./process

2. time ps aux

在程序或命令运⾏结束后,在最后输出了三个时间,它们分别是:user:⽤户CPU时间,命令执⾏完成花费的⽤户CPU时间,即命令在⽤户态中执⾏时间总和;system:系统CPU时间,命令执⾏完成花费的系统CPU时间,即命令在核⼼态中执⾏时间总和;real:实际时间,从command命令⾏开始执⾏到运⾏终⽌的消逝时间;

注:⽤户CPU时间和系统CPU时间之和为CPU时间,即命令占⽤CPU执⾏的时间总和。实际时间要⼤于CPU时间,因为Linux是多任务操作系统,往往在执⾏⼀条命令时,系统还要处理其它任务。另⼀个需要注意的问题是即使每次执⾏相同命令,但所花费的时间也是不⼀样,其花费时间是与系统运⾏相关的。

2023年8月3日发(作者:)

terminal常⽤命令ls   显⽰⽂件或⽬录 -l 列出⽂件详细信息l(list) -a 列出当前⽬录下所有⽂件及⽬录,包括隐藏的a(all)mkdir 创建⽬录 -p 创建⽬录,若⽆⽗⽬录,则创建p(parent)cd 切换⽬录touch 创建空⽂件和更新时间echo 创建带有内容的⽂件。cat 查看⽂件内容cp 拷贝mv 移动或重命名rm 删除⽂件 -r 递归删除,可删除⼦⽬录及⽂件 -f 强制删除find 在⽂件系统中搜索某⽂件wc 统计⽂本中⾏数、字数、字符数grep 在⽂本⽂件中查找某个字符串rmdir 删除空⽬录tree 树形结构显⽰⽬录,需要安装tree包pwd 显⽰当前⽬录ln 创建链接⽂件more、less 分页显⽰⽂本⽂件内容head、tail 显⽰⽂件头、尾内容ctrl+alt+F1 命令⾏全屏模式

系统管理命令stat 显⽰指定⽂件的详细信息,⽐ls更详细who 显⽰在线登陆⽤户whoami 显⽰当前操作⽤户hostname 显⽰主机名uname 显⽰系统信息top 动态显⽰当前耗费资源最多进程信息ps 显⽰瞬间进程状态 ps -auxdu 查看⽬录⼤⼩ du -h /home带有单位显⽰⽬录信息df 查看磁盘⼤⼩ df -h 带有单位显⽰磁盘信息ifconfig 查看⽹络情况ping 测试⽹络连通netstat 显⽰⽹络状态信息man 命令不会⽤了,找男⼈ 如:man lsclear 清屏alias 对命令重命名 如:alias showmeit="ps -aux" ,另外解除使⽤unaliax showmeitkill 杀死进程,可以先⽤ps 或 top命令查看进程的id,然后再⽤kill命令杀死进程。

打包压缩相关命令gzip:bzip2:tar: 打包压缩 -c 归档⽂件 -x 压缩⽂件 -z gzip压缩⽂件 -j bzip2压缩⽂件 -v 显⽰压缩或解压缩过程 v(view) -f 使⽤档名例:tar -cvf /home/ /home/abc 只打包,不压缩tar -zcvf /home/ /home/abc 打包,并⽤gzip压缩tar -jcvf /home/2 /home/abc 打包,并⽤bzip2压缩当然,如果想解压缩,就直接替换上⾯的命令 tar -cvf / tar -zcvf / tar -jcvf 中的“c” 换成“x” 就可以了。

关机/重启机器shutdown -r 关机重启 -h 关机不重启 now ⽴刻关机halt 关机reboot 重启 Linux管道将⼀个命令的标准输出作为另⼀个命令的标准输⼊。也就是把⼏个命令组合起来使⽤,后⼀个命令除以前⼀个命令的结果。例:grep -r "close" /home/* | more 在home⽬录下所有⽂件中查找,包括close的⽂件,并分页输出。

Linux软件包管理dpkg (Debian Package)管理⼯具,软件包名以.deb后缀。这种⽅法适合系统不能联⽹的情况下。⽐如安装tree命令的安装包,先将传到Linux系统中。再使⽤如下命令安装。sudo dpkg -i tree_1.5.3-1_ 安装软件sudo dpkg -r tree 卸载软件

注:将传到Linux系统中,有多种⽅式。VMwareTool,使⽤挂载⽅式;使⽤winSCP⼯具等;APT(Advanced Packaging Tool)⾼级软件⼯具。这种⽅法适合系统能够连接互联⽹的情况。依然以tree为例sudo apt-get install tree 安装treesudo apt-get remove tree 卸载treesudo apt-get update 更新软件sudo apt-get upgrade

将.rpm⽂件转为.deb⽂件.rpm为RedHat使⽤的软件格式。在Ubuntu下不能直接使⽤,所以需要转换⼀下。sudo alien

vim使⽤vim三种模式:命令模式、插⼊模式、编辑模式。使⽤ESC或i或:来切换模式。命令模式下::q 退出:q! 强制退出:wq 保存并退出:set number 显⽰⾏号:set nonumber 隐藏⾏号/apache 在⽂档中查找apache 按n跳到下⼀个,shift+n上⼀个yyp 复制光标所在⾏,并粘贴h(左移⼀个字符←)、j(下⼀⾏↓)、k(上⼀⾏↑)、l(右移⼀个字符→) ⽤户及⽤户组管理/etc/passwd 存储⽤户账号/etc/group 存储组账号/etc/shadow 存储⽤户账号的密码/etc/gshadow 存储⽤户组账号的密码useradd ⽤户名userdel ⽤户名adduser ⽤户名groupadd 组名groupdel 组名passwd root 给root设置密码su rootsu - root

/etc/profile 系统环境变量bash_profile ⽤户环境变量.bashrc ⽤户环境变量su user 切换⽤户,加载配置⽂件.bashrcsu - user 切换⽤户,加载配置⽂件/etc/profile ,加载bash_profile更改⽂件的⽤户及⽤户组sudo chown [-R] owner[:group] {File|Directory}例如:还以为例。属于⽤户hadoop,组hadoop要想切换此⽂件所属的⽤户及组。可以使⽤命令。sudo chown root:root

⽂件权限管理三种基本权限R 读 数值表⽰为4W 写 数值表⽰为2X 可执⾏ 数值表⽰为1如图所⽰,⽂件的权限为-rw-rw-r---rw-rw-r--⼀共⼗个字符,分成四段。第⼀个字符“-”表⽰普通⽂件;这个位置还可能会出现“l”链接;“d”表⽰⽬录第⼆三四个字符“rw-”表⽰当前所属⽤户的权限。 所以⽤数值表⽰为4+2=6第五六七个字符“rw-”表⽰当前所属组的权限。 所以⽤数值表⽰为4+2=6第⼋九⼗个字符“r--”表⽰其他⽤户权限。 所以⽤数值表⽰为2所以操作此⽂件的权限⽤数值表⽰为662

更改权限sudo chmod [u所属⽤户 g所属组 o其他⽤户 a所有⽤户] [+增加权限 -减少权限] [r w x] ⽬录名

例如:有⼀个⽂件filename,权限为“-rw-r----x” ,将权限值改为"-rwxrw-r-x",⽤数值表⽰为765sudo chmod u+x g+w o+r filename上⾯的例⼦可以⽤数值表⽰sudo chmod 765 filename

1、cd命令这是⼀个⾮常基本,也是⼤家经常需要使⽤的命令,它⽤于切换当前⽬录,它的参数是要切换到的⽬录的路径,可以是绝对路径,也可以是相对路径。如:

[plain]

1. cd /root/Docements # 切换到⽬录/root/Docements

2. cd ./path # 切换到当前⽬录下的path⽬录中,“.”表⽰当前⽬录

3. cd ../path # 切换到上层⽬录中的path⽬录中,“..”表⽰上⼀层⽬录

2、ls命令这是⼀个⾮常有⽤的查看⽂件与⽬录的命令,list之意,它的参数⾮常多,下⾯就列出⼀些我常⽤的参数吧,如下:

[plain]

1. -l :列出长数据串,包含⽂件的属性与权限数据等

2. -a :列出全部的⽂件,连同隐藏⽂件(开头为.的⽂件)⼀起列出来(常⽤)

3. -d :仅列出⽬录本⾝,⽽不是列出⽬录的⽂件数据

4. -h :将⽂件容量以较易读的⽅式(GB,kB等)列出来

5. -R :连同⼦⽬录的内容⼀起列出(递归列出),等于该⽬录下的所有⽂件都会显⽰出来

注:这些参数也可以组合使⽤,下⾯举两个例⼦:

[plain]

1. ls -l #以长数据串的形式列出当前⽬录下的数据⽂件和⽬录

2. ls -lR #以长数据串的形式列出当前⽬录下的所有⽂件

3、grep命令该命令常⽤于分析⼀⾏的信息,若当中有我们所需要的信息,就将该⾏显⽰出来,该命令通常与管道命令⼀起使⽤,⽤于对⼀些命令的输出进⾏筛选加⼯等等,它的简单语法为[plain]

1. grep [-acinv] [--color=auto] '查找字符串' filename

它的常⽤参数如下:

[plain]

1. -a :将binary⽂件以text⽂件的⽅式查找数据

2. -c :计算找到‘查找字符串’的次数

3. -i :忽略⼤⼩写的区别,即把⼤⼩写视为相同

4. -v :反向选择,即显⽰出没有‘查找字符串’内容的那⼀⾏

5. # 例如:

6. # 取出⽂件/etc/中包含MANPATH的⾏,并把找到的关键字加上颜⾊

7. grep --color=auto 'MANPATH' /etc/

8. # 把ls -l的输出中包含字母file(不区分⼤⼩写)的内容输出

9. ls -l | grep -i file

4、find命令find是⼀个基于查找的功能⾮常强⼤的命令,相对⽽⾔,它的使⽤也相对较为复杂,参数也⽐较多,所以在这⾥将给把它们分类列出,它的基本语法如下: [plain]

1. find [PATH] [option] [action]

2.

3. # 与时间有关的参数:

4. -mtime n : n为数字,意思为在n天之前的“⼀天内”被更改过的⽂件;

5. -mtime +n : 列出在n天之前(不含n天本⾝)被更改过的⽂件名;

6. -mtime -n : 列出在n天之内(含n天本⾝)被更改过的⽂件名;

7. -newer file : 列出⽐file还要新的⽂件名

8. # 例如:

9. find /root -mtime 0 # 在当前⽬录下查找今天之内有改动的⽂件

10.

11. # 与⽤户或⽤户组名有关的参数:

12. -user name : 列出⽂件所有者为name的⽂件

13. -group name : 列出⽂件所属⽤户组为name的⽂件

14. -uid n : 列出⽂件所有者为⽤户ID为n的⽂件

15. -gid n : 列出⽂件所属⽤户组为⽤户组ID为n的⽂件

16. # 例如:

17. find /home/ljianhui -user ljianhui # 在⽬录/home/ljianhui中找出所有者为ljianhui的⽂件

18.

19. # 与⽂件权限及名称有关的参数:

20. -name filename :找出⽂件名为filename的⽂件

21. -size [+-]SIZE :找出⽐SIZE还要⼤(+)或⼩(-)的⽂件

22. -tpye TYPE :查找⽂件的类型为TYPE的⽂件,TYPE的值主要有:⼀般⽂件(f)、设备⽂件(b、c)、

23. ⽬录(d)、连接⽂件(l)、socket(s)、FIFO管道⽂件(p);

24. -perm mode :查找⽂件权限刚好等于mode的⽂件,mode⽤数字表⽰,如0755;

25. -perm -mode :查找⽂件权限必须要全部包括mode权限的⽂件,mode⽤数字表⽰

26. -perm +mode :查找⽂件权限包含任⼀mode的权限的⽂件,mode⽤数字表⽰

27. # 例如:

28. find / -name passwd # 查找⽂件名为passwd的⽂件

29. find . -perm 0755 # 查找当前⽬录中⽂件权限的0755的⽂件

30. find . -size +12k # 查找当前⽬录中⼤于12KB的⽂件,注意c表⽰byte

5、cp命令该命令⽤于复制⽂件,copy之意,它还可以把多个⽂件⼀次性地复制到⼀个⽬录下,它的常⽤参数如下:

[plain]

1. -a :将⽂件的特性⼀起复制

2. -p :连同⽂件的属性⼀起复制,⽽⾮使⽤默认⽅式,与-a相似,常⽤于备份

3. -i :若⽬标⽂件已经存在时,在覆盖时会先询问操作的进⾏

4. -r :递归持续复制,⽤于⽬录的复制⾏为

5. -u :⽬标⽂件与源⽂件有差异时才会复制

例如 : [plain]

1. cp -a file1 file2 #连同⽂件的所有特性把⽂件file1复制成⽂件file2

2. cp file1 file2 file3 dir #把⽂件file1、file2、file3复制到⽬录dir中

6、mv命令该命令⽤于移动⽂件、⽬录或更名,move之意,它的常⽤参数如下:

[plain]

1. -f :force强制的意思,如果⽬标⽂件已经存在,不会询问⽽直接覆盖

2. -i :若⽬标⽂件已经存在,就会询问是否覆盖

3. -u :若⽬标⽂件已经存在,且⽐⽬标⽂件新,才会更新

注:该命令可以把⼀个⽂件或多个⽂件⼀次移动⼀个⽂件夹中,但是最后⼀个⽬标⽂件⼀定要是“⽬录”。

例如:

[plain]

1. mv file1 file2 file3 dir # 把⽂件file1、file2、file3移动到⽬录dir中

2. mv file1 file2 # 把⽂件file1重命名为file2

7、rm命令该命令⽤于删除⽂件或⽬录,remove之间,它的常⽤参数如下:

[plain]

1. -f :就是force的意思,忽略不存在的⽂件,不会出现警告消息

2. -i :互动模式,在删除前会询问⽤户是否操作

3. -r :递归删除,最常⽤于⽬录删除,它是⼀个⾮常危险的参数

例如:

[plain]

1. rm -i file # 删除⽂件file,在删除之前会询问是否进⾏该操作

2. rm -fr dir # 强制删除⽬录dir中的所有⽂件

8、ps命令该命令⽤于将某个时间点的进程运⾏情况选取下来并输出,process之意,它的常⽤参数如下: [plain]

1. -A :所有的进程均显⽰出来

2. -a :不与terminal有关的所有进程

3. -u :有效⽤户的相关进程

4. -x :⼀般与a参数⼀起使⽤,可列出较完整的信息

5. -l :较长,较详细地将PID的信息列出

其实我们只要记住ps⼀般使⽤的命令参数搭配即可,它们并不多,如下:

[plain]

1. ps aux # 查看系统所有的进程数据

2. ps ax # 查看不与terminal有关的所有进程

3. ps -lA # 查看系统所有的进程数据

4. ps axjf # 查看连同⼀部分进程树状态

9、kill命令该命令⽤于向某个⼯作(%jobnumber)或者是某个PID(数字)传送⼀个信号,它通常与ps和jobs命令⼀起使⽤,它的基本语法如下:[plain]

1. kill -signal PID

signal的常⽤参数如下:注:最前⾯的数字为信号的代号,使⽤时可以⽤代号代替相应的信号。

[plain]

1. 1:SIGHUP,启动被终⽌的进程

2. 2:SIGINT,相当于输⼊ctrl+c,中断⼀个程序的进⾏

3. 9:SIGKILL,强制中断⼀个进程的进⾏

4. 15:SIGTERM,以正常的结束进程⽅式来终⽌进程

5. 17:SIGSTOP,相当于输⼊ctrl+z,暂停⼀个进程的进⾏

例如:

[plain]

1. # 以正常的结束进程⽅式来终于第⼀个后台⼯作,可⽤jobs命令查看后台中的第⼀个⼯作进程

2. kill -SIGTERM %1

3. # 重新改动进程ID为PID的进程,PID可⽤ps命令通过管道命令加上grep命令进⾏筛选获得

4. kill -SIGHUP PID

10、killall命令该命令⽤于向⼀个命令启动的进程发送⼀个信号,它的⼀般语法如下:[plain]

1. killall [-iIe] [command name] 它的参数如下:

[plain]

1. -i :交互式的意思,若需要删除时,会询问⽤户

2. -e :表⽰后⾯接的command name要⼀致,但command name不能超过15个字符

3. -I :命令名称忽略⼤⼩写

4. # 例如:

5. killall -SIGHUP syslogd # 重新启动syslogd

11、file命令该命令⽤于判断接在file命令后的⽂件的基本数据,因为在Linux下⽂件的类型并不是以后缀为分的,所以这个命令对我们来说就很有⽤了,它的⽤法⾮常简单,基本语法如下:

[plain]

1. file filename

2. #例如:

3. file ./test

12、tar命令该命令⽤于对⽂件进⾏打包,默认情况并不会压缩,如果指定了相应的参数,它还会调⽤相应的压缩程序(如gzip和bzip等)进⾏压缩和解压。它的常⽤参数如下:

[plain]

1. -c :新建打包⽂件

2. -t :查看打包⽂件的内容含有哪些⽂件名

3. -x :解打包或解压缩的功能,可以搭配-C(⼤写)指定解压的⽬录,注意-c,-t,-x不能同时出现在同⼀条命令中

4. -j :通过bzip2的⽀持进⾏压缩/解压缩

5. -z :通过gzip的⽀持进⾏压缩/解压缩

6. -v :在压缩/解压缩过程中,将正在处理的⽂件名显⽰出来

7. -f filename :filename为要处理的⽂件

8. -C dir :指定压缩/解压缩的⽬录dir

上⾯的解说可以已经让你晕过去了,但是通常我们只需要记住下⾯三条命令即可:

[plain]

1. 压缩:tar -jcv -f 2 要被处理的⽂件或⽬录名称

2. 查询:tar -jtv -f 2

3. 解压:tar -jxv -f 2 -C 欲解压缩的⽬录

注:⽂件名并不定要以后缀2结尾,这⾥主要是为了说明使⽤的压缩程序为bzip2

13、cat命令该命令⽤于查看⽂本⽂件的内容,后接要查看的⽂件名,通常可⽤管道与more和less⼀起使⽤,从⽽可以⼀页页地查看数据。例如: [plain]

1. cat text | less # 查看text⽂件中的内容

2. # 注:这条命令也可以使⽤less text来代替

14、chgrp命令该命令⽤于改变⽂件所属⽤户组,它的使⽤⾮常简单,它的基本⽤法如下:

[plain]

1. chgrp [-R] dirname/filename

2. -R :进⾏递归的持续对所有⽂件和⼦⽬录更改

3. # 例如:

4. chgrp users -R ./dir # 递归地把dir⽬录下中的所有⽂件和⼦⽬录下所有⽂件的⽤户组修改为users

15、chown命令该命令⽤于改变⽂件的所有者,与chgrp命令的使⽤⽅法相同,只是修改的⽂件属性不同,不再详述。

16、chmod命令该命令⽤于改变⽂件的权限,⼀般的⽤法如下:

[plain]

1. chmod [-R] xyz ⽂件或⽬录

2. -R:进⾏递归的持续更改,即连同⼦⽬录下的所有⽂件都会更改

同时,chmod还可以使⽤u(user)、g(group)、o(other)、a(all)和+(加⼊)、-(删除)、=(设置)跟rwx搭配来对⽂件的权限进⾏更改。

[plain]

1. # 例如:

2. chmod 0755 file # 把file的⽂件权限改变为-rxwr-xr-x

3. chmod g+w file # 向file的⽂件权限中加⼊⽤户组可写权限

18、vim命令该命令主要⽤于⽂本编辑,它接⼀个或多个⽂件名作为参数,如果⽂件存在就打开,如果⽂件不存在就以该⽂件名创建⼀个⽂件。vim是⼀个⾮常好⽤的⽂本编辑器,它⾥⾯有很多⾮常好⽤的命令,在这⾥不再多说。你可以从这⾥下载 的详细说明。

19、gcc命令对于⼀个⽤Linux开发C程序的⼈来说,这个命令就⾮常重要了,它⽤于把C语⾔的源程序⽂件,编译成可执⾏程序,由于g++的很多参数跟它⾮常相似,所以这⾥只介绍gcc的参数,它的常⽤参数如下: [plain]

1. -o :output之意,⽤于指定⽣成⼀个可执⾏⽂件的⽂件名

2. -c :⽤于把源⽂件⽣成⽬标⽂件(.o),并阻⽌编译器创建⼀个完整的程序

3. -I :增加编译时搜索头⽂件的路径

4. -L :增加编译时搜索静态连接库的路径

5. -S :把源⽂件⽣成汇编代码⽂件

6. -lm:表⽰标准库的⽬录中名为libm.a的函数库

7. -lpthread :连接NPTL实现的线程库

8. -std= :⽤于指定把使⽤的C语⾔的版本

9.

10. # 例如:

11. # 把源⽂件test.c按照c99标准编译成可执⾏程序test

12. gcc -o test test.c -lm -std=c99

13. #把源⽂件test.c转换为相应的汇编程序源⽂件test.s

14. gcc -S test.c

20、time命令该命令⽤于测算⼀个命令(即程序)的执⾏时间。它的使⽤⾮常简单,就像平时输⼊命令⼀样,不过在命令的前⾯加⼊⼀个time即可,例如:

[plain]

1. time ./process

2. time ps aux

在程序或命令运⾏结束后,在最后输出了三个时间,它们分别是:user:⽤户CPU时间,命令执⾏完成花费的⽤户CPU时间,即命令在⽤户态中执⾏时间总和;system:系统CPU时间,命令执⾏完成花费的系统CPU时间,即命令在核⼼态中执⾏时间总和;real:实际时间,从command命令⾏开始执⾏到运⾏终⽌的消逝时间;

注:⽤户CPU时间和系统CPU时间之和为CPU时间,即命令占⽤CPU执⾏的时间总和。实际时间要⼤于CPU时间,因为Linux是多任务操作系统,往往在执⾏⼀条命令时,系统还要处理其它任务。另⼀个需要注意的问题是即使每次执⾏相同命令,但所花费的时间也是不⼀样,其花费时间是与系统运⾏相关的。