Linux:最全的开发常用命令

Posted ABin-阿斌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux:最全的开发常用命令相关的知识,希望对你有一定的参考价值。

我是 ABin-阿斌:写一生代码,创一世佳话,筑一览芳华。 如果小伙伴们觉得文章有点 feel ,那就点个赞再走哦。

文章目录

一、Linux是什么?

  • linux 是一个内核:redhat [红帽]:收费,centos:免费,ubuntu:【界面】

二、虚拟机常用简单命令

1.reboot:重启

2.ifconfig[ipconfig]:查看ip

3.cd 目录:进入到某个目录

	1.目录:绝对路径:以/开头的路径 cd   /usr
	
    2. 相对路径:不是以/开头的路径     cd ../usr
			  
4.pwd:当前光标所在的目录  

5.clear:清空屏幕  

6.shutdown -h now
  	
7.查看文本内容命令:

 	1. cat    使用单屏查看文本文件
 
 	2. more  分屏查看时用h(帮助)  space(下翻屏)  b(上翻屏)  enter(下一行)  q键(退出)
 	
 	3. less   e(下一行)  y(上一行)  f  (下翻页)b (上翻页) q(退出)
 	
 	4. head   -#head -2
 	
 	5. tail   -#tail -2


# 查看cpu的命令:top

# 查看内存:free -m

# 查看硬盘:df -h 

# find / -name "da"# sync:关机之前,最好将内存中的数据保存到磁盘上!
	   
	   # file 文件:查看文件类型
	   
8.tab键补齐功能【目录或文件名补齐】、命令补齐

三、VI编辑器

  • VI 编辑器是 Linux 系统中使用最广泛的,而且是默认的文本编辑器

1、文本编辑器的作用:

  1. 修改系统配置文件
  2. 创建用户信息文件
  3. 编辑程序源代码文件

2、VI编辑器的模式(三种):

  • 命令模式: 由命令模式进入到输入模式:点击 i ( o,a,r );由命令模式进入到末行模式 输入:【冒号】
  • 输入模式: 由输入模式退出到命令模式:用 ESC
  • 末行模式: 在末行模式输入 (w,q,wq,wq! )就可以退出编辑器了

3、VI编辑器的使用:

  1. 打开或新建文件:vi 文件
  2. 编辑文件:i ,或者o ,或者 a,或者 r
  3. 保存文件: :w 文件 (有另存为功能)
  4. 退出编辑器
  5. :q (已保存或未更改)
  6. :wq (保存后退出)
  7. :q! (强制退出)

