linux基础总结

命令
目录下常用命令:
cd改变工作路径
cd …返回上一级目录
ls显示当前目录信息
ls -l详细显示文件信息
ls -a显示当前目录的所有文件,包括隐藏文件,
隐藏文件是以“.”开头的,“…”:上一级目录 “.” :当前目录)
ls -A显示当前目录的所有文件(包括隐藏文件,不显示 “…”, “.”)
pwd打印当前的工作目录
touch创建文件
gedit打开并编辑文件,若没有该文件,则创建
mkdir创建文件夹(目录)
rm删除文件
rm -r删除文件夹
mv重命名:mv 1.txt 2.txt (将1.txt重命名为2.txt) 移动:mv 2.txt xijing/ (将2.txt移动到xijing文件夹)
cp复制:cp 2.txt ./… (将2.txt复制到上一级目录)
tree以树状形式显示目录里面的内容,tree 目录名
clear清屏
cat打印文件
tar压缩,解压
window压缩包后缀名:.rar .zip linux压缩包后缀名:.tar.gz .tar.bz2
c:压缩tar -zcvf file1.tar.gz file1/ tar -jcvf file1.tar.bz2 file1/
x:解压tar -zxvf file1.tar.gz tar -jxvf file1.tar.bz2
常用命令:
vi/vim(字符界面)进入命令模式
yy复制光标所在当前行
y+n+y(nyy)复制n行
p粘贴到光标当前为止
dd(剪切)删除当前行
d+num+d(ndd)删除num行
u撤回/回退
shift+g到达页尾
1+shift+g到达页头
x删除(光标以后)
X删除(光标以前)
yw复制单词
dw删除单词
G将光标跳转到最后一行
gg将光标跳转到第一行
shift + ^到达行头
shift + $到达行尾
num+shift+g到达目标行
set number/ set nonumber行号/取消行号
history查看历史操作
进入编辑模式:
i在光标前插入内容
o换到下一行插入内容
a在光标后插入内容
Esc退出编辑模式
保存文本内容:
wq保存修改内容退出
wq!强制保存文本内容退出
q不保存修改内容退出
q!强制退出不保存修改内容
指令模式:
?+要查找的单词n 向上查找 shift+n 向下查找
/ +要查找的单词n 向下查找 shift+n 向上查找
halt关机

Linux 系统目录结构

  • /bin:

    bin是Binary的缩写, 这个目录存放着最经常使用的命令

  • /boot:

    这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件

  • /dev:

    dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的

  • /etc:

    这个目录用来存放所有的系统管理所需要的配置文件和子目录

  • /home:

    用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的

  • /lib:

    这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库

  • /lost+found:

    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件

  • /media:

    linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下

  • /mnt:

    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了

  • /opt:

    这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的

  • **/proc:**这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
    
  • /root

      该目录为系统管理员,也称作超级权限者的用户主目录。
    
  • /sbin

    s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

  • /selinux

    这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

  • /srv

    该目录存放一些服务启动之后需要提取的数据。

  • /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

    sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。

    该文件系统是内核设备树的一个直观反映。

    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。/sys

  • /tmp

    这个目录是用来存放一些临时文件的

  • /usr:

    这是一个非常重要的目录。用户很多应用程序和文件都放在这个目录下,类似于windows和program files目录

  • /usr/bin:

    系统用户使用的应用程序

  • /var:

    这是目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件

  • /run:

    是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run

重要目录:

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。

值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

系统操作管理

**查看ip:**ifconfig -a

**配置静态ip:**vim /etc/sysconfig/network-scripts/ifcfg-eth0

配置主机名称:

		hostname查看   vim/etc/sysconfig/network          vim network
        重启查看主机名称	reboot

防火墙:

	service iptables status 查看防火墙状态

	service iptables stop 临时关闭防火墙

	chkconfig iptables --list   查看防火墙开启启动状态

	chkconfig iptables on	防火墙开启关闭

	chkconfig iptables off	防火墙开启启动

关机/重启:

	sync(同步):我们在关机或重启之前让linux保存修改的数据。(内存中的数据同步到硬盘)

	关机:shotdown:

			now 立刻关机

			-h 关机 shotdown -h now

			shoudown 5 五分钟后关机

			-r 关机后重启	 shotdown -r now

	halt 关闭系统(等同于shutdown -h now)

	reboot 重启(相当于 shutdown -r now)

常用的基本命令

帮助命令:

 man 获取帮助信息的详细说明:

		空格进行换页   	q 退出 		man 信息查看

		help帮助信息

