Linux教程

Linux常用命令系统相关

本文主要是介绍Linux常用命令系统相关,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

基本常用命令系统相关

1.查看网络ip地址

	ip a 或者 ip addr

2.测试网络联通情况

	ping 目标机器ip

3.查看当前系统时间

	date

4.关机

	shutdown now

5.重启

	reboot

linux文件系统结构

  1. Linux中一切皆文件。
  2. 只有一个顶级目录 /,不像windows分C盘 D盘 E盘。
  3. 文件系统是树状结构。

文件含义

Linux含义windows
/bin所有用户可用的基本命令存放的位置windows没有固定的命令存放目录,命令比如windows中的clacnotepad
/sbin需要管理员权限才能使用的命令
/bootlinux系统启动的时候需要加载和使用的文件。
/dev外设连接linux后,对应的文件存放的位置。类似Windows中的U盘,光盘的符号文件。
/etc存放系统或者安装的程序的配置文件,注册服务等。类似windows中的注册表,
/home家目录,linux中每新建一个用户,会自动在home中为该用户分配一个文件夹类似windows中的我的文档,每个用户有自己的目录。
/rootroot账户的家目录,仅供root账户使用。类似windows中的Administrator账户的"我的文档"
/liblinux的命令和系统启动,需要使用一些公共的依赖,放在lib中,类似我们开发的代码执行需要引入的jdk的jar。
/usr很多系统软件的默认安装路径类似windows中的C盘下的Programfiles目录。
/var系统和程序运行产生的日志文件和缓存文件放在这里

文件管理相关

1.浏览文件信息(描述信息,元数据)
	查看当前目录下的文件信息    ls  
	查看指定某个目录下的文件信息  ls 目录位置
	查看隐藏文件     ls -a    (也可以指定文件路径)
	查看文件的全部描述信息   ls -l (也可以指定文件路径) 简写ll
		-开头的是普通文件
		d开头的是文件夹
		l开头的软连接(快捷方式)
2.目录
	切换目录   cd 目标目录
	查看当前目录  pwd
	~ 指的是当前用户的home目录
	. 指的是当前文件夹
	.. 指的是上一级目录

文件操作

1.在当前目录下新建文件
	touch 文件名
2.在当前位置新建文件夹
	mkdir 文件夹名
3.删除文件
	rm 文件名字
4.删除文件夹
	rm -r 文件夹名字(参数r :文件夹或者递归操作)
5.删除文件或者文件夹不询问
	rm -rf 文件或者文件夹名字 (-f:强制删除)!注意:三思而行 很容易删库跑路
6.在指定目录位置,创建文件夹,并创建父文件夹
	mkdir -p /a/b/文件夹名
7.拷贝文件
	cp -r(文件夹) 原文件 新文件
8.移动文件
	mv 原文件 目标文件夹
9.修改文件名
	mv 原文件 新文件名
10.数字签名/数字指纹
	获得md5sum    md5sum 文件名
    数字签名-数字指纹
    可以验证文件是否被修改。
	特点:每个文件,只要内容不变,就有一个唯一的确定不变的数字指纹/数字签名。
	概念:一个文件通过计算得到的一串字符串,文件内容的唯一标记。(文件内容不变,指纹不会变)

文本内容查看

1.一次性查看文件中的全部内容
	cat 文件名   (适合查看小文件)
2.分页方式查看文件内容(适合查看大文档)
	less 文件名字
		--->会进入查看文档模式
	# 命令
		↑      #上一行
    	↓      #下一行
    	g 	   #第一页
    	G      #最后一页
    	空格    #下一页
    	/关键词 #搜索关键词
        q      #退出  回到linux命令模式
3.实时滚动查看文件末尾多少行 (查看文件服务器日志)
	tail -f 文件名

文件查找

1.根据文件名字查找文件
	find 搜索路径 -name "文件名关键词"  关键词还支持模糊查询 *
	例如:
	find / -name "ifcfg-*"    在/目录下 查找ifcfg-*
2.文件内容查找
	语法:
	grep 文件内容 路径
	grep -参数 文件内容 要查找的目录范围
	参数:******
	-n 显示行号
	-R 递归查找文件夹 
	
	grep -n(显示多少行) 查找内容  查找路径

需求:在/etc/passwd  查找“baizhi”用户信息?
    例子:
	grep baizhi /etc
	grep baizhi /etc/passwd

Linux文件管理

# 文件名
	该文件的名字
# inode
	该文件的元数据
# datablock
	该文件真正保存的数据

inode中保存的是文件的元数据。
	ls 查看的都是linux的元数据信息。
数据块中才是文件的真正数据.
	cat less 等