4、命令行模式下:

  • 行内快速跳转:

    1. ^ 行首
    2. $ 行尾
    3. w 后一个单词首字母
  • 行间快速跳转:
    1. : set nu 显示行号
    2. : set nonu 取消行号
    3. 1G 文件首行
    4. #G 转到#行(#号代表的是数字)
    5. G文件末行
    6. vi [+#] 文件名,光标就会自动到达文件的第#行首! (#表示数字!!!)

  • 在末行模式直接输入:#(#代表的是数字),那么就会直接跳转到第 # 行!

  • 光标方向移动在命令模式下:

    • k(上)
    • j(下)
    • h(左)
    • l(右)

5、删除操作:

  • dd:删除光标所在行
  • 3dd:从光标所在行,往下删除三行
  • d$:删除光标至行尾
  • d^:删除光标至行首
  • 在末行模式直接输入:1,20 d 即可删除第 #1 行到 #2 行的所有内容!(#代表的是数字)!
  • 加#, 如3dd(3就是这里说的#)
  • 撤销操作: u

6、复制操作:

  • yy:复制光标所在行
  • 3yy:复制光标所在行及下面2行
  • y$:复制光标至行尾
  • y^:复制光标至行首
  • 加#,如20yy -----从光标开始计算
  • 在末行模式直接输入:#,$y 即可复制第#行到文尾的所有内容!(#代表的是数字)!

7、粘贴操作:

  • p(小p): 粘贴在光标所在行之后
  • P(大p):粘贴在光标所在行之前

8、查找与替换(末行命令):

  • 查找:
    1. 由 ”/” 或者 ”?” 开始后跟一个 word
    2. 按 n 键查找后一个
    3. 按 N 键查找前一个

  • 替换:
    1. 在末行模式,%s/被替换单词/替换成哪个单词

四、文件文本相关命令

1. ls 目录:显示指定目录下的所有未隐藏的目录或者文件

2. ls -a 目录:显示指定目录中所有的文件或者目录【包括隐藏的,以.开头的文件】

3. ls -l:

4. ls -al:以长输出的方式显示所有的文件

5. cat 文件名:查看文件中的内容信息

# mkdir 目录 :创建目录,通过指定 -p 参数可以创建多级目录

# touch 文件名:用于创建一个文件

#rm -rf 目录、文件 删除目录或文件

# rmdir dir1:删除空目录

  
# cp 复制

   # cp 文件名a  目录A:  直接将文件a拷贝到目录 A 中,名字不变 a
   
   # cp 文件名a  目录A/b  直接将文件a拷贝到目录 A 中,名字变为 b
   
   # cp -r 目录a  目录A/b  直接将目录a拷贝到目录 A 中,名字由a变为 b
   
   # cp 源文件  目标文件【目标目录】
   
   
  # mv 源文件【源目录】  目标目录【目标文件】:
  
    # mv  源文件  目标文件:
    
    # mv 文件名  目录:
 
 
6. find 查找文件:

   	# find / -name 'aa.txt'

 
7. grep :查找文本中的内容

   	# cat aa.txt  | grep "hello"

五、压缩和解压缩命令

  • Windows 常用的压缩格式: .zip .rar 格式(压缩比更高,压缩速度也更快!)

  • Linux 常用压缩格式:.zip .gz .bz2 .tar.gz .tar .bz2 (把要压缩的文件或者目录先转换成tar包然后再压缩,解决了目录不能压缩和解压缩的问题!)

  • 注意: windows 的 zip 格式的压缩和 linux 系统的 zip 压缩是一致的(可以互相压缩和解压缩)!

1、zip文件的解压和压缩(可压缩目录和文件)

  1. zip 压缩格式:

    • 压缩文件: zip 压缩文件名 源文件
    • 压缩目录: zip -r 压缩文件名 源目录
    • 注意: 压缩文件有可能比源文件大(这是由于压缩格式的信息也在压缩包里面)!
  2. 解压缩zip压缩的文件:

    • unzip 压缩文件

2、gz 格式解压和压缩

  • gz 压缩格式是 linux 所特有的压缩格式,但可以在 windows 上解压,不能压缩目录,只能压缩子文件
  1. 压缩:gzip 源文件

    • 注意: 源文件会消失

    • gzip -c 源文件 > 压缩文件

      • 注意:源文件会保留( 重定向是把命令的结果输出到一个文件中! )
    • gzip -r 目录 注意:这会压缩该目录下的子文件

  2. 解压: gzip -d 压缩文件

  • gunzip 压缩文件
  • gunzip -r 目录 (解压缩目录里面的文件)

3、bz2 格式解压和压缩( bzip2 压缩目录会报错 )

  1. 压缩:bzip2 源文件
    • 注意: 源文件会消失
  • bzip2 -k 源文件
    • 注意: 源文件会保留
  1. 解压:bzip2 -d 压缩文件
    • 注意:-k 保留压缩文件
  • bunzip2 压缩文件
    • 注意:-k 保留压缩文件

4、tar.gz格式的解压和压缩

  1. 压缩: tar -cvf 打包文件名 源文件(源目录)
  • 选项:
    • -c : 打包
    • -v :显示过程
    • -f :指定打包后的文件名
      • 例子:tar -cvf hello.tar hello.txt
        • gzip hello.tar
        • gzip -d hello.tar .gz
        • bzip2 hello.tar
        • bzip2 -d hello.tar .bz2
  1. 解压:
  • tar -xvf 打包文件名
    • 选项: -x : 解压
      • 例子:tar -xvf hello .tar
  1. tar .gz压缩(先打包为 .tar 格式,再压缩为 .gz 格式)
  • 压缩: tar -zcvf 压缩包名.tar.gz 源文件(可以为多个,文件之间用空格隔开,压缩包名.tar.gz也可以写绝对路径)

    • 选项:-z :压缩为.tar.gz格式
  • 解压: tar -zxvf 压缩包名.tar.gz -C 要解压到的文件夹

    • 选项:-x :解压.tar.gz格式

5、tar.bz2格式解压和压缩

  • 压缩: tar -jcvf 压缩包名.tar.bz2 源文件

    • 选项:-j :压缩为:.tar.bz2格式
  • tar -jxvf 压缩包名.tar.bz2

    • 选项:-x :解压.tar.bz2格式
    • 案列(指定解压目录):tar -jxvf hello.tar.bz2 -C /opt/installDir

六、用户(组)管理命令

  1. 添加用户:useradd

  2. 设置密码:passwd

    • 注意:若无则默认为root修改密码
  3. 删除用户: userdel [-r]

  4. 禁止/解禁用户:usermod [-L|-U]

  5. 切换用户:su 注意:输入的是你将要切换到目标用户的密码

  6. 查看当前用户: whoami / who am i

  7. 查看所有已登录用户:who

  8. 查看所有登录用户记录:last

  9. 用户信息文件: /etc/passwd 可通过cat /etc/passwd 进行查看,字段之间都是用冒号隔开,格式为:用户名:口令:用户标示符号:组标识符号:注释性描述:宿主目录:命令解释器

  10. 用户密码文件: /etc/shadow 可通过cat /etc/shadow 进行查看

  11. history:查看你输入过的命令[200]

1、用户组

12. 增加用户组:groupadd <groupname>

13. 创建用户时指定用户初始组 useradd -g <initial_group>  <username>
	
14. 删除用户组:groupdel  <groupname>

15. 修改用户所在初始组 usermod -g  <groupname>  <username>	
 
16. 查看用户所属组:groups <username>

18. 组信息:/etc/group :格式为:组名:组口令:GID:组成员  组密码信息在:/etc/gshadow文件中保存!!
	

七、文件/目录的权限

# r:# w:# x: 执行的权限
	
# ll命令:长输出显示文件信息

  	-rw-r--r-- 1 zhangsan   root                  0        11月 22 18:31                aaaa
            	   属主      属组               文件大小     创建或者修改时间               文件名
                     

  -rw-r--r--:
   第一位:文件类型:-:表示这是个普通文件
                  d:表示这是个目录
				  l:这是一个链接文件
				  
rw-[2-4]:表示属主对当前文件的操作权限 

r--[第5位-第7位]:表示属组中的用户对当前文件的操作权限

r--[第8位-第10位]:表示其它人【既不属于属主、也不属于属组中的用户】对当前文件的操作权限

八、文件和文件夹的读写执行权限的含义

		权限		简写		对普通文件的作用	      对文件夹的作用
		
		读取		r	    查看文件内容	          列出文件夹中的文件(ls)
		
		写入		w	    修改文件内容	          在文件夹中删除、添加或重命名文件()
		
		执行		x	    文件可以作为程序执行 	  cd 到文件夹
	 
	 
	 # root用户:不受权限限制,是一个超级的存在。
	 
	 # 修改文件的权限:
	 
	   chmod:  u/   r/w/x 文件名
	   
	   属主:u
	   
	   属组:g
	   
	   其它:o
	   
	   所有用户:a

     # 文件授权: 
     
        chmod u+rwx 文件名 或者 chmod u+7 文件
        
		chmod g+rwx 文件名 或者 chmod g+7 文件
		
		chmod o+rwx 文件名 或者 chmod o+7 文件
		
		chmod a+rwx 文件名 或者 chmod a+7 文件
		

# 文件权限设置:

	更改文件权限:chmod [ugoa][+-=][rwx] <file> (用逗号分隔)
	
	更改文件所有者:chown <owner> <file>
	
	更改文件所属组:chgrp <group> <file>
	
	同时更改所有者和所属组:chown <owner:group> <file>

# 连接文件

    软链接文件:ln -s 源文件  链接文件,软连接文件依赖于源文件
    
	硬链接文件:ln  源文件   链接文件,   硬连接文件不完全依赖于源文件

# su|sudo 用户: 表示切换到指定用户身份,暂时以指定用户的身份运行,普通用户切换到root用户,需要输入密码,而root用户切换到普通不需要输入密码:修改:vim /etc/sudoers

九、软件安装相关

1). RPM 包【.rpm软件包】:这种方式比较麻烦:

		1.RPMRedHat Package Manager),Rethat 软件包管理工具,类似 windows 里面的 setup.exe
		
		  RethatLinux这系列操作系统里面的软件安装工具,它虽然是RedHat的标志,但理念是通用的

	 
		2.RPM 包的名称格式:
		
			 apache-1.3.23-11.i386.rpmapache:“软件名称”
			 
			 "1.3.23-11":软件的版本号,主版本和此版本
			 
			 "i386":是软件所运行的硬件平台
			 
			 “rpm”:文件扩展名,代表 RPM 包:
			 
		
		
		3.对于 RPM 包而言
		
			常用命令:
					  查询:rpm -qa:查询所安装的所有rpm软件包
					  
							rpm -q tomcat
							
							rpm -qa | grep X
	
					  安装: rpm -ivh RPM包全路径名称:
	
						 i=install,安装
						 
						 v=verbose,提示信息
						 
						 h=hash,进度
						 
						rpm -ivh jdk-7u67-linux-x64.rpm //安装 ,安装到/usr/java/目录下了
					 
				
				   配置环境变量:
				   
					vim /etc/profile
					
					export  JAVA_HOME=/usr/java/jdk1.7.0_67
					
					export  CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
					
					export  PATH=$PATH:$JAVA_HOME/bin  注意:这里等号两侧不要留空格;

					保存并退出,并使得配置生效
					
					source /etc/profile 
					
					查看java版本:java -version	
															 
				  卸载:rpm -e RPM 软件包
				  
				  
				  
# Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的

   1/usr:系统级的目录,可以理解为C:/Windows//usr/lib理解为C:/Windows/System322/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。
   3/opt:用户级的程序目录,可以理解为D:/Softwareopt有可选的意思,这里可以放置第三方软件,当你不需要时,直接rm -rf掉即可。
		   
		   
		   
	2).yum 安装 ---->
	
	    语法:yum install 软件名称
	   
一、 安装 mysql:centos6

    1. 使用root用户: su root
    
    2. 安装:
 
		yum install mysql(这是安装的mysql的客户端!!!)
		
		yum install mysql-server  这是安装的mysql的服务端!!!)
		
		yum install mysql-devel(可选)
		
    3. 修改配置信息,添加: vim /etc/my.cnf

		   (添加一个mysql节点)
		   
			[mysql]
			
			default-character-set=utf8
			
			[mysqld]
			
			character-set-server=utf8
			
			lower_case_table_names=1
			
    4. 启动mysqlservice mysqld restart/stop/start
    
    5. 配置超级用户名和密码, mysqladmin -u root password 123456
    
    6. root用户登录mysql -u root -p 123456
	
    7. 创建mysql用户:create user 'hive' identified by '123456';
  
    8. 授权:grant all privileges on *.* to 'hive'@'%' with grant option
   
    9. flush privileges;
   
    10. 重启一下这个mysql服务。
 
    11. 使用hive用户创建数据库并修改连接信息。
    
	    create database hive;
	 
	 
