以下命令在 Ubuntu 12.04 64位下测试通过。

 

在linux中一切都是文件,包括文件夹也是一种特殊的文件,甚至设备也是文件。

 

查看当前系统的版本

 

  1. cat /proc/version 
  2. #Linux version 3.2.0-29-generic (buildd@allspice) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 
  3.  
  4. uname -a 
  5. #Linux web 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux 
  6.  
  7. cat /etc/issue 
  8. #Ubuntu 12.04.1 LTS \n \l 

 

显示一个命令的路径

 

  1. which adduser 
  2.  
  3. /usr/sbin/adduser 
  4.  
  5. which groups 
  6.  
  7. /usr/sbin/groups 
  8.  
  9.  
  10. which ls 
  11. /bin/ls 

 

查看在线的用户

who

 

显示当前用户的账号

whoami

 

重启

reboot

 

关机

shutdown

 

查看当前用户

users

 

查看当前用户所在的组

groups

 

修改当前用户的密码

passwd

 

修改用户user1的密码

passwd user1

 

切换用户user1

su user1

 

切换到root用户

su

 

创建目录

mkdir dir1

 

删除目录

rmdir dir1

 

切换目录

cd

 

返回上级目录

cd ..

 

 

新建文件file1

touch file1

 

新建并编辑文件file1

vi file1

 

删除文件

rm

 

显示文件内容

cat file1

more file1

less file1

 

cat还有一个功能就是可以新建文件,并且同时将输入的内容保存到文件中

cat >> file1

敲入上面的命令后,你就可以开始输入文件的内容了,还可以换行,如果输入完毕,就同时按下ctrl+D,就会结束输入,并且把刚才输入的内容保存到文件中。

 

 

 

显示文件的前面10行

通过参数可以指定显示前面的N行

head file1

 

显示文件的最后10行

通过参数可以指定显示后面的N行

tail file1

 

列出【home】目录的所有文件

ls /home

 

用列表的方式列出【home】目录的所有文件,不包括隐藏文件

会显示文件的权限,所有者,大小,最后更新时间

ls -l /home

 

用列表的方式列出【home】目录的所有文件,包括隐藏文件,以 . 开头的文件就是隐藏文件。

会显示文件的类型,权限,所有者,所有者的用户组,大小,最后更新时间

ls -al /home

 

更改文件的所有者

chown user1:group1 file1

 

更改文件的权限

a所有用户,+添加权限,rwx读、写、执行权限

chmod a+rwx file1

 

 

显示一个命令的说明

说明包括用法和解释

man cat

 

显示一个命令的参数和基本用法

在命令后面加上--help

cat --help

 

很多时候,如果不知道一个命令的具体用法,或者是有哪些参数,参数是什么意思,都可以使用上面的两个命令来查看一下。

 

添加用户user1

adduser user1

 

添加用户组

addgroup group1

 

添加用户的同时,初始化用户到一个组

adduser --ingroup group1 user11

 

添加已有用户到已有的组

adduser user12 group1

 

cut命令

cut命令可以对文件做一些分隔,分析的处理,是基于行来处理文件。将文件的每一行按照规律分隔,获取其中的部分内容。

比如说我想得到系统中的所有用户的登录账号,大家都知道系统中有一个/etc/passwd文件,里面有这些内容,但是同时也有其他的内容。

 

  1. cut -d: -f1 /etc/passwd 

上面的命令做什么呢?-d参数用来指明分隔符,因为passwd文件的每一行是用冒号分隔的,-f参数指明你想要的字段,这里指明要第一个字段,也就是登陆账号字段,最后指明文件的位置就可以了。

如果是想要几个字段,可以使用-f1-3代表第一个到第三个字段,-f1,3代表第一个和第三个字段。

 

  1. cut -d: -f1 /etc/passwd >> /tmp/users 

使用上面的命令,cut命令的结果就会保存到/tmp/users文件中。

 

wc命令

wc命令用来统计文件的行数,字符数,单词数,字节数信息。

 

  1. root@web:/home# wc -l file1 
  2. 4613 file1 
  3. root@web:/home# wc -c file1 
  4. 221987 file1 
  5. root@web:/home# wc -c file1 
  6. 221987 file1 
  7. root@web:/home# wc -m file1 
  8. 220166 file1 
  9. root@web:/home# wc -L file1 
  10. 393 file1 
  11. root@web:/home# wc -w file1 
  12. 11902 file1 

 