常用快捷键:

1.帮助命令:

clear	 清屏

ctrl + c	 结束进程

ctrl + q	 退出

tab	 单词命令补全

上下键 

ctrl+alt 	linux和windows切换

2.文件目录

pwd:查看当前文件夹的绝对路径

ls:列出文件的目录结构

	-a 列出所有,包含隐藏文件

	-l 列出文件的长度,包括属性,拥有者,最后一次改变的时间

mkdir:创建文件夹

	-p:创建多级目录

touch:创建文件

cd:切换目录

cp:复制文件/文件夹

	cp 文件/文件夹  目标路径(单个路径/文件夹)

	cp -r 文件夹 	目标	递归复制

rmdir:删除空的目录(remove dieectory)

rm:移除文件或者目录

	rm -rf   目录/文件  递归不询问删除

mv:移动文件/重命名

	mv	oldfile	 newfile    重命名

  	mv	file  newDirectory	移动

cat:查看文件内容,从第一行

tac:从最后一行查看内容

more:按页查看文件内容

	空格换页

	q 退出查看

	enter 向下翻一行	

	= 输出当前行号

less功能和more相似:

	pageup/pagedown换页

	q	退出

head:查看文件的头几行

head -n 20 Demo  查第20行数据

tail:查看文件的末尾几行

tail -n 20 Demo  查倒数20行

重定向:

	ls -l  > c.txt 将查询的列表内容追加到c.txt 再次追加会覆盖掉原来的内容

	ls -l  >>  c.txt 像末尾添加内容

echo:

	echo hello  > e.txt (会覆盖)

	echo hello >> e.txt (末尾追加内容)

ln 软连接:

	ln -s 源文件 目标文件

	history 查看历史命令

3.时间日期: date [option] +[+FORMAT]

date +%Y

date +%m

date +%d

datae +%H

date +%M

date +%Y%m%d

date +%Y-%m-%d	   %H:%M:%S   年月日时分秒

date -d  ‘1 days ago'

date yesterday +%Y%m%d

date -d yesterday +%Y%m%d

设置系统的时间:

				date -s “2019-04-25	15:05:10”

查看日历:cal

4.用户管理

添加用户:useradd

设置用户密码:passwd  用户名

切换用户:su	  用户名

判断用户是否存在:id	用户名

	uid=501(admin)gid=501(admin) 组=501(admin)

删除用户(退出当前登录exit):

		userdel 删除用户,用户目录存在

		userdel -r  用户名,删除用户,删除用户目录

查看用户登录信息:

	who 查看哪些用户登录到了本机

	whoami 查看当前自身用户名称

	who am i 显示登录用户的信息

给用户授权   /etc/sudoers

看创建了哪些用户组:

	cat	/etc/passwd

		admin:x501:501: :/home/admin:/bin/bash

添加分组:usermod -g 用户组 用户名

5.用户组管理

添加组	 groupadd  组名

删除组	 groupdel   组名

修改组	 groupmod -n 新组名 旧组名

6.用户权限管理 r read w write x excute 执行

文件属性:drwxr-xr-x.	3   root	root   4096 4月   24  11:24  rh

	d:代表的是一个文件夹,没有就是文件

	1-3:确定属于谁 该文件的所有者,拥有该文件的权限

	4-6:所有者的同组用户   group

	7-9:其他组的用户   others

修改文件的权限:rwx 421

	chmod 用户/组/其他  文件名

	chmod u+w  c.txt		chmod g+w c.txt  		 chmod u-x c.txt

	以二进制添加权限:

		chmod -R 777  c.txt

		chmod -R 666  c.txt

修改文件的拥有者:

		chown  用户  文件名

修改组:

		chgrp	组名	文件名

7.磁盘分区

查看分区:fdisk  fdisk -1

产看硬盘:df

8.搜索查找

查找文件或目录:

				find /opt -name *.txt 	 查找名称是什么

				find	 /etc -name ifc*

				find	 /opt -user admin		查找用户是什么

				find /opt -group admin	查找组是什么

				find /opt -size +1024	查找文件大小大于1024的文件

						+n  大于   -n小于   n等于

grep	在文件内搜索字符串匹配并输出

	grep  + 参数 + 查找的内容 + 源文件

		参数:

				-l:不区分大小写

				-c:只输出匹配的行数

				-h:查询多文件时不显示文件名

				-n:显示匹配及行号

				-v:显示不包括匹配文本的所有行

