Linux

文章目录

  • Linux简介
    • Linux版本
    • Linux结构
  • Linux安装
  • 常用命令

Linux简介

芬兰大学生Linux,出于兴趣,编写了Linux操作系统内核,开源,所有人都能免费得到系统源码,免费使用

现在,服务器多数采用Linux操作系统,因为Linux安全,免费

将来用Java编写的服务器端程序,很可能要运行在 Linux服务器上.

服务器端会尽量安装最少的软件,也不会安装桌面系统,必须用命令行,执行命令来管理服务器.

一般需要远程管理服务器,从远程终端登录远程服务器.

Linux版本

  • 红帽子系列
    Redhat <> Fedora <> CentOS 7
  • 乌班图系列 ubuntu

Linux结构

Linux_第1张图片
Linux_第2张图片

Linux安装

下载操作系统安装光盘 iso,刻录成光盘或用u盘进行安装,用虚拟机安装 Linux

  • 安装选项:
    最小安装 - 缺少基本的网络服务和命令
    带网络的最小安装 (推荐)
    带桌面 – 默认启动桌面系统(个人使用)

  • 分区

必须分区
	/		Linux文件系统的根目录
	swap	磁盘交换分区,虚拟内存,
			当内存不够用时,使用磁盘
			来虚拟内存使用
建议分区
	/var	动态文件
	/home	用户目录
安装CentOS 7时,可以使用自动分区

常用命令

用户名:	root  超级管理员
密码:	root
pwd命令
查看当前所在的目录
pwd
/root		是超级管理员的home
cd命令 切换目录

cd /  根目录
pwd  显示包路径
cd ~	   cd 	回家
ls命令
-a		全部,包括隐藏文件
-l		长格式
-h		人性化, Kb, Mb, Gb
-d		列出目录本身
-i		文件id

目录列表
ls		列出当前目录的列表
ls /dev		对指定目录进行列表

ls -a /etc		-a  all全部文件,包括隐藏文件

ls -l /etc		-l  长格式显示
		
	第一个字符: -文件,d目录,l软连接
	rwxr--r--: 权限
	数字:		硬连接数
	用户, 组
	文件大小字节量
	最后修改时间

ls -lh /etc	-h  人性化显示,文件大小用Kb, Mb, Gb

ls -ld /etc	-d  列出目录本身,而不是目录内部文件

ls -li /etc	-i  显示文件的数字id
文件命令
mkdir     -p		递归,逐层创建多层目录

mkdir  d1		创建d1目录
mkdir  aa/bb/cc	不能创建
mkdir -p  aa/bb/cc
			先建aa
			再在aa中建bb
			再在bb中建cc

rmdir    删除目录 remove dir
rm       删除文件或目录 remove
        -r 删除目录
        -f 无需确认
cd ~
touch  f1		新建文件
touch  aa/f2	在aa目录下创建f2
ls –l
ls –l  aa

rm  f1
rm  -r  aa		删除目录

touch  f1
rm  -f  f1		无需确认

mkdir  -p  aa/bb/cc
touch  aa/f2
rm  -rf  aa		无需确认删除目录

touch	新建文件

touch  f1
ls -l

默认权限: rw-r--r—
6.5权限: 
r	读		4
w	写		2
x	执行	1

用户		文件的所有者
用户组		用户所在的组
其他人

rw-r--r--
用户用户组其他人
cp	复制 copy
-r		复制目录
-p		保持文件属性(一般指最后修改时间)

cd ~
cp  /etc/passwd  .   复制到当前目录
ls -l  /etc/passwd
ls -l  passwd

cp  /etc/passwd  pwd  复制成一个新的文件名
ls -l

cp  -p /etc/passwd  pwd2
		复制时保持文件属性
ls -l  /etc/passwd
ls –l  pwd2

mkdir  -p  aa/bb/cc
touch  aa/f2
cp  -rp  aa  aa2

cd  aa2
ls
cd bb
cd cc
cd ../../../
mv	移动或改名 move

cd ~
mv  pwd  aa/bb/  文件移动到bb目录下
ls -l
ls -l aa/bb/

mv pwd2  pwd  	改名
ls -l
查看文件内容:
cat	查看文件内容
-n  显示行号
cat  pwd
cat -n pwd

tac	反向查看文件
tac pwd

head	查看头部几行
-n 指定显示几行,默认10行

