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目录下的两个文件(夹),lili和suo
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。我们利用这些返回值就可进行一些自动化的文本处理工作。
4、find命令
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?
警告:我们要知道>意思是创建,>>是追加.
11、chgrp命令
该命令用于改变文件所属用户组,它的使用非常简单,它的基本用法如下:
1. chgrp [-R] dirname/filename
2. -R :进行递归的持续对所有文件和子目录更改
3. # 例如:
4. chgrp users -R ./dir # 递归地把dir目录下中的所有文件和子目录下所有文件的用户组修改为users
12、chown命令
“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.cal和date命令
“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是多任务操作系统,往往在执行一条命令时,系统还要处理其它任务。另一个需要注意的问题是即使每次执行相同命令,但所花费的时间也是不一样,其花费时间是与系统运行相关的。
21.pwd命令
“pwd”(print working directory),在终端中显示当前工作目录的全路径(绝对路径)。
例如:
xiaod@ubuntu:~/desk$ pwd
/home/xiaod/desk (绝对路径)
22.history命令
它显示了在终端中所执行过的所有命令的历史。
23.uname命令
"uname"命令就是Unix Name的简写。显示机器名,操作系统和内核的详细信息。
xiaod@ubuntu:~$ uname
Linux
- linux常用命令总结(待续)
- linux-常用命令-待续
- Linux常用命令-待续
- linux常用命令-----(自己常用的总结,待续)
- linux常用命令(笔记-待续)
- Linux命令总结【待续】
- Linux shell程序设计知识点总结 (待续)
- 总结【待续】
- linux常用命令总结
- LINUX 常用命令总结
- Linux 常用命令总结
- linux入侵常用命令总结
- linux 常用命令总结
- Linux 常用命令总结
- linux 常用命令 总结
- Linux常用命令总结
- Linux 常用命令总结
- linux 常用命令 自己总结
- 第十一周【项目3 - 点类派生直线类】
- Maven常用命令
- 关于java中Double类型的运算精度问题
- TCP/IP、Http、Socket的区别
- JAX-RS的常用注解
- linux常用命令总结(待续)
- 第十一周项目二职员有薪水了(2)
- html字体
- 网络实时检测
- iOS-设备类型和系统版本
- Qt5 action with external physical keypad
- 整数与IP地址间的转换
- 常用正则表达式
- Windows下的Memcache安装