Linux

常用命令

vim/vi

删除 & 剪切 & 复制

删除光标所在字符:命令模式+x ,x往后删,X往前删
删除光标之后n个字符:命令模式+nx
删除光标行到第一行:命令模式+d1G
删除光标行到最后一行:命令模式+dG
删除游标到行头:命令模式+d0
删除游标到行尾:命令模式+d$

剪切光标所在行:命令模式+dd ,用 p/P 可以粘贴。
剪切光标所在n行:命令模式+ndd ,用 p/P 可以粘贴。

复制游标所在的那一行:命令模式+yy
复制游标所在的那n行:命令模式+nyy
复制游标所在行到第一行的所有数据:命令模式+y1G
复制游标所在行到最后一行的所有数据:命令模式+yG
复制光标所在的那个字符到该行行首的所有数据:命令模式+y0
复制光标所在的那个字符到该行行尾的所有数据:命令模式+y$

粘贴:命令模式+p

移动

向后移动n个字符:命令模式+n<space>
向后移动n个字符:命令模式+n<Enter>
移动到光标所在行开头:命令模式+0
移动到光标所在行结尾:命令模式+$
移动到文档第一行:命令模式+gg

查找

查找光标之后到关键字word:命令模式+/word
查找光标之前到关键字word:命令模式+?word

查找之后再:命令模式+n继续往后搜索,N 往前搜索

文件

创建

创建文件:touch fileName
创建目录:mkdir directoryName,递归创建目录mkdir ./xx/xxx/xxxx/directoryName

查看

命令:ls ,查看详细ls -l

[root@www /]# ls -l
total 64
dr-xr-xr-x   2 root root 4096 Dec 14  2012 bin
dr-xr-xr-x   4 root root 4096 Apr 19  2012 boot

第一位:d表示文件夹,-表示文件。其他再百度
在这里插入图片描述

修改文件属性

修改文件所输主:chown [-R] newOwner install.log
修改文件9个属性:chmod [-R] xyz 文件或目录

yum & apt & brew

是否安装

CentOS、fedora 使用的yum
Debian 和 Ubuntu使用的apt
MacOS 使用的brew (Homebrew)

分割线

特点

相对于window:
1、Linux是开源的
2、Linux注重安全性、稳定性
3、Linux高并发处理
缺点:
1、可视化界面不好

windows用在个人计算机,Linux用在企业服务器。

可视化界面单薄,很少使用。主要是基于终端命令使用linux指令操作计算机

简介

Linux内核程序,之上进行二次开发。推出了很多版本:Ubuntu、RedHat、CentOS、Debian

虚拟机安装

运行在完全隔离环境中的完整计算机系统。
安装VMware,
下载CentOS镜像,7之后版本

Linux目录结构

1、linux只有一个根目录。使用cd进入目录 ,cd / 进入根目录。
2、采用的层级式目录结构。
分别是:
bin -> user/bin 存放系统预制的可执行文件,这些文件可以在任何路径执行
usr/local/bin:用户自制可执行文件,可以在任何路径执行
etc:存放配置文件。配置环境变量。(/etc/profile)
home:用户的根目录,保存用户的私人数据,默认情况下,目录名和自己的用户名相同
opt:存放linux额外安装的软件(jdk mysql tomcat)

Linux 远程操作

使用Xshell:linux的终端模拟软件,在远程模拟,但不能本地传文件到linux
Xftp:文件传输软件。

获取ip:ifconfig指令

vi和vim

linux中的文本编辑器,用来在linux中编辑文本文件,vim是vi增强版本。
vi和vim打开文件:
一般模式:用vi或vim命令打开文件,进入一般模式。read-only
编辑模式:一般模式下,按下i或者a或者I或者A进入编辑模式。可以编辑文件内容,但不会保存。
命令模式:在一般模式下按下shift+;(冒号)进入命令模式。(若在编辑模式,需要先回到一般模式 按下 esc)
命令模式输入命令:
q! 表示不保存,强制退出编译器。
wq 表示保存并退出

vi和vim快捷键

复制当前行:一般模式下 按yy,把光标行复制到剪切板
粘贴:一般模式下 按p,把剪切板内容粘贴到光标所在下一行

复制当前行往下5行:一般模式下 按5yy,把光标行往下5行复制到剪切板

文件搜索:命令行模式,输入/关键字,回车,按n表示光标查找下一个关键字

删除光标所在行:一般模式,按dd,
删除多行:一般模式,按5dd,光标行往下5行删除

撤销:一般模式下,按u

显示行号:命令模式下,set nu;取消 set nonu

