Linux常用命令

195 阅读10分钟

一、Linux常用命令

1、init 0   关机

2、init 6   重启   

3、lsls -l  、  ll 列出出当前目录下的文件 

4、cd  切换目录

5、pwd            查看当前路径

7、cd -             切换最近使用过的两个目录

8、ctrl+c      中断当前程序

9、ctrl+l  / (clear)   清屏

10、ip addr  /  ifconfig    查看网卡信息

11、ping 127.0.0.1   看网络是否通畅

二、Linux shell命令技巧

1.tab补全
	命令+(1次)tab
	命令+(2次)tab

2、上下键盘    查看最近的历史命令

3.history
	查看命令历史

	!22
	调用历史中编号为22的命令

4.!h
	调用历史中最后一次以h开头的命令

获取帮助:
	
	ls --help

	man ls  

三、Linux 创建用户修改密码

1.添加用户
	useradd zhangsan

2.设置密码
	passwd zhangsan

3.删除用户
	
	userdel -rf zhangsan

	-r:递归的删除目录下面文件以及子目录下文件。

四、文件管理

1.创建文件

	touch file1

2.删除文件
	
	rm -rf file11

	-r:递归的删除目录下面文件以及子目录下文件。
	-f:强制删除,忽略不存在的文件,从不给出提示		


3.修改文件名
	mv  file1 file11

4.查看文件内容

	cat file1

5.复制文件

	cp file2 file22

6.移动文件

	mv file1 file11

7.编辑文件

	vi file1

8.批量创建文件

	touch file{1..10}

	rm -rf file{1..10}


9.查看文件前3行

	| 把前面的执行结构给后端

	cat file1 | head -3

10.查看文件后3行

	cat file1 | tail -3

11、liunx服务器上面查找文件

	1)find
		find / -name  httpd.conf

		find 目录 -name  文件名

	2)updatedb   查找速度快

		1、建立一个小型数据库    updatedb

		2、再数据库里面搜索       locate httpd.conf


	    
		yum install mlocate -y

		mlocate是新型的locate比updatedb速度更快。


12、查找文件里面内容   找到httpd.conf 里面有listen

			
	cat httpd.conf | grep listen

	cat httpd.conf | grep -ignore listen   /  cat httpd.conf | grep -i listen  忽略大小写

		
13、查找文件里面内容  vi搜索 

	vi  httpd.conf

	输入 /Listen    搜索Listen     N下一个

五、Linux 目录管理

1.创建目录
	mkdir dir1 dir2 dir3

2.删除目录
	rm -rf dir1 dir2

	-r:递归的删除目录下面文件以及子目录下文件。

	-f:强制删除,忽略不存在的文件,从不给出提示


	rm -rf  dir*      以dir开头的所有文件删除


3.重命名目录或移动目录

	mv dir1 dir11


4.查看目录

	ls  / ll

5.递归创建目录

	mkdir -p a/b/c/d/e/f/g

6.递归查看目录
	tree a

7、复制目录

	 cp  -rf  wwwroot/ mywwwroot/	

8、tree命令不存在的话需要安装
		
yum install tree -y

六 、Linux 打包压缩 别名管理

一、打包压缩

	1、zip压缩包
		1.制作
		zip -r public.zip public

		-r 递归 表示将指定的目录下的所有子目录以及文件一起处理

	2.解压
		unzip public.zip

		unzip public.zip -d dir             

	3.查看
		nzip -l public.zip

	4、安装zip减压软件

		yum install -y unzip zip


	2、gz压缩包:  (源代码压缩)
	Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法

		1.制作gz包
			tar czvf public.tar.gz public

		2.解压gz包
			tar xzvf public.tar.gz

		3.查看gz包
			tar tf public.tar.gz

	4、制作tar包

			tar cvf wwwroot.tar wwwroot         仅打包,不压缩!

	5、减压tar包

			 tar xvf wwwroot.tar        


	参数:

	特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。


		-c  :建立一个压缩档案的参数指令(create 的意思)
		-x  :解开一个压缩档案的参数指令!
		-t  :查看 tarfile 里面的档案!

			-z  :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
		-j  :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
		-v  :压缩的过程中显示档案!这个常用,但不建议用在背景执行过程!
		-f  :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
		
	3、xz压缩包:  	

	对于xz这个压缩相信很多人陌生,但xz是绝大数linux默认就带的一个压缩工具,xz格式比7z还要小。

	1.制作
		tar  cvf xxx.tar xxx  // 这样创建xxx.tar文件先,
		xz  xxx.tar        //将 xxx.tar压缩成为 xxx.tar.xz	   删除原来的tar包
		xz  -k xxx.tar       //将 xxx.tar压缩成为 xxx.tar.xz	  保留原来的tar包


	2.解压
		xz   -d  ***.tar.xz     //先解压xz   删除原来的xz包
		   
		xz  -dk  ***.tar.xz     //先解压xz  保留原来的xz包

		tar  -xvf  ***.tar    //再解压tar

	2.查看

		xz  -l  ***.tar.xz     //先解压xz
		
