linux常用命令总结(待续)

来源:互联网 发布:java动态方法 编辑:程序博客网 时间:2024/05/28 11:50

linux终端显示文件不同颜色代表的含义:

1、白色:表示普通文件

2、蓝色:表示目录

3、绿色:表示可执行文件

4、红色:表示压缩文件

5、浅蓝色:链接文件

6、红色闪烁:表示链接文件有问题

7、黄色:表示设备文件

8、灰色:表示其他文件

1.cd命令

这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它在终端中

改变工作目录来执行,复制,移动,读,写等等操作。它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。如:

cd /root/Docements   # 切换到目录/root/Docements

cd ./path            # 切换到当前目录下的path目录中,“.”表示当前目录 

cd ../path           # 切换到上层目录中的path目录中,“..”表示上一层目录

我的例子:

xiaod@ubuntu:~$ cd desk        #desk是可视化桌面,cddesk表示切换到desk这个目录

xiaod@ubuntu:~/desk$ ls        #ls命令是列出目录内容。运行它就是列出文件夹里的内容,可能是文件也可能是文件夹。

lili  suo                     #输出desk目录下的两个文件()lilisuo

xiaod@ubuntu:~/desk$ cdlili/     #cd lili表示切换到lili这个文件夹内

xiaod@ubuntu:~/desk/lili$ls      #列出lili文件夹内容

strcpy.cpp  string tes  test.cpp  #此时输出的是lili文件夹的内容,绿色字体的表示是可执行文件

xiaod@ubuntu:~/desk/lili$

xiaod@ubuntu:~/desk/lili$gcc -o strcpy strcpy.cpp #gcc –o表示执行strcpy文件,并将原strcpy.cpp文件名字重命名为strcpy

xiaod@ubuntu:~/desk/lili$ls     #再次列出lili文件夹里的内容

strcpy  strcpy.cpp string  tes  test.cpp #注意此时多了一个可执行文件strcpy

xiaod@ubuntu:~/desk/lili$ ./strcpy     # “.”表示当前目录,执行strcpy文件

This is the strncpyusefull!!!

xiaod@ubuntu:~/desk/lili$cd ..       # “..”表示上一层目录,此时退回到上一层目录,即desk目录

xiaod@ubuntu:~/desk$ cdsuo       # cd suo切换到suo目录下

xiaod@ubuntu:~/desk/suo$ls        #列出suo目录下的文件

a.txt                             #suo文件夹里的内容

 

2.ls命令

这是一个非常有用的查看文件与目录的命令(list)。

xiaod@ubuntu:~$ ls

1.txt   desk              jiamfenxi  openssl-1.0.1c.tar.gz  test   视频  下载

811     Desktop           lz         rpmbuild               公共的  图片  音乐

9_7RDP  examples.desktop  mm        sz                     模板    文档

“ls -l”命令以详情模式(long listing fashion)列出文件夹的内容。

xiaod@ubuntu:~$ ls -l

总用量 4428

-rw-r--r-- 1 xiaodxiaod       0 2012-09-06 07:24 1.txt

drwxrwxrwx 4 xiaodxiaod    4096 2012-08-30 10:20 811

drwxrwxrwx 4 xiaodxiaod    4096 2012-09-07 14:51 9_7RDP

drwxr-xr-x 4 xiaodxiaod    4096 2015-05-18 19:21 desk

drwxr-xr-x 2 xiaodxiaod    4096 2015-05-18 20:42 test

drwxr-xr-x 2 xiaodxiaod    4096 2012-03-01 13:42 公共的

drwxr-xr-x 2 xiaodxiaod    4096 2012-03-01 13:42 模板

drwxr-xr-x 2 xiaodxiaod    4096 2012-03-01 13:42 视频

1.      d (代表了是目录).

2.      rwxr-xr-x 是文件或者目录对所属用户,同一组用户和其它用户的权限。

3.      上面例子中第一个xiaodu 代表了文件文件属于用户xiaodu

4.      上面例子中的第二个xiaodu代表了文件文件属于用户组xiaodu