用户管理

使用linux系统资源的用户,必须有合法的账号和密码(由管理员发放,即由root创建普通账号)。

创建用户:
指令:useradd [选项] 用户名
在/home目录下会创建用户的根目录,默认目录名和用户名相同
任何一个用户都至少属于一个组,新建时如果不指定,则会新建一个组,组名和用户名相同

设置用户密码:
指令:passwd 用户名
密码

删除用户:
(要使用超级管理员账号)
指令:userdel 用户名
userdel -r 用户名 (删除用户并删除它的主目录)

查看用户信息
指令:id 用户名

切换用户
指令:su 用户名
(切换之后需要输密码,高->低 不用输,低->高 需要输)

linux 组管理

Linux的组相当于角色的概念,对有共性的用户进行统一管理。
每一个用户至少属于一个组
用户的主组(创建时分组)不能改变

创建组
指令:groupadd 组名

删除组
指令: groupdel 组名

把用户添加进组
指令:gpasswd -a 用户名 组名

用户从组中移除
指令:gpasswd -d 用户名 组名

创建用户时,指定主组
指令:useradd -g 组名 用户名

Linux帮助命令

man:查看linux系统手册
man ls 分屏显示,回车翻行,空格翻页,q退出

文件和目录操作

Linux操作都是在目录下操作
命令窗口只显示当前所在目录,但不显示其上层的其他目录。

查看当前所在目录完成路径
命令:pwd

查看指定目录下,所有内容,无指定目录则为当前目录
命令:ls [指定目录]
例如
ls /home
ls
(以列表的形式显示)
ls -l /home
(显示指定目录下所有子目录的和文件,包括虚拟目录)
ls -a /home

切换目录
命令:cd 目录名
绝对目录:从盘符开头的目录
cd /opt/testDir
相对目录:以目录名开始的目录
cd testDir (假设此时处于/opt目录下)
注:
cd ~ :当前用户的根目录
cd … :当前目录的上级目录

创建目录
命令:mkdir 目录名
可以是绝对目录,也可以相对目录

创建多级目录
命令:mkdir -p 多级目录

创建文件(一个或多个 空文件)
命令:touch 文件名列表
文件名用空格隔开,文件名带路径(推荐相对路径)
例如:touch t1.txt t2.txt t3.txt

删除文件
命令:rm 文件名/目录名(提示删除,不能删目录)
rm -f 文件名/目录名(强制删除 无提示)
rm -r 文件名/目录名(递归删除,可以删除目录,但每次会有提示)
rm -rf 文件名/目录名(递归强制删除,可以无提示删除目录)推荐

复制文件
命令:cp source(源) dest(目标)
例如:cp t1.txt test2 //把t1.txt复制到test2目录下
cp -r test2 tes5 //把test2目录整体复制到test5目录下(递归复制)

移动目录/文件(剪切)
命令:mv source dest
(可以剪切整个目录)
source 和 dest都是文件名时,相当于把source移动过去并重命名为dest

查看文件内容
命令:cat 文件名
cat -n 文件名 (显示行号)

分页查看文件内容
命令:more 文件名
回车翻行,空格翻页

查看文件前10行
命令:head 文件名

查看文件后10行
命令:tail 文件名

输出系统变量或常量的值到命令行终断
命令:echo 变量/常量名
例:echo JAVA_HOME
Linux中引用环境变量不是%,是使用$
注:
在命令行输出文字也用echo
例:echo hello world (在命令行输出hello world)

向指定文件填写前一个命令的输出结果
命令:
前一个查看命令> 文件名
例:ls > ret.txt
会把当前目录下ls的结果写入ret.txt,如果没有ret.txt就新建一个再写入,如果有,就覆盖写入
cat t1.txt > t2.txt(文件内容的复制,原有内容被覆盖)

Linux日期和时间

查看或设置系统的日期或时间:date
date:查看系统当前的完整日期和时间
date+ %Y 系统当前的年份
date+ %m 系统当前的月份
date+ %d 系统当前的日期

date ‘+%Y-%m-%d %H:%M:%S’ 按yyyy-mm-dd HH:mm:ss格式显示
date -S '2020-10-20 10:20:30‘ 设置系统当前时间

查看系统日历
命令:cal

Linux 搜索文件/目录

命令:find 关键字(默认当前目录下)find *e*
例:搜索当前目录下所有含有e的目录和文件

按名字搜索
搜索所有txt文件find *.txt
搜索目标目录下的文件
命令:find 目标目录 关键字find /etc *.txt

按大小搜索
搜索文件大于5m的,大于5M用+小于用- find /etc -size +5M

