首页 > 技术文章 > linux的基本操作与常见命令

dw3306 2018-07-20 12:28 原文

linux的基本操作与常见命令:

 

1:linux目录介绍

目录

 

/bin

存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。

/etc

存放系统管理和配置文件

/home

存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示

 

/usr

用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。

/usr/x11r6 存放x window的目录

/usr/bin 众多的应用程序  

/usr/sbin 超级用户的一些管理程序  

/usr/doc linux文档  

/usr/include linux下开发和编译应用程序所需要的头文件  

/usr/lib 常用的动态链接库和软件包的配置文件  

/usr/man 帮助文档  

/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里  

/usr/local/bin 本地增加的命令  

/usr/local/lib 本地增加的库

/opt

额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。

/proc

虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。

/root

超级用户(系统管理员)的主目录(特权阶级^o^)

/sbin

存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。

/dev

用于存放设备文件。

/mnt

系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。

/boot

存放用于系统引导时使用的各种文件

/lib

存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。

/tmp

用于存放各种临时文件,是公用的临时文件存储点。

/var

用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。

/lost+found

这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里

 

2:常用命令介绍:

2-1:查看linux系统配置:

 lscpu:显示cpu架构信息;

 

free -m  :查看系统内存

 

df -h:查看硬盘使用情况

所有size加起来,就是硬盘大小

df,fdisk,lsblk区别

 

 

 

 

 查看硬盘信息:

# 安装插件
yum install smartmontools

# 查看 /dev/ 下 sda 盘的信息:
 smartctl --all /dev/sda

 

2-2常用的使用命令:

1:查看IP地址:

#查看外网IP:
curl ipinfo.io/ip
#查看本机IP:
ip addr

ifconfig

 

 2:基本命令:

文件和目录 :
cd /home 进入 '/ home' 目录' 
cd .. 返回上一级目录 
cd ../.. 返回上两级目录 
cd 进入个人的主目录 
cd - 返回上次所在的目录
pwd 显示工作路径 
ls 查看目录中的文件 
mkdir dir1 创建一个叫做 'dir1' 的目录' 
mkdir dir1 dir2 同时创建两个目录 
mkdir -p /tmp/dir1/dir2 创建一个目录树 
rm -f file1 删除一个叫做 'file1' 的文件' 
rmdir dir1 删除一个叫做 'dir1' 的目录' 
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容 
rm -rf dir1 dir2 同时删除两个目录及它们的内容
mv dir1 new_dir 重命名/移动 一个目录 
cp file1 file2 复制一个文件 
cp -a /tmp/dir1 . 复制一个目录到当前工作目录 
cp -a dir1 dir2 复制一个目录 

文件搜索:

find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录 

find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件 

用户和群组 :

groupadd group_name 创建一个新用户组 
groupdel group_name 删除一个用户组 

useradd user1 创建一个新用户 
userdel -r user1 删除一个用户 ( '-r' 排除主目录) 

passwd 修改口令 
passwd user1 修改一个用户的口令 (只允许root执行) 


打包和压缩文件 :

linux zip命令