硬链接:
	2个不同的文件名指向同一个文件
创建文件硬链接
	ln 源文件路径  新文件路径(包括名字)
	如:ln /etc/profile /myprofile
	当删除一个名字的时候还可以通过另一个名字来找到此文件
软连接:(本质快捷方式)
	特点:所有对软连接操作的cat less命令,会被转发给原始文件去执行。
	相当于windows里的快捷方式,创建的软链的的数据空间存储的并不是数据内容而是源文件的路径。
创建软连接:
	ln -s 源文件  软连接新名字	
	当删除原名字的时候,链接文件也就失效,就不可以通过另一个名字来找到此文件。
	软链接通常使用给别人分发,自己还可以控制。

系统管理

1.查看系统进程
	ps -aux
2. 实时查看系统进程
	top
	# 快捷键
		↑ 上翻
		↓ 下翻
		q 退出
3. 关闭进程
	kill 进程id 
	kill -9 进程id  强烈杀死   进程之间可能存在依赖关系,生产环境尽量别用。****谨慎使用。

文件管道以及输出

输出:
# 覆盖输出
# 含义:将命令1的执行结果,输出到后面的文件中(覆盖式输出)。
`覆盖写入`
	命令1 > 文件
# 例子
	date > date.log
	
# 追加输出
# 含义:将命令1的执行结果,输出到后面的文件中(追加式写入 )。
`追加写入`
	命令1 >> 文件
# 例子
	date >> date.log
	
管道:
	语法: 命令1 | 命令2
将命令1的输出结果,作为命令2的输入
例如: 查找linux是否存在 sshd 这个进程
	ps -aux | grep sshd

权限管理

# 组管理
1. 创建组
  `groupadd 组名`
2. 删除组
  `groupdel 组名`
3. 查找系统中的组
  `cat /etc/group | grep -n “组名”`
  说明:系统每个组信息都会被存放在/etc/group的文件

# 用户管理
1. 创建用户
  `useradd -g 组名 用户名`
2. 设置密码
  `passwd 用户名`
3. 查找系统账户
  说明:系统每个用户信息保存在 `/etc/passwd` 文件中
4. 切换用户
  `su 用户名`
5. 删除用户
  `userdel -r 用户名`

权限

linux系统未来可能有程序员、用户、数据库管理员、项目经理等各种角色各种级别人使用,甚至还有身份不明的人链接到linux,控制不好权限容易导致系统崩溃数据丢失等问题。

权限含义

权限字母含义对文件代表命令对文件夹代表命令
查看文件内容和复制文件more cat less cp head tail查看文件夹下的文件ls
W(w)编辑文件vi在文件夹内创建和删除文件rm touch
X(x)执行执行该文件(执行必须具备r权限)-切换到文件夹cd

权限访问控制列表(ACL access controll list)

drwxrwxrwxu_bzg_bz
文件类型所有者权限所属组权限其他人权限所有者所属组

设置或修改文件权限

设置文件权限(所有者权限)
	chown [-R] 用户名:用户组 文件名
设置文件RWX权限
	chmod u±权限,g±权限,o±权限 文件
	说明: 权限即r,w,x
	赋值方式:
	chmod u=权限,g=权限,o=权限 文件
使用权限值修改文件权限
	权限值表示赋值亦可: R=4,W=2,X=1
	如:chmod 761 文件名

系统软件管理

压缩解压缩

压缩文件常见类型
	类型:*.tar.gz
		 *.tar
压缩语法:tar -zcvf 压缩后文件名 被压缩文件
解压缩语法: tar -zxvf 被解压文件名 -C 解压文件所在目录
参数:
参数含义
-z使用gzip指令处理压缩文件,操作*.tar.gz需要使用。
-x从压缩文件释放文件即解压缩。
-c创建备份文件 create。压缩一个文件。
-v显示执行过程 verbose,显示执行过程信息。
-f指定要处理的文件,必须放在最后,要处理的文件。

参数 -C 指定压缩解压后文件存放位置。

rpm可执行安装软件

​ 简介:类似于Windows中的exe程序。

​ 安装:rpm -ivh xx.rpm

​ 卸载:rpm -e 软件名

​ 查看系统中是否已经安装过某些软件:rpm -qa 软件名

tree命令:

​ 作用:查看某个目录下的文件信息。可以多层级查看目录结构。

​ 命令:tree [-L 2] 要查看的路径。

​ 参数:-L n 查看几层目录。

yum

作用:依赖管理、下载、安装依赖、卸载、搜索 软件等一系列功能于一身的工具。

yum仓库:

​ 1.管理linux软件。

​ 2.管理了软件依赖关系。

​ 3.管理了依赖软件。