按文件所有者搜索 find /etc -user zhangsan

locate也可以搜索,根据名称在目录树中搜索,不访问磁盘,没有访问范围

过滤命令grep

查看t1.txt 中有bejing的(区分大小写)
cat t1.txt |grep bejing
cat t1.txt |grep -i bejing(不区分大小写)

列表形式列出当前目录下所有带new 的文件
ls -al|grep new

压缩与解压

1、gzip-gunzip压缩和解压单个文件

不具备打包功能
gzip 文件名,生成.gz压缩包(会删除原文件)
gunzip 文件名

2、zip-unzip压缩或打包文件或目录列表

压缩命令:zip 目标文件或目录 目标压缩文件名称
例:对某几个文件打包在test.zip(顺序换一下)
zip test.zip 文件1 文件2 目录

解压命令:unzip 压缩文件 [-d 解压目录名]
可以解压到指定目录

3、tar 压缩或打包多个文件和目录

命令: tar [选项] 目标压缩包名称 文件或者目录
压缩命令:tar -c
解压命令:tar -x

tar -zcvf xxx.atr.gz 待压缩文件或目录列表
tar -zxvf xxx.tar.gz -C 解压到的目录名

Linux文件与组

每个文件(包括文件)也必须属于一个组,文件只能属于一个组。文件通过组来控制哪些用户可以对它进行哪些操作,即文件的访问权限。
文件看来,用户分为三种,所有者(默认情况下是创建者,可以修改)同组用户(跟文件或目录属于同一个组)其他组用户(其他)

查看文件的所有者和所在组
命令:ls -l

修改文件所有者
命令:chown 文件的新所有者 文件名
注:改完之后,所有者和文件所在组可以不一致
chown 文件所有者:新的组 文件名(所有者和组一起改)

注:
改目录所有者或所在组的时候,目录内文件默认不跟者改变
chown -R 文件所有者:新的组 目录名 (递归修改目录内文件)

只改文件或目录所属组:
命令:chgrp 新的组 文件名

Linux权限管理

文件看来,用户分为三种,所有者(默认情况下是创建者,可以修改)同组用户(跟文件或目录属于同一个组)其他组用户(其他)

对于文件而言,有三种权限:
读:可以读取、查看文件内容,比如:cat 、more、less、head、tail等
写:可以修改文件的内容,比如:vi、vim等
执行:如果该文件是可执行文件(.sh)可以直接执行比如:./xxx.sh

对目录而言:
读:可以读取、查看目录下面的内容,比如 ls
写:可以修改目录中的内容,创建子目录、创建文件、删除文件、重命名文件
执行:执行==进入该目录 比如 cd

文件或目录权限控制

只有文件所有者和root可以修改

在linux中,任何文件或目录都有三种权限:
任意目录下执行 ls -l 就可以看该目录下的权限

所有者:使用r、w、x分别表示读、写、执行的权限,rwx表示拥有读写执行的权限。r-x表示读和执行的权限,r–表示只有读权限,—表示无权限。
同组用户:表示方法同上
其他组用户:表示方法同上

更改权限
chmod [用户类别] 权限操作 文件名
例如:chmod g+w t1.txt
u表示所有者,g表示同组,o表示其他组 ,a表示所有用户
+、-、=分别表示增加、减少、直接设置

查看文件或目录的权限
ls -l 列表形式列出所有文件
ls -al 列表形式列出所有文件包括虚拟文件

用数字的方式修改文件或目录的权限
每一个权限都可以用一个数字来表示:
r、w、x
4、2、1
每组权限都可以用数字和表示
chmod 777 t1.txt

网络配置

在linux配置文件(/etc/sysconfig/network-scripts/ifcfg-ens33)中:

进程管理

线程:一个程序的执行线路
进程:一个程序的整体执行
一个进程包含多个线程,一个进程会占一个端口。

查看进程:
命令:ps
默认显示用户应用级别的进程,后台支持系统的进程就不会显示
命令:ps -e 显示所有进程
命令:ps -ef 以全格式显示所有进程,

ps -ef|grep fireward 用于查看某些带关键字的进程

Linux服务管理

服务是支持Linux运行的一些必要程序,本质上也是进程,叫守护进程。例如sshd、防火墙等。

操作服务:启动、停止

命令:systemctl [start stop restart reload status enable] 服务名称

例:
systrmctl status firewalld //查看防火墙状态

关闭防火墙:
暂时关闭:systemctl stop firewalld
永久关闭:systemctl disable firewalld

设置防火墙开放端口

