跳至主要內容

常用命令

linuxlinux大约 7 分钟

Linux常用命令

1. 常用命令

命令对应英文作用
ls [目录名]list查看当前目录下的内容
pwdprint work directory查看当前所在目录
cd [目录名]change directory切换目录
touch [文件名]touch如果文件不存在,创建文件
mkdir [目录名]make directory创建目录
rm [文件名]remove删除指定文件

在执行Linux命令时,提示信息如果显示为乱码,是由于编码问题导致,只需要修改Linux的编码即可,命令如下

echo 'LANG="en_US.UTF-8"' >> /etc/profile
	
source /etc/profile

2. 操作目录

  • ls
作用: 显示指定目录下的内容
语法: ls [-al] [dir]
说明: 
	-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
	-l 除文件名称外,同时将文件型态(d表示目录,-表示文件)、权限、拥有者、文件大小等信息详细列出
	
注意: 
	由于我们使用ls命令时经常需要加入-l选项,所以Linux为ls -l命令提供了一种简写方式,即ll
	
常见用法: 
	ls -al 	      查看当前目录的所有文件及目录详细信息
	ls -al /etc   查看/etc目录下所有文件及目录详细信息
	ll  	      查看当前目录文件及目录的详细信息 

  • cat
作用: 用于显示文件内容
语法: cat [-n] fileName

说明:
	-n: 由1开始对所有输出的行数编号

举例:
	cat /etc/profile		查看/etc目录下的profile文件内容

  • more
作用: 以分页的形式显示文件内容
语法: more fileName

操作说明:
    回车键 	向下滚动一行
    空格键 	向下滚动一屏
    b 		  返回上一屏
    q或者Ctrl+C	退出more
	
举例:
	more /etc/profile		以分页方式显示/etc目录下的profile文件内容

  • tail
作用: 查看文件末尾的内容
语法: tail [-f] fileName

说明:
	-f : 动态读取文件末尾内容并显示,通常用于日志文件的内容输出
	
举例: 
tail /etc/profile		显示/etc目录下的profile文件末尾10行的内容
tail -20 /etc/profile	显示/etc目录下的profile文件末尾20行的内容
tail -f /ajplus/my.log	动态读取/ajplus目录下的my.log文件末尾内容并显示

  • mkdir
作用: 创建目录
语法: mkdir [-p] dirName

说明: 
	-p: 确保目录名称存在,不存在的就创建一个;通过此选项,可以实现多层目录同时创建

举例: 
    mkdir ajplus  在当前目录下,建立一个名为ajplus的子目录
    mkdir -p ajplus/test   在工作目录下的ajplus目录中建立一个名为test的子目录,若ajplus目录不存在,则建立一个 

  • rmdir
作用: 删除空目录
语法: rmdir [-p] dirName

说明:
	-p: 当子目录被删除后使父目录为空目录的话,则一并删除

举例:
    rmdir ajplus   删除名为ajplus的空目录
    rmdir -p ajplus/test   删除ajplus目录中名为test的子目录,若test目录删除后ajplus目录变为空目录,则也被删除
    rmdir ajplus*   删除名称以ajplus开始的空目录
    rmdir *ajplus   删除以ajplus结尾的目录

  • rm
作用: 删除文件或者目录
语法: rm [-rf] name

说明: 
    -r: 将目录及目录中所有文件(目录)逐一删除,即递归删除
    -f: 无需确认,直接删除
	
举例: 
    rm -r ajplus/     删除名为ajplus的目录和目录中所有文件,删除前需确认
    rm -rf ajplus/    无需确认,直接删除名为ajplus的目录和目录中所有文件
    rm -f hello.txt   无需确认,直接删除hello.txt文件

3. 拷贝移动

  • cp
作用: 用于复制文件或目录
语法: cp [-r] source dest

说明: 
	-r: 如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件

举例: 
    cp hello.txt ajplus/            将hello.txt复制到ajplus目录中
    cp hello.txt ./hi.txt           将hello.txt复制到当前目录,并改名为hi.txt
    cp -r ajplus/ ./ajplus/     	将ajplus目录和目录下所有文件复制到ajplus目录下
    cp -r ajplus/* ./ajplus/ 	 	将ajplus目录下所有文件复制到ajplus目录下

如果拷贝的内容是目录,需要加上参数 -r


  • mv
作用: 为文件或目录改名、或将文件或目录移动到其它位置
语法: mv source dest

举例: 
    mv hello.txt hi.txt                 将hello.txt改名为hi.txt
    mv hi.txt ajplus/                  将文件hi.txt移动到ajplus目录中
    mv hi.txt ajplus/hello.txt   		将hi.txt移动到ajplus目录中,并改名为hello.txt
    mv ajplus/ ajplus/                 如果ajplus目录不存在,将ajplus目录改名为ajplus
    mv ajplus/ ajplus/                 如果ajplus目录存在,将ajplus目录移动到ajplus目录中

4. 打包压缩

作用: 对文件进行打包、解包、压缩、解压
语法: tar  [-zcxvf]  fileName  [files]
    包文件后缀为.tar表示只是完成了打包,并没有压缩
    包文件后缀为.tar.gz表示打包的同时还进行了压缩

说明:
    -z: z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压
    -c: c代表的是create,即创建新的包文件
    -x: x代表的是extract,实现从包文件中还原文件
    -v: v代表的是verbose,显示命令的执行过程
    -f: f代表的是file,用于指定包文件的名称

举例:
    打包
        tar -cvf hello.tar ./*		  		将当前目录下所有文件打包,打包后的文件名为hello.tar
        tar -zcvf hello.tar.gz ./*		  	将当前目录下所有文件打包并压缩,打包后的文件名为hello.tar.gz
		
    解包
        tar -xvf hello.tar		  			将hello.tar文件进行解包,并将解包后的文件放在当前目录
        tar -zxvf hello.tar.gz		  		将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录
        tar -zxvf hello.tar.gz -C /usr/local     将hello.tar.gz文件进行解压,并将解压后的文件放在/usr/local目录


5. 文本编辑

vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本

vi fileName

vim是从vi发展来的一个功能更加强大的文本编辑工具,编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,所以实际工作中vim更加常用;

yum install vim #安装vim
命令模式指令含义
gg定位到文本内容的第一行
G定位到文本内容的最后一行
dd删除光标所在行的数据
ndd删除当前光标所在行及之后的n行数据
u撤销操作
shift+zz保存并退出
i 或 a 或 o进入插入模式
底行模式命令含义
:wq保存并退出
:q!不保存退出
:set nu显示行号
:set nonu取消行号显示
:n定位到第n行, 如 :10 就是定位到第10行

6. 查找

  • find
作用: 在指定目录下查找文件
语法: find dirName -option fileName
举例:
    find  .  –name "*.java"			在当前目录及其子目录下查找.java结尾文件
    find  /ajplus  -name "*.java"	在/ajplus目录及其子目录下查找.java结尾的文件 

  • grep
作用: 从指定文件中查找指定的文本内容
语法: grep word fileName
举例: 
    grep Hello HelloWorld.java	查找HelloWorld.java文件中出现的Hello字符串的位置
    grep hello *.java			查找当前目录中所有.java结尾的文件中包含hello字符串的位置