Linux的学习路径

关于Linux的学习路径

 Enjoy Linux and thank you for choosing Linux Mint

一、对于初学者,先熟悉Linux系统,建议读《鸟哥的私房菜》;

二、对于有C基础的同学,先在用户态下编程,建议阅读《Linux C编程实战》和《Unix/Linux编程实战教程》,然后逐步过渡到Linux内核;

三、入门的同学,可以阅读《Linux操作系统原理与应用》,从编写内核模块入手,一定要动手实践,从理论到实践,从实践上升到理论。如果没有操作系统的原理基础,建议阅读《计算机的心智,操作系统之哲学原理》。

 

《鸟哥的私房菜》 Linux操作系统使用

=>《Linux C编程实战》和《Unix/Linux编程实战教程》 用户态下编程

=>《Linux操作系统原理与应用》和《计算机的心智,操作系统之哲学原理》 内核态编程。

 linux 编程从入门到精通

linux 内核完全剖析

tcp/ip详解:卷1,2,3

Lintmint 17 安装

1、分区:(1) /boot 64m ext4(2)swap 2G ram (3) /    30G ext4 (4)/home  ext4 剩余空间

2、 安装无线驱动: (1)插入U盘安装盘  (2)系统管理-》驱动管理 中安装无线驱动(3)打开无线开关(4)配置无线连接.

Load the b43 module

$ sudo modprobe b43
To make it work automatically

$ sudo su # echo "b43" >> /etc/modules

3、连接网络后,设置软件源,在国内用163和sohu的源比较, “更新管理器”中更新系统软件,更新firefox至最新版

4、安装输入法:Fcitx 小企鹅输入法,  fcitx-config-gtk

sudo add-apt-repository ppa:fcitx-team/nightly
sudo apt-get update
sudo apt-get install fcitx   //fcitx主程序
sudo apt-get install fcitx-config-gtk   //fcitx的gtk的设置图形界面
sudo apt-get install  fcitx-tools
sudo apt-get install fcitx-frontend-gtk3 fcitx-ui-classic
 安装完成后注销,重新登陆。
fcitx-frontend-all:fcitx在所有环境下的前端
fcitx-module-cloudpinyin:fcitx的云拼音模块。
6.fcitx-ui-classic:fcitx的经典UI显示
模块。(此软件包不能被fcitx-ui-light或者fcitx-ui-qimpanel代替,应为该包默认包含着fcitx-module-
x11,有了它才能在让fcitx在图形界面上显示出输入框。)

 在软件管理器中搜索安装输入特定语言所需的组件:
(1)简体中文拼音:fcitx-sunpinyin(Sunpinyin输入法引擎的fcitx封装)或fcitx-googlepinyin或fcitx-pinyin。
(2)简体中文五笔:fcitx-table-wubi(五笔输入法)或fcitx-table-wbpy(五笔拼音输入法)。
(3)繁体中文:fcitx-table-cangjie。
(4)通用的输入法码表: fcitx-table*,如:fcitx-table-erbi(二笔输入法)。

将fcitx设为默认:    
LinuxMint默认的输入法框架是IBUS,所以要将默认输入法框架改为fcitx。打开终端,输入“sudo 
im-config”,回车,输入用户密码回车后即可打开输入法配置对话窗口,单击“OK”,在下一个弹出的窗口中单击“Yes”,在接下来弹出的窗口中选中“fcitx”,单击“OK”。注销重新登录后即可。

一般情况下系统会自动将fcitx设为开机启动,否则,在“系统设置-开机和关机-自动启动”中添加fcitx。

如果fcitx无法正常使用,在软件管理器(mintInstall)中检查一下fcitx的依赖是否安装齐全(下面的包是针对KDE桌面的,Mint17尚未出KDE版的,所以搜索不到的忽略即可):dialog,fcitx-bin,fcitx-config-
common,fcitx-config-gtk,fcitx-data,fcitx-frontend-all,fcitx-frontend-
gtk2,fcitx-frontend-gtk3,fcitx-frontend-qt4,fcitx-libs,fcitx-module-
dbus,fcitx-module-kimpanel,fcitx-module-lua,fcitx-module-x11,fcitx-
modules,fcitx-ui-classic,im-config,libopencc1,libpresage-
data,libpresage1,libtinyxml2.6.2,presage。此外建议安装的软件包:fcitx-tools,fcitx-
m17n,kdebase-bin,plasma-widgets-addons。