5.      4096 代表了文件大小为4096字节.

6.      2012-09-06 07:24 代表了文件最后一次修改的日期和时间.

7.      最后面的就是文件/文件夹的名字

“ls –a” 命令会列出文件夹里的所有内容,包括以"."开头的隐藏文件。

注意:在Linux中,文件以.开头的就是隐藏文件,并且每个文件,文件夹,设备或者命令都是以文件对待。

其它常用参数:

1.       -d :仅列出目录本身,而不是列出目录的文件数据  

2.       -h :将文件容量以较易读的方式(GB,kB等)列出来  

3.       -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来  

3. grep命令

该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等,它的简单语法为

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

-a :将binary文件以text文件的方式查找数据

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

-i :忽略大小写的区别,即把大小写视为相同

-v :反向选择,即显示出没有‘查找字符串’内容的那一行

# 例如:

# 取出文件/etc/man.config中包含MANPATH的行,并把找到的关键字加上颜色

grep --color=auto'MANPATH' /etc/man.config

# 把ls -l的输出中包含字母file(不区分大小写)的内容输出

ls -l | grep -i file

我的例子:

xiaod@ubuntu:~/desk$ ls

lili  suo

xiaod@ubuntu:~/desk$ ls-l | grep -i s  #把ls –l输出的内容中包含字母s(不区分大小写)输出

drwxr-xr-x 2 xiaodxiaod 4096 2015-05-19 15:05 suo

补充:

grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。 
  grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。 

4find命令

find是一个基于查找的功能非常强大的命令,注意只能查找到被gcc编译后的文件,相对而言,它的使用也相对较为复杂,参数也比较多,所以在这里将给把它们分类列出,它的基本语法如下:

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

5.cp 命令

“copy”就是复制。它会从一个地方复制一个文件到另外一个地方。注意,要复制的目的地应以绝对路径的形式写出

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

cp file1 file2 file3dir #把文件file1、file2、file3复制到目录dir中

如xiaod@ubuntu:~/desk/suo$cp qs /home/xiaod/desk/day11

即将suo文件夹里的 qs文件复制到day11文件夹里

注意: cp,在shell脚本中是最常用的一个命令,而且它可以使用通配符,来定制所需的文件的复制。

6.mv命令

该命令用于移动文件、目录或更名,move之意,它的常用参数如下:

-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖

-i :若目标文件已经存在,就会询问是否覆盖

-u :若目标文件已经存在,且比目标文件新,才会更新

注:该命令可以把一个文件或多个文件一次移动一个文件夹中,但是最后一个目标文件一定要是“目录”(绝对路径)。

例如:

mv  file1file2 file3 dir  #把文件file1、file2、file3移动到目录dir中

mv  file1file2        #把文件file1重命名为file2

注意:mv 命令可以使用通配符。mv需谨慎使用,因为移动系统的或者未授权的文件不但会导致安全性问题,而且可能系统崩溃。

7.rm命令

该命令用于删除文件或目录,remove的意思,它的常用参数如下:

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

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

-r :递归删除,最常用于目录删除,它是一个非常危险的参数

例如:

rm -i file # 删除文件file,在删除之前会询问是否进行该操作

rm -fr dir # 强制删除目录dir中的所有文件

8.ps命令

Linux上进程有5种状态:
1. 运行(正在运行或在运行队列中等待)
2.
中断(休眠中,受阻,在等待某个条件的形成或接受到信号)
3.
不可中断(收到信号不唤醒和不可运行,进程必须等待直到有中断发生)
4.
僵死(进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放)
5.
停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

ps工具标识进程的5种状态码:
D 不可中断uninterruptible sleep (usually IO)
R
运行 runnable (on run queue)
S
中断 sleeping
T
停止 traced or stopped
Z
僵死 a defunct (”zombie”) process

ps的参数意义:

-A:所有的进程均显示出来

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

-u:有效用户的相关进程

-x:一般与a参数一起使用,可列出较完整的信息

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

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

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

psax # 查看不与terminal有关的所有进程

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

psaxjf # 查看连同一部分进程树状态

