Cool Codes


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 我喜欢的网站

  • 我喜欢的文章

  • 搜索

怎么在Linux使用命令行连接WIFI

发表于 2018-03-15 | 分类于 ArchLinux折腾记   |   字数统计: 166(字)   |   阅读时长: 1(分)

工具

  • wpa_supplicant
  • dhclient

找出网卡设备名称

使用以下命令获取WIFI网卡名称:

1
cat /proc/net/wireless | perl -ne '/(\w+):/ && print $1'
阅读全文 »

Archlinux-Installer使用教程

发表于 2018-03-15 | 分类于 ArchLinux折腾记   |   字数统计: 2,090(字)   |   阅读时长: 7(分)

About

使用Linux也已经两年了,开始使用的是Ubuntu,后来各种折腾,换到了Archlinux,使用至今。在使用Archlinux过程中,各种折腾各种配置,各种快捷键,终于把Archlinux折腾成了自己觉得很好看,很好用的样子。但是问题就是,如果哪天我想重装我的Arch,我还得从头一个命令一个命令敲一遍。还得重新改各种配置,重新装各种常用的软件。虽然说从头敲一遍命令可以学到很多东西,但那是对于第一次装的时候。如果以后每次重装都重新敲一遍,岂不是很蠢,很浪费时间。所以呢,我就使用bash配合dialog工具,写了这个伪界面版本的Archlinux安装器。

Archlinux-Installer on the GitHub

Feature

以下是这个安装器的一些特性:

  • 伪界面,相对纯纯的命令行,是不是友好那么点
  • 支持KDE、Xfce、Gnome桌面系统的安装
  • 支持Gnome桌面系统的简单配置
  • 支持Gnome桌面系统的中文输入法(搜狗输入法)的安装
  • 支持一些软件的配置的备份和恢复(可以添加自己的备份/恢复脚本)
  • 支持Bios和UEFI两种启动方式
  • 自动检测Windows启动项
阅读全文 »

Linux中的Readline

发表于 2018-02-02 | 分类于 ArchLinux折腾记   |   字数统计: 744(字)   |   阅读时长: 3(分)

什么是Readline

今天在弄MATLAB命令行的过程中,了解到了有这么个东西的存在。那什么是Readline呢?

准确的说应该是GNU Readline。在Linux的世界中,命令行界面是无处不在。很多应用程序都提供了自己的交互式命令行界面,也就是说需要用户敲入命令/数据,然后应用程序给出结果。我们需要手动敲入命令,输入即编辑。说到编辑,最简单的方式就是手动输入,如果有错误,就用退格键删除,重新输入。那么问题来了,我想自动补全怎么整?我想快速输入以前输入过的命令怎么整?我想搜索输入历史怎么整?…。GNU Readline就是干这个的。

GNU Readline是一个库,其通过命令行界面(如Bash)为交互式程序提供行编辑和历史功能。其实GNU Readline就相当于一个变相的、迷你的编辑器。

阅读全文 »

Learn Spring - 依赖注入(Dependency Injection)

发表于 2018-01-19 | 分类于 Learn Spring   |   字数统计: 1,022(字)   |   阅读时长: 5(分)

什么是依赖注入

DependencyInjection

面向对象中,系统功能都是通过一系列对象之间的协作完成的。为了降低系统的复杂度,增加代码的复用性,方便测试。应该尽量降低类与类之间的关联度,降低耦合度。类与类之间的关联很多时候是不可避免的。如上图,如果A依赖于B,那么A中的b对象应该怎么实例化呢?两种方法:

  • A自己负责b对象的实例化。但这样明显A和B之间的耦合度太高,如果B的实例化方法参数变更,就必须更改A中的代码。
  • 由外部进行实例化,然后通过构造方法或set方法传入,即依赖注入(外部把依赖项注入到其中)。这明显好于第一种方法。Spring框架就是这么干的。但Spring框架是通过Bean配置来表达传入的参数的,如上图。

Spring中的依赖注入有两种实现方法。即:

  • 构造方法
  • set方法
阅读全文 »

Learn Spring - Bean配置继承(配置重用)

发表于 2018-01-19 | 分类于 Learn Spring   |   字数统计: 435(字)   |   阅读时长: 2(分)

关于Bean配置继承