zip -r myfile.zip ./*
将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.

2.unzip
unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解压到 /home/sunny/
-o:不提示的情况下覆盖文件;
-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下;

tar 命令详解:
压缩:
  tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg

  tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz

解压:
     tar –xvf file.tar //解压 tar包
 
     tar -xzvf file.tar.gz //解压tar.gz

 

 3:项目部署常用命令:

# 查看进程号:
ps -ef | grep   java     查看所有Java相关的进程

#强制杀进程:
kill  -9  进程号
#等当前程序运行完后再kill 
kill -15 进程号 #查看端口占用情况 lsof
-i: 端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000


netstat -ntlp   //查看当前所有tcp端口

#linux查看日志文件:
tail -f test.log   查看实时日志

linux 如何显示一个文件的某几行(中间几行)

从第3000行开始,显示1000行。即显示3000~3999行
cat filename | tail -n +3000 | head -n 1000

显示1000行到3000行
cat filename| head -n 3000 | tail -n +1000

tac (反向列示)
tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,
而 tac 则是由最后一行到第一行反向在萤幕上显示出来!

 

 


 4:后台运行jar包:

方式一:

$ nohup java -jar test.jar &

方法二:
$ nohup java -jar test.jar >temp.txt &
 
//这种方法会把日志文件输入到你指定的文件中,没有则会自动创建

jobs命令://列出所有后台执行的作业,并且每个作业前面都有个编号

 

5: linux下载文件到本地:

方案:
yum install lrzsz // 下载 上传下载工具sz和rz
安装完之后,输入命令 sz 文件名

 SFTP(Secure File Transfer Protocol)安全文件传送协议。可以为传输文件提供一种安全的加密方法。SFTP与 FTP有着几乎一样的语法和功能。SFTP为SSH的一部份,是一种传输文件到服务器的安全方式。在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。

 1 登陆远程主机:  
 2 sftp user@host  
 3 针对本机的命令都加上l:  
 4 lcd,lpwd  
 5 将本机文件上传到远程:  
 6 put filename.txt [some/directory]  
 7 将当前文件夹下的文件上传到远程:  
 8 mput *.* // multiple  
 9 下载远程文件到本地:  
10 get filename.file [some/directory]  
11 下载目录下所有远程文件到本地:  
12 mget *.* [some/directory]  
13 帮助:  
14 ?  
15 退出:  
16 bye/exit/quit  

 

SCP(Secure Copy):SCP就是Secure copy,是用来进行远程文件复制的,并且整个复制过程是加密的。数据传输使用ssh,并且和使用和ssh相同的认证方式,提供相同的安全保证。 

拷贝本地文件到远程:
scp filename.txt user@host:some/directory
拷贝本地文件到远程,使用指定端口:
scp -P 2234 filename.txt user@host:some/directory
拷贝多个文件到远程home:
scp filename1.txt filename2.txt user@host:~
拷贝远程文件到本地:
scp user@host:directory/filename.txt  /directory
拷贝远程文件夹到本地:
scp -r user@host:directory/folder  .
拷贝远程文件到远程:
scp user@host1:directory/filename.txt  user@host1:directory
比较:
FTP 基于TCP来传输文件,明文传输用户信息和数据。
SFTP 基于SSH来加密传输文件,可靠性高,可断点续传。
SCP 是基于SSH来加密拷贝文件,但要知道详细目录,不可断点续传。

 

6、查看nginx 的安装目录:

1:查看端口占用,和进程号:
netstat -ntlp

2:根据进程号查看安装目录:

ll  /proc/进程号/exe

 

 查看nginx 配置文件的路径:

进入nginx安装目录下的sbin目录(上面的步骤)输入:

./nginx -t

 

 

jdk的安装:

 1 步骤:(特别注意:虚拟机安装的一般是32位的操作系统,jdk也必须使用32位的)
 2 查看虚拟机版本:sudo uname --m
 3 
 4 i686 //表示是32位
 5 
 6 x86_64 // 表示是64位
 7 
 8 查看是否已经安装jdk
 9     看看 是否设置了jdk环境变量: echo $JAVA_HOME;
10    或运行命令: java -verion 看看能否查看版本 ,能就是运行
11 
12 0.下载jdk8
13 
14 
15 
16 登录网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
17 
18 选择对应jdk版本下载。(可在Windows下下载完成后,通过文件夹共享到Linux上)
使用xshell上传jdk (上传不成功请:yum install -y lrzsz )
19 20 21 1. 登录Linux,切换到root用户 22 23 su root 获取root用户权限,当前工作目录不变(需要root密码) 24 25 2. 在usr目录下建立java安装目录 26 27 cd /usr 28 mkdir java 29 3.使用xftp上传文件jdk-8u60-linux-x64.tar.gz到当前用户目录下 30 31 32 4.解压jdk到当前目录 33 34 tar -zxvf jdk-8u60-linux-x64.tar.gz 35 36 得到文件夹 jdk1.8.0_60 然后拷贝到 /usr/java目录下 37 38 5.编辑系统环境变量(如果没有vi命令:yum install vim39 40 vi /etc/profile 或者用 sudo gedit /etc/profile 41 42 输入i 43 44 加入内容如下: 45 46 export JAVA_HOME=/usr/java/jdk1.8.0_131 47 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 48 export PATH=$JAVA_HOME/bin:$PATH 49 注意标点符号,JAVA_HOME是刚才的解压路径(可以使用(pwd)命令查看当前解压的目录)
编辑完成后按(ctrl + c)保存,然后输入(:wq)保存并退出
50 6.加载刚设置的变量 51 source /etc/profile 52 7.测试是否安装成功 53 54 输入 java -version 然后会显示jdk的版本信息等 55 输入javac 会显示javac的命令帮助 这样jdk和环境变量就配置成功了 56 57 7.1卸载自带的openjdk的方法: 58 sudo apt-get remove openjdk* 59 7.2设置默认jdk(假如有openjdk的话) 60 由于Ubuntu中可能会有默认的jdk,如openjdk。假如有openjdk的话,所以,为了使默认使用的是我们安装的jdk,还要进行如下工作(可以使用该命令安装其他命令,例如eclipse)。 61 执行代码: 62 sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_131/bin/java 300 63 sudo update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_131/bin/javac 300 64 通过这一步将我们安装的jdk加入java选择单。 65 然后执行代码: 66 sudo update-alternatives --config java 67 sudo update-alternatives --config javac 68 7.3.查看Java版本,显示为我们自己设置的jdk

 

tomcat的部署:

4:启动项目:

5:查看启动日志:

 


二、阿里云服务器开放端口:

 

 

 

 

 

  • 端口范围。Nginx默认端口是 80,这里写 80/80
  • 授权对象。什么ip可以访问,0.0.0.0 指所有 ip 地址,也可以指定 ip 可以访问;
  • 描述。记录这个端口运行的是啥程序。

第六步:测试

做完这一步,重启 Nginx,在本机上可以正常访问了。

 

springboot打jar包部署在linux(阿里云)服务器上项目启动成功但页面访问时提示无法访问此网站

 

项目启动成功说明程序没有问题。无法访问可能是端口的问题。首先检查项目中使用的端口号,再检查阿里云服务器是否开启该端口号。如果阿里云已开启端口号,仍无法访问,再通过shell命令手动开启端口号

firewall-cmd --zone=public --add-port=8889/tcp --permanent
firewall-cmd --reload

 

centos7 防火墙操作:

开启端口:80
firewall-cmd --zone=public --add-port=80/tcp --permanent

查询端口号80 是否开启:
firewall-cmd --query-port=80/tcp

重启防火墙:
firewall-cmd --reload

查询有哪些端口是开启的:
firewall-cmd --list-port

关闭firewall:

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

 

防火墙其他操作

1:查看防火状态

systemctl status firewalld

service  iptables status

2:暂时关闭防火墙

systemctl stop firewalld

service  iptables stop

3:永久关闭防火墙

systemctl disable firewalld

chkconfig iptables off

4:重启防火墙

systemctl enable firewalld

service iptables restart  

5:永久关闭后重启
systemctl start firewalld开启防火墙

chkconfig iptables on

 

推荐阅读