cat  pwd
head pwd			默认前10行
head –n 5 pwd		前5行

查看前5行,并显示行号
cat -n  pwd  |head –n 5
				| 是管道
				  前一个命令的执行结果
				  交给后面命令处理
				  
tail	尾部几行
-n 指定行数,默认10行

tail  pwd
tail –n 5 pwd

more	分页查看
more  /etc/services

空格或f 	– 翻页
回车		- 下一行
q或ctrl+c	- 结束

分页查看,并显示行号
cat -n  /etc/services |more

less	可以前后翻页
less  /etc/services
pgup	上翻页
pgdn	下翻页
上箭头	上一行
下箭头	下一行
/		输入关键词进行搜索
n		搜索时,继续搜索下一个

上下翻页查看文件,并显示行号
cat -n /etc/services  |less

文件连接	1ln
文件连接 link
-s  创建软连接文件(软连接就相当于windows的快捷方式)

软连接
cd ~
cp -p /etc/passwd .
ln -s passwd plink  对passwd创建软连接文件
ls –l
cat plink  查看源文件
echo asdfsdfsdf >> plink  向源文件输出
cat plink
cat passwd
删除原文件,软连接失效
rm -f passwd
ls -l
cat plink

硬连接,
是一个原文件的副本,
保存与原文件相同的数据
与原文件id相同
修改原文件或硬连接文件,同时对另一个文件做相同修改
删除任意文件,不影响其它文件
硬连接
cp -p /etc/passwd .
ls -l
ln passwd passwd2
ln passwd passwd3
ln passwd passwd4
ls -li
echo asdfweegfwe >> passwd
cat passwd3
ls –l
rm -f passwd
ls -l
cat passwd3
文件权限
用户,用户组,其他人
r	读		4
w	写		2
x	执行	1

目录权限
	r	目录列表权限
	w	创建,删除文件
	x	进入目录,打开目录

chmod	修改权限 change mode
u 用户
g 用户组
o 其它人
+ 增加权限
- 减少权限
= 设置成指定权限

chmod u+wx,g=r,o-rwx  passwd
chmod 764 passwd

chmod +x /usr/local/bin/docker-compose		ugo用户、用户组、其它人
1、可能是/usr/local/mysql/data/mysql.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data”  然后重新启动mysqld!
修改文件,目录权限测试
添加新用户
useradd  tony
cat /etc/passwd
为tony设置密码123456,
提示密码太简单,不理他再输一次123456
passwd  123456
快捷键 alt+f2,使用zhangsan登录
alt+f1...f6,切换工作界面

alt+f1
cd /home/zhangsan
touch  f1
echo  asdfasdf >> f1
ls -l

alt+f2
cat f1
echo werwsdfasdf >> f1

alt+f1
chmod  o+w  f1 其他人添加写权限

alt+f2
echo werwsdfasdf >> f1
cat f1

alt+f1
mkdir d1
ls -l
touch  d1/f2
chmod  o+w  d1/f2

alt+f2
cd d1
pwd
ls -l
touch f3
rm f2
echo asdfasdf >> f2
cat f2

alt+f1
chmod  o+w  d1
chmod  o-w  d1/f2

alt+f2
touch f3
echo  asdfasf >> f2
rm f2
chown	改变所有者 change owner
chown  zhangsan  f1

修改文件所有者	alt+f1
cd /home/zhangsan
chown  zhangsan  f1
chown  zhangsan  d1
ls -l

chgrp	改变所属用户组
chgrp  group1  f1

改变所属组	alt+f1
groupadd  group1
chgrp  group1  f1
ls -l
查找文件或命令
find	查找任意文件,支持通配符 * 和 ?
find /home -name f1

    -name
        搜文件名,通配符 *、?
   
    -iname
        忽略大小写
    
    -size
        按文件大小查找
        +块数, 大于...
        -块数,小于...
        
        一块等于512字节

          -size +20800 大于20800*512字节
          -size 20800  等于20800*512字节
    
    -user
    -group
        按所有者、所属组查找
        find  -user  root
    
    -amin
        access minutes, 按访问时间查找
    -cmin
        change, 属性更改
    -mmin
        modify, 内容修改
        
        -amin  -60  60分钟内

    -type
        f, d, l
    -a 
        and 
    -o
        or
    
    -exec
    -ok
        对查找结果直接执行操作命令
        
        ... -exec ls -l {} \;
        
        ... -ok ls -l {} \;
              需用户确认    