5、Linux Mint防火墙:软件管理器下载和安装gufw(http://gufw.org/),这是不复杂的防火墙的GUI。

 6、Pidgin 多协议聊天软件:(1)更新软件

7、QQ:webQQ

 8、安装jdk:

0)删除以前的java

查看本机上是否还有java可选:$ sudo update-alternatives --list java

大神法二:

1、卸载之前,先检查Java对安装情况

# update-alternatives --display java

To check the setup before uninstalling Java.

接下来,删除符号链接

2、(替换(version)为你的java具体版本.命令 “java -version”来得到,我的所1.7.0_15,那么你可以用命令 update-alternatives --remove "java" "/usr/lib/jvm/jdk1.7.0_15/bin/java"来删除)

1 # update-alternatives --remove "java" "/usr/lib/jvm/jdk<version>/bin/java"
2 # update-alternatives --remove "javac" "/usr/lib/jvm/jdk<version>/bin/javac"
3 # update-alternatives --remove "javaws" "/usr/lib/jvm/jdk<version>/bin/javaws"

确认这些符号链接(symlinks)是否都删除了

# java -version
# javac -version
# which javaws

后面俩命令必须要慎之又慎,不然可能毁掉你的系统.

# cd /usr/lib/jvm
# sudo rm -rf jdk<version>

然后,

# update-alternatives --config java
# update-alternatives --config javac
# update-alternatives --config javaws

最后,

# vi  /etc/environment

删除JAVA_HOME 这行环境变量。

-----------------分割线---------------------------------

要删除 OpenJDK (如果已安装的话)。首先,检查是安装的哪个 OpenJDK包。

# dpkg --list | grep -i jdk

移除 openjdk包:

# apt-get purge openjdk*

卸载 OpenJDK 相关包:

# apt-get purge icedtea-* openjdk-*

检查所有 OpenJDK包是否都已卸载完毕:

# dpkg --list | grep -i jdk
完毕。

1)安装
tar -zxvf jdk-7u55-linux-x64.tar.gz
2)移动到指定目录

sudo mkdir /usr/lib/jdk

mv jdk1.7.0 /usr/lib/jdk

3)设置环境变量

sudo nano /etc/profile

在 /etc/profile 文件的最后面增加:

    export JAVA_HOME=/usr/lib/jdk/jdk1.7.0_10

    export JRE_HOME=$JAVA_HOME/jre

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

    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

4.将系统默认的jdk修改过来
    $ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_45/bin/java 300
    $ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_45/bin/javac 300
    $ sudo update-alternatives --config java 
    $ sudo update-alternatives --config javac

4)验证

$ source /etc/profile 使更改的配置立即生效

#java -version

#javac -version

 9 安装eclipse:

 10 安装mysql:

11 安装phpmyadmin:

(1)软件管理器中安装或命令行,

sudo apt-get install phpmyadmin

(2)要求选择Web server:apache2或lighttpd,选择apache2,设置Mysql数据库密码。

然后连接phpmyadmin与apache2,www在/var/www/html,phpmyadmin在/usr/share /phpmyadmin目录,用命令cd /var/www/html  sudo ln -s /usr/share/phpmyadmin /var/www/html 建立连接

删除phpmyadmin

sudo dpkg -P phpmyadmin  
sudo rm -f /etc/apache2/conf.d/phpmyadmin.conf
sudo service apache2 restart
sudo apt-get autoremove phpmyadmin

sudo /etc/init.d/apache2  restart

http://localhost/phpmyadmin/

命令

1、ps -ef | grep XXX
显示所有当前运行的程序

2、kill -9 PID
彻底终止进程

3、sudo rfkill  list

4、netstat -anp  | grep 7003

netstat -apn |  grep 7003
find -name *.lok

netstat命令参数说明

netstat -t参数:t代表TCP协议的套节字链接,除了t之外还有u(UDP)、w(RAW)、x(UNIX)套节字。

netstat -a参数:a就是(all)简写,意思就是包括全部正在监听的端口。

netstat -n参数:直接显示端口号,不是根据“/etc/server”显示端口对应的服务名称。

netstat -p参数:显示占用该端口号的进程。

netstat -l参数:显示正在被监听的端口。

ll 是 ls -l 的别名

5、sudo fping -e -f dns.txt

       fping -e < dns.txt

6、 date:date +%x%t%T

7、rdate:rdate -s/-p ntp.ubuntu.com

8、ntpdate:ntpdate  ntp.ubuntu.com

9、uptime:查看系统启动时间和运行时间

系统启动时间: date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"