vi编辑器

vi newfile

两种模式:命令模式和插入模式。

首先进入的是命令模式,按a,i,o可以进入插入模式,在最下面的一行显示-- INSERT --,代表现在可以编辑文件了。如果想回到命令模式,需要按下ESC键。

按下a会在下一个字符开始插入,按下i会在当前位置开始插入,按下o会从新的一行开始插入。

在命令模式下常用的命令包括

:w newfile2,另存为newfile2。
:wq,保存并且退出。
:q!,强行退出,不保存。
:w,只保存,不退出。

gg,回到文件的第一个字符。
G,到达文件的最后一个字符。
dd,删除光标所在的当前行。

x,删除光标所在位置的一个字符。

X,删除光标所在位置之前的一个字符。
h,向左移动一个字符。
j,向下移动一个字符。
k,向上移动一个字符。
l,向右移动一个字符。
ctrl+b,向后移动一页。
ctrl+f,向前移动一页。
ctrl+u,向后移动半页。
ctrl+d,向前移动半页。
w,跳到下个单词的开头。
e,跳到下个单词的结尾。
$,移动到光标所在行的末尾。
0,移动到光标所在行的开头。
u,undo操作,在误操作之后可以使用。
:set nu,在每一行前面列出行号。
:100,可以直接跳到第100行。

ggdG,清空文件的内容。

在某些时候,需要清空文件内容,而不删除文件。比喻有些日志文件(log.txt);在linux下的命令为:

清空文件log.txt的内容。

  1. true > log.txt 

 

查询命令locate

locate是查询索引,在索引中查询是否存在匹配条件的文件,这就需要先做索引,系统每天自动进行索引工作。

也可以通过手动执行updatedb来建立索引。

 

  1. updatedb 
  2.  
  3. locate file1 

 

查询命令find

find是实时搜索,所以查询消耗的时间要比locate长。

 

  1. find / -name "file1" 

 

查询命令grep

grep的查询对象是文件的内容,以行为单位进行条件的匹配。

 

  1. grep -c "using" file1 

在file1中查询using出现的个数。

grep是一个强大的文本搜索工具,通过正则表达式搜索匹配的文本,进行输出。

 

重定向

将hello重定向到readme文件中

 

  1. echo "hello" > readme 

 

将1,2,3重定向追加到readme文件中,追加是两个>符号。

 

  1. echo "1,2,3" >> readme 

 

管道

将前一个命令的输出作为下一个命令的输入,|符号链接两个命令。

 

  1. user1@web:~$ cat /etc/passwd | cut -d: -f1 
  2. root 
  3. daemon 
  4. bin 
  5. sys 
  6. sync 
  7. games 
  8. man 
  9. lp 
  10. mail 
  11. news 
  12. uucp 
  13. proxy 
  14. www-data 
  15. backup 
  16. list 
  17. irc 
  18. gnats 
  19. nobody 
  20. libuuid 
  21. syslog 
  22. messagebus 
  23. sshd 
  24. ntp 
  25. user1 
  26. user11 
  27. user12 
  28. mysql 

 

/etc/passwd文件

这个文件存放所有的用户信息

user1:x:1000:1000:user1.web,,,:/home/user1:/bin/bash

信息分为几个部分,每部分用冒号:隔开。

第一部分,登陆账号。

第二部分,密码,密码放在另外一个文件/etc/shadow中(密文),这里用一个字符占位。如果为空,代表用户没有密码。

第三部分,用户ID。

第四部分,用户初始化组的ID。

第五部分,用户描述信息,全名等信息。

第六部分,用户主目录,工作目录,登录之后所处的目录。

第七部分,用户的shell。

 

/etc/group文件

这个文件存放所有用户组的信息。

user1:x:1000:user1,user11

信息分为几个部分,每部分用冒号:隔开。

第一部分,组名称。

第二部分,组密码。

第三部分,组ID。

第四部分,组包含的用户,用逗号分隔。上面的用户组user1中包含user1和user11两个用户。

 

/etc/shadow文件

这个文件保存所有用户的密码信息。

 

  1. user1:$6$UA2YOwOJ$tn.u3BmF1AjESuzbmmoMkMdjC1B4oUs3I0aA4bq2v.9auayz4Baz3SuZYCtM1xRqQUhjYYmPb4FF1XzPtE1l4/:15636:0:99999:7::: 

信息分为几个部分,每部分用冒号:隔开。