find查找文件
alt+f1
cd ~
/etc目录下查找文件serv*
find  /etc  -name  se* -a -type f |cat –n


locate和updatedb
在文件数据库中查找,效率比find高得多,新文件不会时时的添加到数据库,locate查找新文件可能找不到,需要更新数据库 updatedb
locate  service

locate查找文件
find / -name *service*
locate  service
cd ~
touch  myfile1
locate  myfile1
updatedb
locate  myfile1

which	查找命令,可以显示命令别名
which  ls

which测试
which  ls
which  rm
which  mv

/bin/ls  alias ls='ls --color=auto'
/bin/ls 命令文件
alias ls  起个别名叫ls
ls --color=auto  执行的真实命令

执行真实命令文件
/bin/ls  -li
/bin/ls  -li  --color=auto

/bin/rm  f1

alt+f2
which  rm
touch f1
rm f1

alt+f1
cd ~
别名配置文件
用户主目录中的隐藏文件 .bashrc
cat  .bashrc

cd /home/zhangsan
cat  .bashrc

whereis	查找命令,显示帮助文档的路径
whereis  ls
whereis  cp
whereis  useradd
/usr/sbin	超级管理员命令目录
whereis  mysqld
命令帮助	--help 	简单的帮助信息
ls --help
mkdir --help
ps --help
ifconfig  --help
man	详细使用手册 manual,只有shell命令才有手册,内核命令没有独立手册
也可以查看配置文件手册,只指定文件名,不能写文件路径

man  mkdir
man  ifconfig
man  cp
man  cd  内核命令没有独立文档
man  passwd		配置文件手册
man  shadow
man  services
whatis	查看命令的简单信息
whatis ls
whatis cp
whatis cd
whatis whatis
info	命令信息
help	命令帮助
apropos	配置文件简单信息
apropos  services
apropos  passwd

用户管理
useradd	添加用户
useradd  zhangsan

-g		指定用户组(主组)
-G		指定附加组 -G  grp1,grp2,grp2

添加用户	alt+f2
useradd  lisi	普通用户不能添加新用户
alt+f1
useradd -g root -G group1 lisi
cat /etc/passwd
passwd  lisi  设置密码123456
cat /etc/shadow

passwd	密码管理
passwd  	设置当前用户的密码
passwd   zhangsan  对zhangsan的密码进行设置
-l  锁定密码,不允许用户登录
-u  解锁用户
-d  无口令

密码
passwd  -l  zhangsan
alt+f2
exit

alt+f1
passwd  -u  zhangsan
alt+f2

alt+f1
passwd  -d  zhangsan

alt+f2
logout

cat  /etc/shadow

userdel	删除用户 user delete
删除用户时,会同时删除他的主目录

userdel  lisi

who	查看当前登录的用户
last	显示用户的最近的登录信息
lastlog	显示用户最后一次登录信息

groupadd	添加用户组
groupadd  group1
压缩和解压缩
gzip	对 gz 格式压缩文件进行压缩和解压缩,不能直接对目录进行压缩
压缩:
	gzip  passwd
	会生成 passwd.gz,并删除原文件
解压缩:
	gzip  -d  passwd.gz  
	解压缩,解压之后,生成passwd,并删除压缩文件
gzip
cd ~
cp  -p  /etc/services  .
ls -l
gzip  services
ls -l
gzip  -d  services.gz
ls -l

tar	将目录打成一个tar文件包(不压缩),结合gzip,将tar打包文件可以再进行压缩
tar也提供了参数,自动执行gzip压缩
    -c
        创建打包文件 create
    -v
        显示详细信息 verbos
    -f
        指定文件名 file
    -z
        打包同时压缩 gz,或者拆包时解压缩
    -j
        打包同时压缩 bzip2

    -x
        解包, tar文件,解开成文件夹
    -z
        解压缩

-czf	
	创建打包文件,进行压缩,指定文件名

-zxvf
	解压缩后进一步解包,显示详细信息,指定文件名
	
zip	压缩文件:
	zip  a.zip  f1
压缩目录:
	zip  -r  a.zip  aa
不会删除原文件或压缩文件
zip  s.zip  services  压缩services文件

unzip	解压缩
unzip  s.zip
unzip  s.zip		解出services
unzip  b.zip		解出aa目录

