欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux操作系统

程序员文章站 2022-06-20 08:40:36
...

特点:
*使用
开源
多用户、多任务、多线程、多CPU
linux组成:
linux = 内核 + shell(解释器) + 文件系统 + 应用程序
linux分支:
Redhat
偏向于linux原生,命令行操作
Debian
偏图形化界面操作
linux应用
服务器
linux:用的最多
Redhat、centOS
Unix(HP unix)
Windows server(2008,2012)
手机操作系统
平台
嵌入式

linux思想
    linux上一切皆文件

linux系统安装
通过虚拟机来安装centOS(6.4)
虚拟机:使用VMware实现硬件的虚拟化

基本环境的配置(root )
配置主机名:
查看主机名:hostname
修改主机名
临时:hostname bigdata-training01.huadian.com
永久:
vi /etc/sysconfig/network
输入“i” ->编辑 -》“ESC” ->”:” ->输入”wq“
配置网络:
ip:192.168.59.160
网关:192.168.59.2
DNS:8.8.8.8

    详情配置,看截图
    是否成功的标准:
        (1)ifconfig 是否能看到192.168.59.160
        (2)ping 192.168.59.160能通
            效果图在截图中

        (3)在window下也能ping通
网络映射(linux和window):
    ping bigdata-training01.huadian.com

    修改配置:
        vi /etc/hosts

        成功的标志:
            能ping,并且看到192.168.59.160,不能看到其他ip
    在window下,修改配置文件
        C:\Windows\System32\drivers\etc\hosts
        添加 192.168.59.160 bigdata-training01.huadian.com
        成功的标准:

           在windows下 ping bigdata-training01.huadian.com 
                能ping,并且看到192.168.59.160,不能看到其他ip

linux远程连接工具
你购买了阿里云,
ip,root,root用户对于的密码,远程连接上

SecureCRTSecure
    SecureCRTPortable:远程命令行
    SecureFXPortable:远程文件传输
        自个上传一个文件试试
notepad++:支持远程文件编辑的文件编辑工具   

xmanager:
    Xshell:远程命令行工具
    Xftp:远程文件传输工具

快捷键:
(1)输入命令的时候,tab键有自动补全功能
(2)复制:鼠标滚轮
(3)粘贴:鼠标 右键

linux的目录结构

相对路径和绝对路径

绝对路径:
    访问一个文件或者目录,从”/“开始
项目路径:
    从当前目录开始找
a
    b  
        b1  .....
        b2
    c
        c1   
        c2

linux常见命令
linux命令的通用格式
命令 [选项(参数)] 操作的目录或者文件
ls:list
列举某个目录下有哪些文件
-a:显示包含隐藏文件
-l: 使用长格式查看
ls -l === ll ,ll是别名

ls,ll:实现当前目录

cd:change directory
    切换目录
pwd:print work directory
    打印当前工作目录
clear:清屏  == Ctrl+L 
history:查看命令的历史记录

文件管理
创建文件

        touch file_path
        touch aa.txt
        如果一次性创建多个文件,中间用空格分割
        如果创建文件名中包含空格 ,需要使用双引号 引起来
    目录
        mkdir dir_path
        常用参数:
            -p :递归创建
删除
    文件:
        rm:remove
        rm file_path
        常用参数:
            -f:免确认
    目录:
        rmdir:删除空目录
        rm -r:表示删除是目录
    最常用:
        rm -rf:免确认删除目录

编辑

    复制 cp:copy
        cp source_file  target_file 
        cp a.txt  test/        复制a.txt到test目录下
        cp a.txt  test/aa.txt  复制a.txt到test目录下,并设置该文件的名称
    移动mv:move
        mv source_file  target_file 
    重命名
        mv old_file_name  new_file_name
        mv IMG_9888.JPG img_9888.jps
查看
    (1)cat:直接实现文件所有内容
    (2)more:分页查看
            按“enter”查看下一页
    (3)less:分页查看
            按键盘上下键可以分页查看
    (4)head:查看文件头部内容,默认是显示10行
            -20 查看文件前20行内容
    (5)tail:查看文件尾部内容,默认是显示10行
           -20 查看文件后20行内容
           -F:动态查看

linux用户
用户分类
管理员
UID=0
root :x :0: 0 :root :/root :/bin/bash
用户名:密码:UID:GID:所属组:家目录: 所用的shell
普通用户
自己创建的用户,默认UID 500开始
huadian:x:500:500:huadian:/home/huadian:/bin/bash
家目录:
/home/&username
用户信息文件:
/etc/passwd
用户组:
/etc/group