二、别名管理
	1.添加别名
	
		alias chttp='cat /etc/httpd/conf/httpd.conf'
			
		chttp

	2.删除别名

		unalias chttp

	3.查看别名
		alias

七 、用户管理、用户权限管理

用户管理

	1.添加用户
	
		useradd lisi

	2.设置密码

		passwd lisi

		
	3.删除用户

		userdel -r lisi

		-r:递归的删除目录下面文件以及子目录下文件。
		备注:删除用户的时候用户组被删除

	4.查看用户

		id user

	5.把用户加入组
				
		gpasswd -a testuser root

	把用户testuser加入到root组,加入组后testuser获取到user组及root组所有权限

	6、把用户移出租
		gpasswd -d testuser root

	
用户权限管理



	drwxr-xr-x.   2 root root    6 4月  11 2018 mnt

	rwx   当前用户对mnt有读写执行权限      u

	r-x   当前用户的组对mnt文件有读和执行  g

	r-x   其他用户对mnt也具有读和执行      o


权限:
	r 读
	w 写
	x 执行


用户:
	所有者   user   u
	所属组   group  g
	其他用户 other  o
	所有用户 all     a            u+g+o=a(表示所有人) 


目录的rwx
	r  查看目录里面的文件(4)
	w 在目录里创建或删除文件(2)
	x  切换进目录(1)

文件的rwx

	r 查看文件内容
	w 在文件里写内容
	x 执行该文件(文件不是普通文件,是程序或脚本)


chmod权限分配
	+增加权限         -删除权限

	chmod u+x my.sh   给当前用户分配执行my.sh的权限

	chmod o+r,o+w file.txt    给其他用户分配对file.txt的读写权限

	chmod o+r,o+w,o+x mnt/     给所有其他用户分配对mnt目录的进入、读取、写入权限

	chmod -R o+r,o+w,o+x mnt/       修改目录下的所有文件的权限为可读、可修改、可执行

	chmod 755 file

	chmod -R 777 wwwroot/  修改目录下的所有文件的权限为可读、可修改、可执行


ACL权限控制


	[root@localhost /]# setfacl -m u:zhangsan:rx opt/
	[root@localhost /]# setfacl -m u:lisi:rwx opt/

	1.查看opt拥有的acl权限 
		getfacl opt/        

	2.设置opt的acl权限
		setfacl -m u:zhangsan:rwx opt/

	3.删除opt的user1拥有的acl权限 
		setfacl -x u:zhangsan opt/          -x删除权限

	4.删除opt上所设置过的所有acl权限 
		setfacl -b opt/

用户权限管理visudo	

	sbin下面的命令执行权限

	1.设置
	输入: visudo   

		编辑    %zhangsan localhost=/usr/sbin/useradd
			%zhangsan localhost=/usr/sbin/userdel

	2.使用  普通用户家sudo

		sudo useradd wangwu
		sudo userdel wangwu

查找命令所在目录

	which useradd

八 、rpm软件安装卸载

rpm命令安装卸载查找rpm包


	1、挂载光盘

		1、mount dev/cdrom /media  挂载
		2、df  查看光盘是否挂载
		3、卸载umount /media

	2、rpm安装

		rpm -ivh rpm软件包

	3、rpm卸载软件

		rpm -e net-tools           net-tools表示要卸载的软件包
	4、查看rpm软件包的安装位置 / 软件包是否安装


		rpm -ql net-tools