which	文件搜索命令(搜索在目录级别的名信息)

9.进程/线程

ps   -aux   查看所有进程

	user:该进程是哪个用户产生的

	pid:进程号

	%CPU:cpu的占用率

	%MEN:占用物理内存的百分比

	VSZ:占用虚拟内存的大小

	RSS:占用物理内存的大小

	TTY:该进程是哪个终端在运行

		tty1-tty7:是代表本地的控制台终端

		tty1-tty6:是本地的字符界面终端

		tty7:是图形界面终端

		pts0-pts255:代表虚拟终端

	start:启动时间

	time:cpu的运算时间

	command:产生次进程的命令

top:实时查看运行的进程  三秒钟自动刷新 q  退出	

pstree:进程树

终止进程  kill   进程号(ps -aux | grep ssh)

10.压缩和解压

gzip  压缩文件(只能将文件压缩为*.gz文件)不能压缩文件夹

gunzip  解压文件

tar + 参数 + xxx.tat.gz +打包的内容

	c 产生.tar 打包文件

	-v 显示详细信息

	-f 指定压缩文件的后缀名

	-z 打包的时候继续压缩

	-x  解包.tar文件

压缩:

	tar -zcvf xxx.tar.gz	压缩打包的内容

解压:

	tar -zxvf xxx.tar.gz   

11常用的符号命令

.  :当前目录
.. :上一级目录
~  :家目录
    回家:cd ~
|  :管道符,一般与grep同时用
	 ps -ef|grep xxxxx
>> :追加到某个文件
>  :覆盖

后台服务

service后台管理

	service 	xxx   start	启动服务

	service 	xxx   stop	停止服务

	service   xxx   status     查看状态

	service   xxx   restart    重启

chkconfig	设置后台的服务自动启动

	查看所有服务的自启配置     chkconfig

	关掉指定服务的自启动		chkconfig  iptables  off  防火墙关闭

	启动开启服务启动  	chkconfig  iptables on 防火墙开启

虚拟机克隆

  • 关闭虚拟机

  • 点击管理克隆

  • 当前虚拟机的状态

  • 完整克隆

  • 查看网卡

  • 修改网卡

    vim /etc/udev/rules.d/70-persistent-net.rules
    	将eth0产出
    	将eth1改成eth0
    	记录网卡编号
    
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    	修改网卡编号(00:0c:29:68:fd:5b)
    	修改ip地址
    	重启虚拟机
    修改主机名称:
    	vim /etc/sysconfig/network
    	hostname = linux02	
    
  • 重启虚拟机

Linux下的软件安装方式

RPM命令安装

RedHat Package Manger 类似于windows下的.exe

检查某个软件是否已经安装:

rpm -qa | grep java

卸载已经安装的软件:

rpm -e --nodeps xxxxx

安装xxx.rpm:

rpm -ivh xxx.rpm /usr/lib
	-i install 安装
	-v 显示详细信息
	-h 进度条
	--nodeps 不检测依赖进度

tar.gz 源码包安装

tar.gz 安装JDK1.8

上传tar.gz的包

解压JDK

配置环境变量

vim /etc/profile 在文件的末未添加:

export JAVA_HOME=/opt/jdk1.8.0__191

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

刷新资源文件:source /etc/profile

java -version

yum安装(在线安装)

yum是有本地镜像的

yum install

wget 在线获取包文件 下载

wget http://download.redis.io/releases/redis-5.0.4.tar.gz

在线下载压缩包

安装InlelijIDEA

解压 ideaIU-2018.3.6-no-jdk.tar.gz

进入到idea-IU-183.6156.11

进入到bin目录

启动idea ./idea.sh

配置idea /注册

添加idea 的桌面快捷方式:

进入到/usr/share/applications   桌面快捷键

创建xxx.desktop文件

vim idea.desktop

输入:
[Desktop Entry0]
Name=idea
Exec=/opt/idea-IU-183.6156.11/bin/idea.sh %U
Type=Application
Icon=/opt/idea-IU-183.6156.11/bin/idea.png
Terminal=false             

如果写完以后桌面没有图标,进入到/usr/share/applications将idea.desktop移动到桌面

在桌面右键属性  权限:允许以程序执行文件

NotPad++7.5.6安装NppFtp插件

下载NppFtp插件(32位的插件,不同版本不兼容)

解压插件

将NppFtp.dll放置到Notpad++安装路径的plugins文件夹下

重启notpad++

连接linux

修改文件

保存后自动上传

shell编程