默认情况,
创建一个用户的同时,会创建一个用户组,
用户和用户组 同名
用户的操作
添加:useradd
useradd LW
查看:id
id LW
设置密码:passwd
passwd LW
删除:userdel
userdel LL:删除用户
userdel -r LL:删除用户,并删除家用户
切换用户:su
su - username
su - huadain
su - root :切换到root用户
su - :切换到root用户
退出:exit

权限管理
linux中用户的分类
小李 小李对象 老王
所有者u 同组用户g 其他人o
linux中文件权限
读r 写w 执行x 没有权限-

文件详情信息:
-rw-r–r–. 1 root root 5 Aug 28 02:27 a.txt
d rwx r-x r-x. 2 root root 4096 Aug 27 08:52 test
第一位:d:目录,-:文件
rw- r– r–
所有者 同组用户 其他人
只有读写 只有读 只有读

1:该文件的链接数
root:文件所属者
root:文件所属组
5 Aug 28 02:27:最后的修改时间

修改权限:chmod
格式: chmod [添加或者删除权限] file
通过字符修改:
给 其他人 有 写的权限
chmod o+w aa.txt
删除 其他人 有 写的权限
chmod o-w aa.txt

所有用户 都具有写的权限
chmod u+w,g+w,o+w aa.txt
chmod a+w aa.txt
通过数字来修改:3位8进制表示权限
rw- r– r–
110 100 100
6 4 4
chmod 644 aa.txt

chmod 666 aa.txt:
660 =110110110 = rw-rw-rw-
777:rwxrwxrwx

修改文件的所属用户和所属组 chown
chown username:groupName aa.txt
chown username: aa.txt
chown :groupName aa.txt

-R:递归子目录修改所属者和所属组

文本编辑工具vi/vim
vi file_path
如果编辑的的问价不存在,保存以后,默认该文件会被创建
3种模式:
命令模式:
输入一些命令,比如复制、粘贴、删除等快捷键命令
i:进入插入模式。
yy:复制当前行
3yy:复制当前行开始的,连续3行
p:在当前位置粘贴
dd:删除当前
5dd:删除 当前开始,连续5行
9999999999999999999dd
u:撤销上一步
gg:跳转到第一行
5gg:跳转到第5行
G:跳转到最后一行
o:在下一行进入插入模式
O:在上一行进入插入模式
按下“shift +:”进入最后行模式
插入模式:
对文本进行操作
按“ESC”进入命令模式
按下“ESC —> shift +:”进入最后行模式
最后行模式:
在最后一行能够输入一些命令,检索,显示行号
set nu/number:显示行号
wq/x/ZZ:保存退出
q:不保存退出
!:强制
q!:强制退出
/string 检索字符串
/huadian
按键盘“n”查找下一处

什么是 vim?
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。

关机:
shutdown -n now
halt
init 0
重启:
reboot
init 6

设置开机启动要干嘛
more /etc/inittab

Default runlevel. The runlevels used are:

0 - halt (Do NOT set initdefault to this)

1 - Single user mode 如果root用户密码丢失

2 - Multiuser, without NFS (The same as 3, if you do not have networking)

3 - Full multiuser mode 企业常用

4 - unused 暂未使用

5 - X11 图形界面

6 - reboot (Do NOT set initdefault to this)

常用的工具命令
man:帮助命令
wc:文本统计统计
wordcount
3 5 29 a.txt
行数 单词数 字符数 文件名
常见参数:
-l:只查看行数
-w: 只查看单词数
-c:只查看字符数
du:文件大小统计
格式:du [选项参数] dir_path
常见参数:
-s:只统计该文件目录的大小,不递归
-h:人性化的显示单位
find:文件检索命令
按名称查找 -name
精确
find /etc/ -name init :在/etc目录下查找文件名中包含init文件
模糊:使用通配符*、?
*:0或者多个字符
?:一个?表示一个字符串
不区分大小写:-iname
大小 -size

    文件类型 -type

    文件的所属用户和所属组  -user /-group
    安装时间进行检索


visudo:编辑sudo命令的配置
    编辑第98行
    ## Allow root to run any commands anywhere
        root    ALL=(ALL)                            ALL
        用户名  登录的主机=(以什么样的身份运行)  可以执行什么命令
    如果想让huadian用户也居于root相关权限。。
        huadian  ALL=(root)  NOPASSWD:service iptables status
        huadian  ALL=(root)  NOPASSWD:service iptables start
    推荐用法    
        huadian  ALL=(root)  NOPASSWD:ALL

    使用权限:sudo   service iptables status