3).解压配置安装:tomcat.tar.gz 
         
   tar -zxvf  apache-tomcat-7.0.65.tar.gz -C /opt/install/ :-C指定要解压到的目录
   
   vi /etc/profile

十、查看日志相关命令

# 最常用查看日志方法:

	实时日志:tail -f XXX.log
	
	搜索关键字附近日志:cat -n filename | grep "关键字"
	
# 查看日志常用命令

1tail:

   -n  是显示行号;相当于nl命令;例子如下:

        tail -100f test.log      实时监控100行日志

        tail  -n  10  test.log   查询日志尾部最后10行的日志;

        tail -n +10 test.log    查询10行之后的所有日志;

2head:tail 是相反的,tail 是看后多少行日志,而 head 是查看日志文件的头多少行,例子如下:

        head -n 10  test.log   查询日志文件中的头10行日志;

        head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;

3cattac 是倒序查看,是 cat 单词反写;例子如下:

        cat -n test.log |grep "debug"   查询关键字的日志(常用!)

4vim1、进入vim编辑模式:vim filename
    
    2、输入“/关键字”,enter 键查找
    
    3、查找下一个,按 “n” 即可
    
    退出:按 ESC 键后,接着再输入:号时,vi会在屏幕的最下方等待我们输入命令
    
    wq! 保存退出
    
    q! 不保存退出 

# 查看日志应用场景一:按行号查看:过滤出关键字附近的日志

 (1) cat -n test.log |grep "debug"  得到关键日志的行号

 (2) cat -n test.log |tail -n +92|head -n 20  选择关键字所在的中间一行. 然后查看这个关键字前 10 行和后 10 行的日志:

        tail -n +92表示查询92行之后的日志

        head -n 20 则表示在前面的查询结果里再查前20条记录

# 查看日志应用场景二:根据日期查询日志

   (1) sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log
   
# 特别说明:

	1、上面的两个日期必须是日志中打印出来的日志,否则无效

	2、先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该时间点


# 查看日志应用场景三:日志内容特别多,打印在屏幕上不方便查看,分页/保存文件查看

	(1)使用moreless命令,
	
	       如: cat -n test.log |grep "debug" |more     这样就分页打印了,通过点击空格键翻页
	
	(2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析
	
	        如:cat -n test.log |grep "debug"  >debug.txt

以上是关于Linux:最全的开发常用命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux:最全的开发常用命令

Linux:最全的开发常用命令

软件测试工程师要掌握的Linux系统命令-很全,但不是最全!

史上最全的Linux常用命令

开发中常用Linux命令

史上最全Linux命令科普 | 常见命令的名称是怎么来的?