yum基于rpm实现的,提供了除了rpm的安装 删除 软件等功能以外还有,自动查找、下载软件并自动处理软件的彼此之间的依赖关系,下载并安装依赖包。

## 列出所有可以安装的软件包
	yum list
## 安装软件
	yum install -y 软件名
## 卸载软件
	yum remove 软件名
## 查找软件包
	yum search all 软件名

Linux系统管理服务

Linux服务

例如:sshd network firewalld 等

服务器管理命令:
查看服务状态
systemctl status 服务名
启动服务
systemctl start 服务名
重启服务
systemctl restart 服务名
停止服务
systemctl stop 服务名
禁止服务随linux启动。
systemctl disable 服务名
设置服务随linux启动。
systemctl enable 服务名

ip设置

`服务名:network

[root@centos7 dirnew]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
----------------网卡对应的文件内容---------------------
    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="none"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="ens33"
    UUID="0bd5d8a5-fe1b-42de-82bd-bfa7d2984b95"
    DEVICE="ens33"
    ONBOOT="yes"
    IPADDR="192.168.199.8" # 修改这里的ip地址即可。
    PREFIX="24"
    GATEWAY="192.168.199.2"
    DNS1="192.168.199.2"
    DNS2="8.8.8.8"
    IPV6_PRIVACY="no"
[root@centos7 dirnew]# systemctl restart network   (修改后重启生效)

防火墙

服务名:firewalld

# 查看防火墙状态
systemctl status firewalld
# 临时关闭防火墙
systemctl stop firewalld
# 直接停止防火墙开机启动
systemctl disable firewalld

主机名

# 查看主机名
hostname
# 设置主机名
hostnamectl set-hostname 主机名

ip映射

  • 域名解析

  • 本地hosts编辑 本地Windows C:\Windows\System32\drivers\etc\hosts

[root@centos7 ~]# vim /etc/hosts
--------------下面是文件------------------
	192.168.199.8 centos7

SSH

# 远程ip方式登录到另一个linux系统中并执行操作
 ssh 远程linux的ip或者映射域名

# 退出远程连接
 exit

免密登录

# 简介
ssh登录远程linux,免去输入密码的麻烦。
 ssh-keygen
 ssh-copy-id 目标主机的ip

# 生成公钥和私钥
[root@centos7 ~]# ssh-keygen
------------执行结果-----------
    [root@centos7 ~]# tree .ssh
    .ssh
    ├── id_rsa # 私钥
    ├── id_rsa.pub # 公钥
    └── known_hosts
# 发送公钥
	`保存公钥的文件为/root/.ssh/authorized_keys`
[root@centos7 .ssh]# cat id_rsa.pub > authorized_keys
# 发送公钥
[root@centos7 .ssh]# ssh-copy-id 目标主机的ip

远程拷贝

scp -r 本地的文件 root@远程linuxip:/远程linux的文件路径

必要软件安装

  1. vim(vi编辑器增强版)

    vim 文件
    # yum 安装vim
    yum install -y vim
    
    
  2. wget(下载器)

    wget url
    # 安装wget
    yum install -y wget
    # 使用
    wget url
    
  3. tree

    # 以tree结构,递归显示当前文件下所有文件
    	tree
    # 显示目标文件夹下的文件
    	tree 目标目录   (-L n)
    # 安装tree
    	rpm -ivh tree.x.x.rpm
    	yum install -y tree
    
  4. psmisc(高级进程管理工具)

    # 安装
    	yum install -y psmisc
    # 以tree形式显示系统目前进程
    	pstree
    # 杀死进程
    	killall 进程名(sshd)
    		ps -aux|grep sshd
       # 显示该文件被哪个进程使用
    	 fuser /目标文件
    
  5. jdk安装

    1.安装jdk
    	tar -zxvf jdk1.8xxx.gar.gz
    2.配置环境变量 
    vim /etc/profile
    ## 内容如下
    #java_home
    	export JAVA_HOME=/opt/installs/jdk1.8
    #path
    	export PATH=$JAVA_HOME/bin:$PATH
    #classpath
    	export classpath=.    (可以不写)
    3.执行命令使环境变量立刻生效
    	source /etc/profile
    
   
6.防火墙
   
   ```shell
   # 服务名:firewalld
# 临时关闭防火墙
   systemctl stop firewalld
   # 直接停止防火墙开机启动
   systemctl disable firewalld

7.大数据集群备份集设置

a.软件包规划
	#安装包    	 #软件安装位置
	/opt/module	   /opt/installs
b.hostname
c.hosts
d.关闭防火墙
e.ip设置
f.安装jdk配置环境变量
这篇关于Linux常用命令系统相关的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!