bzip2	默认压缩后会删除原文件
bzip2  services
-k  保留原文件

bunzip2	默认解压后不保留压缩文件
bunzip2  services.bz2
-k  保留压缩文件

tar+bzip2对目录打包压缩
tar  -cjf  j.tar.bz2  aa
通信和网络
服务器上登录的用户之间通信	write
向登录的其他用户发送信息	write  zhangsan

wall	向在线所有用户发送信息, write  all
wall  message...
wall  sdfsdf

ifconfig	查看本机的网卡ip设置
Centos7 	ip addr
ping	测试与另一台主机网络是否连通,及网络的连接速度,向对方发送数据,并等待对方发回数据
ping  192.168.7.xxx

ping  127.0.0.1
ctrl+c 退出当前ping
-c  指定次数
ping  -c  2  127.0.0.1

netstat	查看网络服务
    -t
        tcp
    -u
        utp
    -l
        监听
    -r  
        路由
    -n
        ip、端口
        
    -tlun   本机监听的端口
    -an     本机所有网络连接
    -rn     本机路由表
        常用三个参数
登出和重启
exitlogout

shutdown
-h
        关机,指定时间 -h now   或    -h 20:00
    -r
        重启  -r now   或   -r 20:00
    -c
        取消预订的关机命令

init	Linux的运行状态
  0  关机
  1  单用户(安全模式)
  2  不完全多用户,不含nfs服务
  3  完全多用户(正常)
  4  未分配
  5  图形界面
  6  重启

init  6  
init  5  启动桌面系统
init  3  退出桌面系统,进入命令行界面
init  0

runlevel	查看当前系统运行级别

uptime	连续运行时间
w
系统运行时间,用户数,负载情况
用户的空闲时间,累计cpu时间,单次cpu时间,运行了什么命令
vi或vim
Linux 命令行中的文本编辑工具,编写程序代码文件,shell脚本文件所有编辑操作,都要使用命令

  模式
      1.命令模式
      2.插入模式 i a o
      3.编辑模式 :

  插入模式: esc 退出
      a  字符后插入
      A  行尾插入
      i  字符前插入
      I  行首插入
      o  下面插入新行
      O  上面插入新行
      
  编辑模式:
      冒号进入
      
      :set nu      显示行号
      :set nonu    取消行号
      gg          到第一行
      G           到最后一行
      nG          到第n行
      :n          到第n行
      $           移到行尾
      0           移到行首
      
      x           删除字符
      nx          删除后面n个字符
      dd          删行
      ndd         删除n行
      dG          删当前行到文件末尾
      D           删当前字符到行尾
      :n1,n2d     n1行到n2行删除
      
      yy          复制当前行
      nyy         复制当前行向下n行
      dd          剪切当前行
      ndd         剪切当前行向下n行
      
      p、P        粘贴在当前行上面或下面
      
      r           覆盖单个字符
      R           持续覆盖字符,esc退出

      u           回退
      ctrl+r      重做
      
      /           搜索指定的字符串
      n           next
      
      :%s/aaaa/bbbb/g   不询问
      :%s/aaaa/bbbb/c   询问确认
                  全文替换, aaaa 替换成 bbbb
      
      :n1,n2s/aaaa/bbbb/g   不询问
      :n1,n2s/aaaa/bbbb/c   询问确认
                  指定行范围内替换
      
      :set ic     不区分大小写
      :set noic   区分大小写
      
      :w          保存
      :w filename 另存为
      :wq         保存并退出
      ZZ          保存并退出,快捷方式
      :q
      :q!         不保存直接退出
      :wq!        对只读文件强行保存并退出(所有者和root可用)
      
      :r \aa\bb  
                  导入bb文件内容  
      :!命令
                  不退出vim执行系统命令
      
      :r !命令
                  导入命令执行结果
      
      :map        自定义快捷键
                  :map [ctrl+vp]  I#   ctrl+p添加#
                  :map [ctrl+vb]  0x<ESC>   ctrl+b取消#

      :n1,n2s/^/#/g     行首添加#
      :n1,n2s/^#//g     行首去除#
      :n1,n2s/^/\/\//g  行首添加//
      
      :ab  omg  oh my god!
                        定义缩写,替换为完整文本
      
      .vimrc
                  用户目录下 vim 命令配置文件,
                  可添加快捷键、缩写配置等

你可能感兴趣的:(基础类)