第一部分,登陆账号。

第二部分,经过加密的密码,如果不想让当前用户登录,把这部分的内容修改为*或者!。

第三部分,最近更改密码的日期,日期以1970年1月1日作为第一天,然后依次加1。

第四部分,密码不可更改的天数。

第五部分,密码需要重置的天数。

第六部分,密码重置前的警告天数,就是在到达必须重置的日期之前的几天就会提示你更改密码。

第七部分,密码过期的宽限天数,就是在密码到达重置的天数,还没有重置,在后面的几天还可以继续使用。

第八部分,账号失效时间。

第九部分,保留。

 

chkconfig

查看开机自启动列表

 

  1. chkconfig --list 

 

很多时候,我们需要编译源代码,然后安装一个应用。

源代码通常是tar.gz或者tar.bz2的,需要先解压释放,然后在进行编译和安装。

 

  1. tar zxvf apr-1.4.6.tar.gz 
  2.  
  3. cd apr-1.4.6 
  4.  
  5. ./configure 
  6.  
  7. make 
  8.  
  9. sudo make install 

 

tar是一个归档的命令,就是将一堆文件,归档成一个文件,在需要的时候再进行释放。同时还支持压缩。

c,创建归档文件

x,释放归档文件

z,gz压缩

 

  1. tar cf demo.tar demo 
  2.  
  3. tar xf demo.tar 
  4.  
  5. tar czf demo.tar.gz demo 
  6.  
  7. tar xzf demo.tar.gz 

 

link

建立连接,ln

-s,软连接,符号链接,有点像windows中的快捷方式。删除源文件,链接文件还存在,但是打开连接文件会失败,提示找不到文件。

-d,硬链接,有点像备份。删除源文件,连接文件依然存在,而且可以打开。

修改源文件,对应的软硬链接都会同步修改。硬链接应该是分配了新的空间,但是信息会和源文件进行同步。

两者在用ls -l查看的时候显示不一样。

 

  1. ls -s/-d target link_name 
  1. user1@web:~$ ln -s demo1 demo1-slink 
  2. user1@web:~$ ln -d demo1 demo1-dlink 
  3. user1@web:~$ ls -l demo1 
  4. -rw-rw-r-- 2 user1 user1 7 Oct 23 21:30 demo1 
  5. user1@web:~$ ls -l demo1* 
  6. -rw-rw-r-- 2 user1 user1 7 Oct 23 21:30 demo1 
  7. -rw-rw-r-- 2 user1 user1 7 Oct 23 21:30 demo1-dlink 
  8. lrwxrwxrwx 1 user1 user1 5 Oct 25 10:25 demo1-slink -> demo1 

 

查询进程

  1. ps -ef | grep nginx 

 

杀死进程

  1. kill 进程号 

 

取消开机启动

  1. update-rc.d -f nginx remove 

 

停止一个apache2网站

  1. a2dissite blog 
  2. service apache2 reload 

 

启动一个apache2网站

  1. a2ensite blog 
  2. service apache2 reload

 

 

踢出登陆的用户

  1. Last login: Thu Oct 25 23:23:27 2012 from 106.3.102.45 
  2. root@web:~# who 
  3. root     pts/3        2012-10-25 23:27 (106.3.102.45) 
  4. root     pts/0        2012-10-25 21:40 (106.3.102.45) 
  5. root     pts/2        2012-10-25 22:12 (106.3.102.45) 
  6. root     pts/4        2012-10-25 22:21 (106.3.102.45) 
  7. root     pts/5        2012-10-25 23:23 (106.3.102.45) 
  8. root@web:~# pkill -KILL -t pts/0 
  9. root@web:~# pkill -KILL -t pts/2 
  10. root@web:~# pkill -KILL -t pts/4 
  11. root@web:~# pkill -KILL -t pts/5 
  12. root@web:~# who 
  13. root     pts/3        2012-10-25 23:27 (106.3.102.45) 

 

清屏命令

  1. clear 

 

查看系统信息

查看内存使用情况

  1. free 

 

查看系统资源使用情况

包括内存,进程,cpu

 

  1. top 

 

参考文献

1.Awk学习笔记

2.Linux awk 使用shell变量

3.Linux shell编程之awk介绍

4.linux vi命令

5.Ubuntu下tar命令详解使用

6.top命令出来的信息

7.Linux系统信息查看命令大全

8.linux中强大且常用命令:find、grep