系统运行时间:

cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'

修改dns

(1)sudo nano /etc/resolvconf/resolv.conf.d/head

  nameserver 42.120.21.30

  nameserver 223.5.5.5

  nameserver 114.114.114.114

(2)sudo resolvconf -u

(3)ping www.google.com

  cat /proc/cpuinfo

ssh无密码验证登陆 A机器->B机器

(1)登录A机器  cd ~/.ssh

(2)ssh-keygen -t rsa  --------------------然后一直按回车键,就会按照默认的选项将生成的密钥保存在.ssh/id_rsa.pub文件中。

(3)sftp  username@B机器

 (4) put id_rsa.pub .ssh 或put id_rsa.pub .ssh/authorized_keys

(5) 登录B机器  cd ~/.ssh

(6) cp id_rsa.pub authorized_keys 

正常情况下就可以无密码登录本机了

 chmod 700 .ssh

chmod 600 authorized_keys 

 (7)验证:A机器 ssh username@B机器

查看/etc/sysconfig/iptables文件,发现里面没有80端口的配置规则,需要修改下iptables。

在root权限下执行:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

然后执行(即时生效,重启失效):

service iptables stop
service iptables start

要想重启后也生效,则执行:

chkconfig iptabels on
chkconfig iptabels off


发现是localhost这个东东问题,尽管可以将localhost解析为127.0.0.1(这个在hosts中也是这样配置的),但是真正ping 127.0.0.1却是ping不通的。于是,我恍然大悟,想起了在ifconfig命令看不到lo设备的问题。于是,用ifup lo来启动lo这个网络回路设备,或者ifconfig lo 127.0.0.1 来制定lo设备的IP地址为127.0.0.1,然后ifconfig可以看到lo了,ping localhost 也没有问题了。

下面简单说一下lo这个回路设备吧。
如果网卡还没有配置好,那么运行:#ifconfig系统只会输出以lo为首的部分。lo是look-back网络接口,从IP地址127.0.0.1就可以看出,它代表本机。无论系统是否接入网络,这个设备总是存在的,除非你在内核编译的时 候禁止了网络支持,这是一个称为回送设备的特殊设备,它自动由Linux配置以提供网络的自身连接。IP地址127.0.0.1是一个特殊的回送地址(即默认的本机地址),可以简单地使用ping 127.0.0.1 命令来测试回路地址是否正常。
另外,在IPv4中,回路设备通常用的地址是127.0.0.1,但是127.0.0.1~127.255.255.254都是映射到回路设备的;在IPv6中,回路设备只有一个地址 0:0:0:0:0:0:0:1 (也记为::1)。
通常情况下,在类Unix系统中,回路设备被标识为lo或者lo0
回路设备是一个虚拟的网络接口,是通过软件来实现的而没有真正连接到任何硬件。
 


iptables 所在目录 /etc/sysconfig/iptables

service iptables status 查看iptables状态
service iptables restart iptables服务重启
service iptables stop iptables服务禁用

查看SELinux状态:

1、/usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态

SELinux status:                 enabled

2、getenforce                 ##也可以用这个命令检查

关闭SELinux:

1、临时关闭(不用重启机器):

setenforce 0                  ##设置SELinux 成为permissive模式

                              ##setenforce 1 设置SELinux 成为enforcing模式

2、修改配置文件需要重启机器:

修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled

重启机器即可

linux下:
ctrl-c 发送 SIGINT 信号给前台进程组中的所有进程。常用于终止正在运行的程序。
ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程。
ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。
ctrl-/ 发送 SIGQUIT 信号给前台进程组中的所有进程,终止前台进程并生成 core 文件。

Key Function
Ctrl-c Kill foreground process
Ctrl-z Suspend foreground process
Ctrl-d Terminate input, or exit shell
Ctrl-s Suspend output
Ctrl-q Resume output
Ctrl-o Discard output
Ctrl-l Clear screen

 

echo "ClientAliveInterval 60" >> /etc/ssh/sshd_config
echo "ClientAliveCountMax 1" >> /etc/ssh/sshd_config

重启SSH服务

service sshd restart

然后退出,重装进入就不会断开了.

 

修改方法服务器端

修改数据库配置文件/etc/my.cnf

character-set-server=utf8mb4
collation_server=utf8mb4_unicode_ci

重启MySQL(按照官方文档,这两个选项都是可以动态设置的,但是实际的经验是Server必须重启一下)

猜你喜欢

转载自xjf975999.iteye.com/blog/2080343