最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。

9.file命令

该命令用于辨识文件类型。输出内容为该文件的属性,它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的,因为在Linux下文件的类型并不是以后缀为分的,基本语法如下:file filename

参数意义:-b    列出文件辨识结果时,不显示文件名称。

例如:

xiaod@ubuntu:~/desk/lili$ file strcpy.cpp

strcpy.cpp: ISO-8859 C program text, with CRLFline terminators

xiaod@ubuntu:~/desk/lili$ file -b strcpy.cpp

ISO-8859 C program text, with CRLF lineterminators

xiaod@ubuntu:~/desk/lili$ file strcpy

strcpy: ELF 32-bit LSB executable, Intel 80386,version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15,not stripped

xiaod@ubuntu:~/desk/lili$ file test.cpp

test.cpp: ASCII text

 

10.cat命令

该命令用于查看文本文件的内容,后接要查看的文件名,通常可用管道与more和less一起使用,从而可以一页页地查看数据。

cat 的创建、连接文件功能实例;
cat 有创建文件的功能,创建文件后,要以EOF或STOP结束;

xiaod@ubuntu:~/desk/lili$ cat > cat.txt<< EOF

> only test cat order

> EOF

xiaod@ubuntu:~/desk/lili$ cat cat.txt

only test cat order

cat 还有向已存在的文件追加内容的功能;

xiaod@ubuntu:~/desk/lili$ cat cat.txt

only test cat order

xiaod@ubuntu:~/desk/lili$ cat >>cat.txt << EOF  #以EOF结束

> Is the test OK?

> OK.

> EOF

xiaod@ubuntu:~/desk/lili$ cat cat.txt

only test cat order

Is the test OK?

OK.


cat 连接多个文件的内容并且输出到一个新文件中;

假设我们有b.txt、c.txt,并且内容如下;

我想通过cat 把b.txt、c.txt两个文件连接在一起(也就是说把这两个文件的内容都接在一起)并输出到一个新的文件a.txt 中。

注意:其原理是把三个文件的内容连接起来,然后创建a.txt文件,并且把几个文件的内容同时写入a.txt中。特别值得一提的是,如果您输入到一个已经存在的a.txt 文件,会把atxt内容清空。

xiaod@ubuntu:~/desk/suo$ cat b.txt

hello world

xiaod@ubuntu:~/desk/suo$ cat c.txt

who are you?

xiaod@ubuntu:~/desk/suo$ cat b.txt c.txt> a.txt

xiaod@ubuntu:~/desk/suo$ cat a.txt

hello world

who are you?

cat 把一个或多个已存在的文件内容,追加到一个已存在的文件中

xiaod@ubuntu:~/desk/suo$ cat a0.txt

make the world wonderful!

 

xiaod@ubuntu:~/desk/suo$ cat a.txt>> a0.txt

xiaod@ubuntu:~/desk/suo$ cat a0.txt

make the world wonderful!

hello world

who are you?

警告:我们要知道>意思是创建,>>是追加.

11chgrp命令

该命令用于改变文件所属用户组,它的使用非常简单,它的基本用法如下:

1.       chgrp [-R] dirname/filename  

2.       -R :进行递归的持续对所有文件和子目录更改  

3.       # 例如:  

4.       chgrp users -R ./dir # 递归地把dir目录下中的所有文件和子目录下所有文件的用户组修改为users  

12chown命令

chown”命令就是改变文件拥有者和所在用户组。每个文件都属于一个用户组和一个用户。

xiaod@ubuntu:~$ ls -l

#这里目录1.txt属于用户xiaod和用户组xiaod

-rw-r--r-- 1 xiaod xiaod       0 2012-09-06 07:24 1.txt

drwxrwxrwx 4 xiaod xiaod    4096 2012-08-30 10:20 811

drwxrwxrwx 4 xiaod xiaod    4096 2012-09-07 14:51 9_7RDP

drwxr-xr-x 5 xiaod xiaod    4096 2015-05-19 16:20 desk

drwx------ 2 xiaod xiaod    4096 2012-03-01 13:44 Desktop

