以下命令在 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. uname -a
  4. #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
  5. cat /etc/issue
  6. #Ubuntu 12.04.1 LTS n l

 

显示一个命令的路径

 

  1. which adduser
  2. /usr/sbin/adduser
  3. which groups
  4. /usr/sbin/groups
  5. which ls
  6. /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. 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. cd apr-1.4.6
  3. ./configure
  4. make
  5. sudo make install

 

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

c,创建归档文件

x,释放归档文件

z,gz压缩

 

  1. tar cf demo.tar demo
  2. tar xf demo.tar
  3. tar czf demo.tar.gz demo
  4. 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