Yum安装rpm 卸载rpm  查看rpm包


	1、yum安装rpm包

		yum install -y net-tools              包括 netstat ifconfig等命令
		yum install -y unzip zip               zip压缩减压
		yum install -y mlocate                 updatedb
		yum install -y wget                    下载文件包
		yum -y install psmisc                   pstree | grep httpd   查看进程    pstree -p   显示进程以及子进程

	2、yum卸载rpm包

		yum -y remove wget
		
		
	3.yum搜索npm包

		yum search 名称

		
	4.yum查看rpm包

		yum list 

		yum list | grep httpd

		yum list updates  列出所有可更新的软件包

		yum list installed   列出所有已安装的软件包

	5.yum显示rpm包信息

		yum info package1
		如:
		yum info httpd   
		yum info zip
		yum info unzip


	6、yum 安装Apache 

		yum -y install httpd                  service httpd start   安装启动apache

		1、启动apache
		2、关闭防火墙                     systemctl stop firewalld

yum的主配置文件 etc/yum.conf 



yum的仓库配置文件 /etc/yum.repo.d/*.repo



Yum 安装Nginx:
	1、安装nginx源
		sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
	2、查看Nginx源是否配置成功 
		通过yum search nginx看看是否已经添加源成功。如果成功则执行下列命令安装Nginx。
		或者 npm info nginx也可以看看nginx源是否添加成功
	3、安装Nginx 
		sudo yum install -y nginx
	3、启动Nginx并设置开机自动运行 
		sudo systemctl start nginx.service
		sudo systemctl enable nginx.service

	
	防火墙配置:http://bbs.itying.com/topic/5bd5d4460e525017c449479a

九、源代码包的安装

1、先安装源代码编译的软件gcc,make,openssl 如下:

	yum install -y gcc make gcc-c++ openssl-devel

	检查系统中是否已经安装 gcc:

	rpm -qa | grep gcc  /  rpm -ql  gcc  


2、编译安装源代码包
	1.生成编译配置文件(Makefile)
	2.开始编译(make)
	3.开始安装(make install)

	安装httpd-2.2.9.tar.gz源代码:
		1)减压并cd到对应目录
		2)./configure --prefix=/usr/local/nodejs              安装路径设置为/usr/local/apache
		3)  make   /  make -j4
		4)  make install


3、删除源代码包


	1、结束当前源代码进程
	2、删除源代码


	如:

		1、结束进程
			pstree|grep httpd
			pkill httpd

		2、删除源代码
		cd  /usr/local/
		直接删除源代码   rm -rf apache/

4、linux下源代码安装nodejs:
	1、 下载nodejs源码包
	2、 减压到usr/local/nodejs 目录
	3、 ./configure
	4、 make   /  make -j4
	5、 make install

十、二进制包安装nodejs

二进制包里面包括了已经经过编译,可以马上运行的程序,所以二进制包的安装只需要丢到一个目录里面就可以了。



去官网下载nodejs二进制包并减压:
	wget https://nodejs.org/dist/v8.9.3/node-v8.9.3-linux-x64.tar.xz

	xz -d node-v8.9.3-linux-x64.tar.xz
	tar -xvf node-v8.9.3-linux-x64.tar

	mv node-v8.9.3-linux-x64 /usr/local/nodejs


配置环境变量
	vi /etc/profile

最后面添加:
	export NODE_HOME=/usr/local/nodejs/bin
	export PATH=$NODE_HOME:$PATH

:wq保存,然后运行
	source /etc/profile

可以用node -v和npm -v来检查下: 
	node -v

查看环境变量是否生效
	echo $PATH

十一、 Linux 内存、cpu、进程、端口、硬盘管理

 top命令 查看内存 cpu 进程 以及服务器负载


	1、top命令的第一行:

		top - 15:31:47 up  9:30,  3 users,  load average: 0.00, 0.02, 0.05

		依次对应:系统当前时间 up 系统到目前为止i运行的时间, 当前登陆系统的用户数量, load average后面的三个数字分别表示距离现在一分钟,五分钟,十五分钟的负载情况。

	2、top命令的第二行:

		Tasks: 133 total,   1 running, 132 sleeping,   0 stopped,   0 zombie

		依次对应:tasks表示任务(进程),133 total则表示现在有133 个进程,其中处于运行中的有1个,132 个在休眠(挂起),stopped状态即停止的进程数为0,zombie状态即僵尸的进程数为0个。

	3、top命令的第三行,cpu状态:
	     
		%Cpu(s):  0.2 us,  0.4 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
	 
		只看空闲就可以了:cpu空闲率为99.3%

	4、top命令的第四行,内存状态:
 
		KiB Mem :  2897496 total,  1995628 free,   191852 used,   710016 buff/cache
		 
		总内存:2.76g  空闲:1995628/1024/1024=1.9g   已经使用0.18g   缓存区内存0.67g  

		缓冲区是从主内存中特地预留出的内存,用来存放特定的一些信息,例如从磁盘中取得的文件表,程序正在读取的内容等等



 uptime命令

	1.服务器工作时间
	2.在线用户
	3.平均负载  一分钟,五分钟,十五分钟的负载情况


看当前登录的账户who、查看最新操作电脑的用户last
	who命令:
		显示当前正在系统中的所有用户名字,使用终端设备号,注册时间。 
	whoami :
		显示出当前终端上使用的用户。 
	last:
		last作用是显示近期用户或终端的登录情况


	

查看进程关闭进程


	1、查看进程
	
		pstree        查看进程树
		pstree -ap     显示所有信息

		pstree | grep httpd

		pstree -ap | grep httpd

		ps -au
		ps -au |grep httpd
		ps -aux


		ps 中aux的含义:

		显示现行终端机下的所有程序,包括其他用户的程序(a)
		以用户为主的格式来显示程序状况。 (x)
		显示所有程序,不以终端机来区分(u)

	2、关闭进程

		pkill httpd             pkill进程的名字

		kill 2245               kill进程号

		kill -9 1234             kill -9进程号  强制杀死
		       

		kill:执行kill命令,系统会发送一个SIGTERM信号给对应的程序。当程序接收到该signal信号后,将会发生以下事情:
		程序立刻停止
		当程序释放相应资源后再停止
		程序可能仍然继续运行
		大部分程序接收到SIGTERM信号后,会先释放自己的资源,然后再停止。但是也有程序可能接收信号后,做一些其他的事情(如果程序正在等待IO,可能就不会立马做出响应,我在使用wkhtmltopdf转pdf的项目中遇到这现象),也就是说,SIGTERM多半是会被阻塞的。

		kill -9:  kill -9命令,系统给对应程序发送的信号是SIGKILL,即exit。exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程。

查看端口

	netstat -tunpl |grep httpd



查看硬盘信息:


	df命令作用是列出文件系统的整体磁盘空间使用情况。可以用来查看磁盘已被使用多少空间和还剩余多少空间。
	


	df 

	df -h  以人们易读的方式显示,总共多少g用了多少g

	df /home   查看该文件夹所在磁盘的使用情况



		

十二、Linux systemctl管理服务

1、二进制安装nodejs 

	1、减压到对应的目录usr/local/nodejs

	2、配置环境变量
	
		配置环境变量
			vi /etc/profile

		最后面添加:
			export NODE_HOME=/usr/local/nodejs/bin
			export PATH=$NODE_HOME:$PATH

		:wq保存,然后运行
			source /etc/profile

		可以用node -v和npm -v来检查下: 
			node -v

2、yum安装httpd

	yum install -y httpd

	systemctl start httpd

3、systemctl管理服务

                            重启网络: systemctl restart NetworkManager
	
	1、启动服务:systemctl start httpd

	2、关闭服务:systemctl stop httpd

	3、重启服务:systemctl restart httpd


	3、查看一个服务的状态:systemctl status httpd

	4、查看一个服务是否在运行:systemctl is-active httpd

	5、查看当前已经运行的服务:systemctl list-units -t service

	6、列出所有服务:  systemctl list-units -at service       注意顺序 

	8.设置开机自启动:	systemctl enable httpd

	9.停止开机自启动:	systemctl disable httpd

	10、列出所有自启动服务:

		systemctl list-unit-files|grep enabled
		systemctl list-unit-files|grep disabled
		systemctl list-unit-files|grep disabled | grep httpd

	使指定服务从新加载配置:systemctl reload httpd    

十三、Firewalld防火墙和SELinux防火墙的设置

Firewalld防火墙的设置

1、firewalld的基本使用:
	启动: systemctl start firewalld
	关闭: systemctl stop firewalld
	查看状态: systemctl status firewalld
	开机禁用 : systemctl disable firewalld
	开机启用 : systemctl enable firewalld

2、firewall-cmd的基本使用:
	那怎么开启一个端口呢:
		firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent永久生效,没有此参数重启后失效)
	重新载入:
		firewall-cmd --reload       修改firewall-cmd配置后必须重启
	查看:
		firewall-cmd --zone= public --query-port=80/tcp
	删除:
		firewall-cmd --zone= public --remove-port=80/tcp --permanent

	查看所有打开的端口:
		firewall-cmd --zone=public --list-ports

SELinux防火墙的设置

	修改/etc/selinux/config 文件
	将SELINUX=enforcing改为SELINUX=disabled