LINUX:开发中用得较多的一些操作

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/caozp913/article/details/102633312

目录文件相关

cd命令用来切换工作目录至dirname。 其中dirName表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory(也就是刚login时所在的目录)。另外,~也表示为home directory的意思,.则是表示目前所在的目录,..则表示目前目录位置的上一层目录。


pwd命令以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/分隔。第一个/表示根目录,最后一个目录是当前目录。执行pwd命令可立刻得知您目前所在的工作目录的绝对路径名称。


ls命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。

ls 粗略地横向显示当前目录的文件和目录。如果目录下是空的,则不显示。
ls -a 粗略地横向显示当前目录的目录和文件,包括隐藏的。
ls -l 以列表的形式显示文件和目录。
ls -al 以列表的形式显示所有文件和目录,包括隐藏的(隐藏文件是以点号开头的)。
ls -lh 可以在列出文件的同时查看文件的大小。
ls -lh 文件名——直接查看目标文件的大小和相关信息。
ls -t 用文件和目录的更改时间排序。

cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

cp [参数] 源 目标
源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;
目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。

如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。
此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点..的形式。
例如,下面的命令将指定文件复制到当前目录下:
cp ../mary/homework/assign .

所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。
比如将文件file复制到目录/usr/men/tmp下,并改名为file1
cp file /usr/men/tmp/file1

再比如将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中
cp -r /usr/men /usr/zh

mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

1、如果目标是目录,源文件(一个或多个)会被移到此目录下,且文件名不变。

2、如果目标是文件,则源文件(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。

注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。


mkdir命令用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名,否则创建失败。 如果想一次创建多级目录,可以使用参数-p。


touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。

touch 文件名

已存在则改时间;
否则创建空文件

文件可以有多个

rmdir命令用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录。删除目录时,必须具有对其父目录的写权限。

虽然还可以用带有-r选项的rm命令递归删除一个目录中的所有文件和该目录本身,即删除非空目录,但是这样做存在很大的危险性。另外rm如果使用-rf参数可以不经过提示就强制删除。


rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。

-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
-v:显示指令的详细执行过程。

查看相关

tail命令用于输出文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。可以使用-f属性来读取追加的内容。

tail file (显示文件file的最后10行)
tail +20 file (显示文件file的内容,从第20行至文件末尾)
tail -f file (读取不断追加的内容,通常用于读取正在生成的文件)

head命令用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。可以使用-n来指定显示头几行,比如head -n 20。


more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。

该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:--More--(XX%)可以用下列不同的方法对提示做出回答:

按Space键:显示文本的下一屏内容。
按Enter键:只显示文本的下一行内容。
按B键:显示上一屏内容。
按Q键:退出more命令。

当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。


less命令的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。


cat命令连接文件并打印到标准输出设备上,cat经常用来显示文件的内容。可以结合 | more来分屏查看文件内容。

cat file | more

可以使用-n来显示行号

|管道符,表示将前一个命令的处理结果交给后一个命令来处理

结合more使用时,为了控制滚屏,也可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。


查找相关

find命令用来在指定目录下查找文件。如果使用该命令时,不设置任何参数,则find命令将在当前目录下遍历查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

基本语法:find [搜索目录] [选项]
选项有三种:
-name 文件名
-user 用户名
-size 文件大小n(+n大于;-n小于;n等于)
通配符.txt——*.txt

文件的单位M要大写,k要小写,实际中试一下就知道了。
案例1:find /home -name hello.txt
案例2:find /opt -user nobody
案例3:find / -size +200M
ctrl+c,终止检索。

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。可以结合cat等查找命令来使用:

在文件中搜索一个单词,命令会返回一个包含“match_pattern”的文本行:
grep match_pattern file_name
grep "match_pattern" file_name

在多个文件中查找:
grep "match_pattern" file_1 file_2 file_3 ...

输出除之外的所有行 -v 选项:
grep -v "match_pattern" file_name

标记匹配颜色 --color=auto 选项:
grep "match_pattern" file_name --color=auto

使用正则表达式 -E 选项:
grep -E "[1-9]+"

-ni,显示匹配行号并且不区分大小写。

示例:搜索hello.tet文件中含有yes的文本行
cat hello.txt | grep -n yes

locate命令slocate命令都用来查找文件或目录。

locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。


内存相关

df -h,用来查看系统整体磁盘使用情况。
df默认是以KB显示,使用-h选项以KB以上的单位来显示,可读性高:
[root@LinServ-1 ~]# df -h
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda2             140G   27G  106G  21% /
/dev/sda1             996M   61M  884M   7% /boot
tmpfs                1009M     0 1009M   0% /dev/shm
/dev/sdb1             2.7T  209G  2.4T   8% /data1


du命令也是查看使用空间的,但是与df命令不同的是du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。
du -ach --max-depth=1 /目录
-a 表示查看文件大小
-c 表示列出明细,增加汇总
-h 也表示以KB以上的单位来显示
--max-depth=1 表示目录深度

进程相关

进程相关的内容相对重要,因为经常需要发布版本,会涉及到进程管理。

在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

ps命令是用来查看目前系统中,有哪些正在执行的进程,以及它们执行的状况。可以不加任何参数。

一般来说使用的参数是-aux

-a 显示当前终端所有进程信息 
-u 以用户的格式显示进程信息
-x 显示后台进程运行的参数

 显示的内容说明如下:

STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等。

 另外ps -ef能够以全格式显示当前所有的进程,可以查看父进程PPID。-e 显示所有进程。-f 全格式。


kill命令用来结束进程,如果无法结束,则使用-9参数来强制终止进程。通常会结合ps命令使用

ps -aux | more
root      3268  2884  0 16:21 pts/1    00:00:00 vim install.log
root      3370  2822  0 16:21 pts/0    00:00:00 grep vim

kill 3268
kill -9 3268

只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。

以上均为目前为止在工作中会用到的,其它暂时用不到的后续有需要再行学习。

更多命令用法参考:

Linux命令大全 

猜你喜欢

转载自blog.csdn.net/caozp913/article/details/102633312
今日推荐