常用系统管理命令
网络管理:ping、ifconfig
服务管理命令:
service:必须掌握
格式:
service s_name start|stop|status|restart
linux系统所有自带服务名称:/etc/init.d/
常用:
关闭防火墙服务
service iptables stop
重启网络服务:
service network restart
mysql数据库服务的名称:
mysql版本低于5.5 mysqld
mysql版本高于5.5 mysql

    chkconfig:设置是否开机启动           :必须掌握
        判定是否开机启动
            chkconfig iptables --list
            2.3.4.5是on表示开机启动
        设置
            chkconfig iptables on|off

进程管理:ps
    ps:查当前进程
        查看java的进程
        ps -ef | grep java
    jps:==(ps -ef | grep java) 只有在linux中安装了JDK才能用
    kill :杀死某个进程
        kill -9 pid

端口管理
    nststat:查看端口开放情况
        -a:表示列举所有的连接、服务器监听
        -t:列出所有tcp协议的服务
        -u:列出所有udp协议的服务
        -n:使用端口号来显示
        -l:列出所有的监听
        -p:列出所有服务的进程id(pid)
        常用:netstat -atunlp

redhat的selinux安全机制
    关闭selinux安全机制
        vim /etc/selinux/config
            SELINUX=disabled
        重启机器生效

linux压缩管理
常见的压缩格式
zip
gzip
后缀:.gz
压缩:gzip file_path
解压:gunzip file.gz
特点:
压缩后源文件没有了
不能对文件夹进行压缩
bzip2:适合比较大的文件
后缀:.bz2
压缩:bzip2 file_path
解压:bunzip2 file.gz
特点:
压缩后源文件没有了
不能对文件夹进行压缩
tar:打包命令,将多个文件或者目录打包成一个文件
打包:tar [选项参数] file.tar source
解包:tar [选项参数] file.tar -C target
参数:
-z:是否使用gzip进行压缩或者解压
-j:是否使用bzip2进行压缩或者解压
-x: 解包
-c:打包
-v: 是否显示解包、打包的过程
-C:指定解压的位置

    常见:必须掌握
        -》tar + gzip
           解压:tar -zxvf xx.tar.gz -C  ./
            tar -zxvf jdk-8u91-linux-x64.tar.gz -C ./
           压缩:tar -zcvf xx.tar.gz  xx
             tar -zcvf xxx.tar.gz jdk1.8.0_91/
        -》tar + bzip2
            解压:tar -jxvf xx.tar.gz -C  ./
            压缩:tar -jcvf xx.tar.gz  xx

安装JDK:
(1)上传解压
(2)配置环境变量
vi /etc/profile ——-这一步,看清楚了在操作,不要瞎搞
最后面追加:
#JAVA_HOME
export JAVA_HOME=/opt/test/jdk1.8.0_91
export PATH=PATH:{JAVA_HOME}/bin
(3)让环境变量立即生效
source /etc/profile
或者重启系统
(4)判定是否安装完成
java -version
看到jdk版本信息

linux状态
(1)网络相关配置没问题
hostname、ip、dns
(2)防火墙
防火墙关闭、开机不启动
(2)selinux
关闭selinux

110 = 6 = 4+2

1025 = 1024 +1 =
10000000001
180 = 128 + 32 + 16 + 4
10110100

web项目,已经开发完成,到了生产环境,运行在linux系统中。
这时候,已经没有IDEA开发工具,原有在IDEA控制台输入的内容到哪里了呢???
会到一个日志文件中
开发遇到问题:清除控制台 ,刷新页面,再看控制台
上传遇到问题:动态查看 “日志文件” 刷新页面,在控制台输出

DNS(Domain Name System,域名系统)
百度IP:61.135.169.125
百度域名:www.baidu.com
www.baidu.com -> 域名解析 -> 61.135.169.125

128core 256GB 机器 硬件
2Core 4GB 下单 虚拟化一台机器出来

大数据:人在干、数在转,云在算

建议:注册阿里云账号,购买服务玩一玩

从事JAVA开发需要的技能:
关系型数据库:mysql、oracle
非关系型数据库:redis
hibernate、struts2、spring、mybatis、springMvc
unix/linux操作系统

多线程;
进程和线程的区别
线程的创建方式
线程安全
本地线程