firewall-cmd --add-service=http –permanent
sudo firewall-cmd --add-port=80/tcp --permanent

重启防火墙

firewall-cmd –reload

# 本地传输文件
1、从服务器上下载文件
scp username@servername:/path/filename /var/www/local_dir(本地目录)

 例如scp root@192.168.0.101:/var/www/test.txt  把192.168.0.101上的/var/www/test.txt 的文件下载到/var/www/local_dir(本地目录)


2、上传本地文件到服务器
scp /path/filename username@servername:/path   

例如scp /var/www/test.php  root@192.168.0.101:/var/www/  把本机/var/www/目录下的test.php文件上传到192.168.0.101这台服务器上的/var/www/目录中

3、从服务器下载整个目录
scp -r username@servername:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录)

例如:scp -r root@192.168.0.101:/var/www/test  /var/www/  

4、上传目录到服务器
scp  -r local_dir username@servername:remote_dir

例如:scp -r test  root@192.168.0.101:/var/www/   把当前目录下的test目录上传到服务器的/var/www/ 目录

#  Linux软件包
管理软件安装包
## RPM
一种Linux中软件打包和安装工具,他操作的软件包都是.rpm结尾。
使用RPM:
命令:
rpm -qa:查看当前系统中已经安装的rpm包。
rpm -qa|grep firefox:查看当前系统中已经安装的firefox rpm包。

rpm -e 文件名:卸载rpm包

安装
rpm [选项] RPN包全路径名
选项:-i 安装,-v提示,-h 进度条
一般使用 rpm -ivh rpm包名

## YUM
>debian安装yum
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install yum


基于rpm的软件包管理工具,类似maven,能从服务器下载rpm包并自动安装,所以要求必须能连外网。
查看当前系统已经安装的rpm包
命令:yum list installed
命令:yum list installed|grep firefox //带过滤

卸载rpm软件包
命令:yum remove 文件全名

安装rpm软件包
命令:yum install firefox
自动搜索并下载



# 搭建开发环境
## JDK
配置环境变量,在/etc/profile中配置
```java
JAVA_HOME=/home/daihan.kramer/jdk/jdk1.8.0_311

JRE_HOME=/home/daihan.kramer/jdk/jdk1.8.0_311/jre

CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export JAVA_HOME JRE_HOME CLASS_PATH PATH

用命令:source /etc/profile
让他生效

如果出现E45:readonly之类的,就先q!退出来vim,然后执行sudo !! 再编辑

运行jar

在xxx.jar存放的路径下运行

java -jar xxx.jar

CentOS

安装可以使用yum

Debian

使用apt-get下载东西
首先apt-get更新到最新版sudo apt-get update

安装mysql

1、安装服务器端

sudo apt-get install mysql-server

安装过程中会跳出界面要求设置root账户密码,输入密码然后选择ok会要求确认密码,之后会自动完成服务端安装。
如果没有出现也没关系,后面可以设置密码,在第五步。

2、安装客户端

apt-get install mysql-client

3、安装相关依赖

sudo apt-get install libmysqlclient-dev

4、检查是否成功

sudo netstat -tap | grep mysql

如果看到有mysql 的socket处于 listen 状态则表示安装成功

5、修改密码

sudo mysql -u root
UPDATE mysql.user SET Password = PASSWORD(‘newpwd’) WHERE User = ‘root’;

在newpwd处写想要的密码就行。

安装JDK

换一个方法,不使用apt-get,使用本机传输
下载jdk到本机,然后在本机命令行进入jdk所在文件目录。执行:

scp jdk-8u311-linux-x64.tar.gz daihan.kramer@10.248.147.xx:~/jdk/

解压,然后配置环境:

JAVA_HOME=/home/daihan.kramer/jdk/jdk1.8.0_311

JRE_HOME=/home/daihan.kramer/jdk/jdk1.8.0_311/jre

CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export JAVA_HOME JRE_HOME CLASS_PATH PATH

配置完成之后,使配置文件生效:

source /etc/profile

brew

安装

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

命令

安装软件:brew install 软件名,例:brew install wget
搜索软件:brew search 软件名,例:brew search wget
卸载软件:brew uninstall 软件名,例:brew uninstall wget
更新所有软件:brew update

更新具体软件:brew upgrade 软件名 ,例:brew upgrade git
显示已安装软件:brew list
查看软件信息:brew info/home 软件名 ,例:brew info git / brew home git
PS:brew home指令是用浏览器打开官方网页查看软件信息
查看哪些已安装的程序需要更新: brew outdated
显示包依赖:brew reps
显示帮助:brew help

卸载

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值