shell是一个用C语言编写的程序,他是用户使用Linux的桥梁,Shell既是一种命令语言,又是一种程序设计语言。

Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务

Ken Thompson 的sh是第一种Unix  Shell,Windows Eeplorer是一个典型的图形界面Shell

在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。

shell脚本输出

编写一个test.sh脚本文件

编辑脚本文件

#!/bin/bash	#!/bin/sh 脚本文件的开头

echo “HelloWorld”

修改文件权限 chmod 777 test.sh

./test.sh 运行脚本文件

echo 输出

echo -e “Hello\tWorld” 对转义字符进行解析

脚本文件的执行方式:

./test.sh

bash   /opt/rh/shell/test.sh

sh   ./test.sh

bash   ./test.sh

/opt/rh/shell/test.sh	

变量

用户可以通过 set 查看所有的变量

变量的声明 变量名=值 建议变量名称大写 ,=两侧不要有空格

A=100  echo   $A输出变量的值

系统变量

$HOME

$PWD

$SHELL

$USER

自定义变量

A=100  echo  $A   输出变量的值

撤销变量  unset  A

声明静态变量 readyonly  B=200

变量名称:字母数字下划线组合,不能以数字开头

可以将变量提升为全局变量 ,提供给其他的shell来使用

export  变量名称

使用反引号 可以将命令执行的结果保存在变量上

B='ls-l'   echo  $B

A=(ls -l)    等价于上边

设置环境变量

/etc/profile

export  JAVA_HMOE=   全局变量

source  /etc/prifile

设置位置参数的变量

基本的语法:
	$n  n为数组  $1 代表第一个参数   $1-$9  代表1-9个参数
	执行:./test1.sh 1 2 3 4 5 
#!/bin/bash
echo "$1"
echo "$2"
echo "$1-$5"
...
$*   将所有的参数看作是一个整体

$@  将每个参数区别对待

$#	获取参数的个数

预定于变量

$$   当前进程的id

¥!后台运行的最后一个进程的进程号

$?    最后一次执行的状态返回值 		0 正确执行    非0 不正常执行
#!bin/bash
echo "$$"
#将程序放入后台执行
./test.sh &
echo "$!"
echo "$?"
...

运算

	$((表达式))或者 $[表达式]
expr m+n

expr m-n

expr m/n

expr m \* n

expr m%n
# exper `exper 3+4` /* 3
	21
# A=$[(3+4)*2]
# echo $A
    14

判断:

eq 相等

ne 不相等

gt 大于

lt 小于

ge 大于等于

le 小于等于

if
if[条件表达式] 注意表达式前后必须有空格
	then
	程序
fi

文件权限判断

-r 是否可读

-w是否可写

-x是否可执行

[root@linux shell]# vim file.sh

#!/bin/bash
if [ -r test.sh ]
	then
	echo "test.sh is can read!"
fi
#!/bin/bash
if [ $1 -ge 100 ]
	then
	echo "$1 >100"
elif [ $2 -le 100 ]
	then
	echo "$2 <=100"
	fi
	...

case 判断

case $变量名 in
“值1”)
	程序
	;;
	“值2”)
	程序
	;;
	*)
	程序
	;;
	esac
#!/bin/bash
case $1 in
"10")
	echo "param is 10!"
;;
"20")
	echo "parm is 20!"
;;
*)
	echo "no such param!"
;;
esac

循环

for
	for 变量 in 值
	do
	done
	for(初始化变量;条件,变量增加)
	do
	done
#!/bin/bash
#参数作为整体输出
for i in "$*"
	do
		echo"$i"
done



#!/bin/bash
#每一个参数区别对待
for i in "$@"
	do
		echo"param is $i"
done


练习 1-100的和

#!/bin/bash
s=0
for((i=0;i<=100;i++))
do
	s=$[ $s + $i ]
      
done
  echo $s

while

while[布尔表达式]

do

done
计算1-100
	
#!/bin/bash
s=0
i=1
while [ $i -le 100 ]
do
	s=$[$s+$i]
	i=$[$i+1]
done
echo $s

read 读取控制台输入

-p 指定输入信息的提示符

-t 等待时间 在时间内必须完成输入完成

函数

系统函数

basename   /opt/rh/shell/while.sh

while.sh

自定义函数  计算两个输入参数的和
#!/bin/bash
function sum(){
    s=0
    s=$[$1+$2]
    echo $s
}

read -p “please input your number1” num1;

read -p “please input your number2” num2;

Git(github 码云) svn 版本控制工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值