chown”命令用来改变文件的所有权,所以仅仅用来管理和提供文件的用户和用户组授权。

xiaod@ubuntu:~$chown xiaod:xiaod1 1.txt

chown: 无效的组: "xiaod:xiaod1"

注:这里由于我的系统不存在用户组xiaod1,故无法修改。

13.chomd命令

chmod”命令就是改变文件的模式位。chmod会根据要求的模式来改变每个所给的文件,文件夹,脚本等等的文件模式(权限)。

在文件中存在3中类型的权限

1

2

3

Read (r)=4

Write(w)=2

Execute(x)=1

所以如果你想给文件只读权限,就设置为'4';只写权限,设置权限为'2';只执行权限,设置为1;读写权限,就是4+2 = 6, 以此类推。

现在需要设置3种用户和用户组权限。第一个是拥有者,然后是用户所在的组,最后是其它用户。

1

rwxr-x--x   abc.sh

这里root的权限是 rwx(读写和执行权限),
所属用户组权限是 r-x (只有读和执行权限,没有写权限),
对于其它用户权限是 -x(只有只执行权限)

为了改变它的权限,为拥有者,用户所在组和其它用户提供读,写,执行权限。

1

root@tecmint:~# chmod 777 abc.sh

三种都只有读写权限

1

root@tecmint:~# chmod 666 abc.sh

拥有者用户有读写和执行权限,用户所在的组和其它用户只有可执行权限

1

root@tecmint:~# chmod 711 abc.sh

注意:对于系统管理员和用户来说,这个命令是最有用的命令之一了。在多用户环境或者服务器上,对于某个用户,如果设置了文件不可访问,那么这个命令就可以解决,如果设置了错误的权限,那么也就提供了为授权的访问。

14. vim命令(待补充)

该命令主要用于文本编辑,它接一个或多个文件名作为参数,如果文件存在就打开,如果文件不存在就以该文件名创建一个文件。vim是一个非常好用的文本编辑器,它里面有很多非常好用的命令。

15.gcc命令

对于一个用Linux开发C程序的人来说,这个命令就非常重要了,它用于把C语言的源程序文件,编译成可执行程序,由于g++的很多参数跟它非常相似,所以这里只介绍gcc的参数,它的常用参数如下:

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  

16.caldate命令

cal”(Calender),它用来显示当前月份或者未来或者过去任何年份中的月份。

date”命令使用标准的输出打印当前的日期和时间,也可以深入设置。

xiaod@ubuntu:~$ cal

      五月 2015        

日 一 二 三 四 五 六 

                1  2 

 3 4  5  6 7  8  9 

10 11 12 13 14 15 16 

17 18 19 20 21 22 23 

24 25 26 27 28 29 30 

31 

xiaod@ubuntu:~$ date

2015年 05月 20日 星期三 16:26:31 CST

17.time命令

该命令用于测算一个命令(即程序)的执行时间。它的使用非常简单,就像平时输入命令一样,不过在命令的前面加入一个time即可,例如:

time ./process

time ps aux

例如:

xiaod@ubuntu:~/desk/lili$time ./strcpy.cpp

real  0m0.036s

user 0m0.004s

sys   0m0.004s

在程序或命令运行结束后,在最后输出了三个时间,它们分别是:

real:实际时间,从command命令行开始执行到运行终止的消逝时间;

user:用户CPU时间,命令执行完成花费的用户CPU时间,即命令在用户态中执行时间总和;

system:系统CPU时间,命令执行完成花费的系统CPU时间,即命令在核心态中执行时间总和;

????

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

21pwd命令

“pwd”(print working directory),在终端中显示当前工作目录的全路径(绝对路径)。

例如:

xiaod@ubuntu:~/desk$ pwd

/home/xiaod/desk               (绝对路径)

22.history命令

它显示了在终端中所执行过的所有命令的历史。

23.uname命令

"uname"命令就是Unix Name的简写。显示机器名,操作系统和内核的详细信息。

xiaod@ubuntu:~$ uname

Linux

0 0
原创粉丝点击