为了Bean配置的复用,Spring中有Bean配置继承的概念。通过parent属性标识从哪个Bean继承配置信息。类似于面向对象里的概念,子Bean可以覆盖父Bean的配置。还可以设置Bean配置的 abstract属性为true,将该Bean设置为一个模板,其它Bean继承它的模板配置。类似于Java中的抽象类,abstract的Bean不允许实例化。

阅读全文 »

Learn Spring - BeanPostProcessor

发表于 2018-01-18 | 分类于 Learn Spring   |   字数统计: 368(字)   |   阅读时长: 2(分)

About BeanPostProcessor

通过BeanPostProcessor接口可以实现自己的实例化逻辑。可以在Bean实例化的前后添加操作。ApplicationContext会自动检测实现了BeanPostProcessor接口的Bean,并将其注册为PostProcessor。

工作原理

BeanPostProcessor_how_works

阅读全文 »

Learn Spring - Bean Scope属性之singleton和prototype

发表于 2018-01-17 | 分类于 Learn Spring   |   字数统计: 405(字)   |   阅读时长: 2(分)

Scope属性

Spring Bean配置中的Scope属性用于告诉Ioc容器创建Bean对象的范围,只能创建一个对象还是能够创建任意个对象。其值可以是singleton、prototype、request、session和global-session。request、session和global-session只有在web应用中才有效。这里只讲prototype和singleton。

singleton和prototype区别

singleton prototype
只能创建一个Bean实例,Ioc容器会对创建的实例进行缓存,下次请求创建时,返回缓存的实例 可以创建任意个实例
默认值 非默认值
阅读全文 »

Learn Spring - HelloWorld

发表于 2018-01-17 | 分类于 Learn Spring   |   字数统计: 433(字)   |   阅读时长: 2(分)

环境准备

  • JDK 1.8+
  • IntelliJ IDEA
  • Spring框架(从Spring网站下载)

新建项目

使用下载的Spring框架新建项目

解压下载的框架,选择Use Library,从解压的文件夹的libs子文件夹选择需要的模块(也可以选择Download等待IDEA下载)

阅读全文 »

自制操作系统(CoolOS) - 切换到保护模式并连接C语言

发表于 2017-08-15 | 分类于 自制操作系统   |   字数统计: 3,219(字)   |   阅读时长: 15(分)

BIOS是启动在实模式下的,但是实模式限制比较多,所以接下来需要切换到保护模式。而且,接下来的操作系统可不能全部用汇编来写,那会累死的,需要用点稍微高级点的语言,那就是C语言。接下来需要做的就是切换到保护模式,并连接C语言。

修改bootloader

先把之前的hello_world.asm修改为boot_loader.asm,然后进行修改。

我们的bootloader放在了第一个扇区。后面的代码需要放到后面的扇区,因为第一扇区空间有限。但系统启动的时候BIOS只会读入软盘的第一个扇区,也就是bootloader到0x7c00。后面的扇区BIOS是不会自己读入的,所以需要我们自己读入后续扇区到内存。

阅读全文 »

自制操作系统(CoolOS) - Hello World

发表于 2017-08-11 | 分类于 自制操作系统   |   字数统计: 2,082(字)   |   阅读时长: 10(分)

要写一个操作系统,应该从哪里开始呢?当然是启动。那么就先写一个简单的bootloader,让它能在启动的时候打印简单的字符串。

开始

那么,用啥写呢?当然是汇编语言。

要在启动的时候打印字符串,就得依赖于BIOS。BIOS是工作在实模式下的,所以我们写的汇编应该是16位汇编。

1
2
[BITS 16] ; tell the assembler that its a 16 bit code
[ORG 0x7c00] ; tells the assembler that where the code will

[BITS 16]用来告诉汇编器这是16位代码。因为该部分代码(第一扇区)在启动时会被读到内存的0x7c00处。[ORG 0x7c00]就是用来告诉汇编器,这部分代码将会被读取到内存0x7c00处。所以汇编器在将代码翻译成机器码,计算地址时就会按照0x7c00来进行计算。只有这样,接下来的代码才会正确执行。

阅读全文 »
123
si9ma

si9ma

Day Day Up!

23 日志
8 分类
25 标签
RSS
GitHub 知乎
Links
  • Linux中国
  • Archlinux
  • Stack overflow
  • Font Awedome
© 2017 - 2018 si9ma
0%