Linux系统使用涉及层面很广,无法一一涉猎,所以只做一个大纲性的概括。
一、GNU/Linux
一般通常意义的Linux系统,包括了内核以及根文件系统里的各种工具、库、文件,等。
linux只是一个操作系统内核,GNU则提供了大量的*软件供用户使用。
Linux系统上大部分工具都来自GNU:gcc、makefile、emacs、X窗口gnome
细节方面可参考:
GNU/Linux命名争议:http://zh.wikipedia.org/wiki/GNU/Linux%E5%91%BD%E5%90%8D%E7%88%AD%E8%AD%B0
kernel官网:http://www.kernel.org/
GNU官网:http://www.gnu.org/
二、命令使用
1、命令分类
命令分类大约在如下这些:
编译有关:Binutils: gcc gdb ar nm ld strip
常用基本:Coreutils: ls cat ln mv nice sleep rm ….
系统相关:Utils-linux: mount dmesg fdisk kill last mkfs
其它开发用到的:flex、bison、readline
有趣的小工具:figlet、sl
值得一提的是man工具(帮助工具),通过man工具可以查看命令、函数的使用方法。
man分类:
1 可执行程序或Shell命令
2 系统调用
3 由库提供的库函数调用
4 特殊文件
5 文件格式,如配置文件格式
6 游戏
7 杂项,如man 7 man
8 系统管理工具
9 其它
2、命令使用技巧
返回上一次目录:
cd –
emacs/命令行/u-boot快捷键:
行首:ctrl+a 行尾ctrl+e
上页(上一命令):ctrl+p 下页(下一命令): ctrl+n
删除光标后面所有字符:ctrl+k
前移:ctrl+f 后移:ctrl+b
删除光标字符:ctrl+d
3、文件属性
linux每个文件有所有者、所在组、其它组的概念,每一组都有读(r)、写(w)、执行(x)三个属性。用ls -l可以查看,位于输出内容左侧。如下:
-rwxrw-r‐-1 root root 1213 Feb 2 09:39 hello
此文件表示hello由root用户创建,拥有读、写、执行属性(rwx),与root同组的用户有读、写(rw)属性,其它组有读(r)属性。
可以用chown修改文件拥用者,chmod改变文件属性。
另外,最前面的是链接文件或其它的,示例:
三、工具/库编译方法
Linux下编译一般分三步骤(提前是把工具/库压缩包解压^_^):
1 配置:./configure
如安装目录、依赖头文件/库、禁止某些特性,使能某些特性。此步骤会生成Makefile。如果已带有Makefile,则无须此步。可以通过./configure --help查看详细信息。常用的是--prefix(安装目录前缀)。
2、编译:make
如系统是多核的,一般可以使用make -j4,即使用4线程编译。类似的可用8线程编译。此操作可以加速编译速度。
3、安装:make install
安装到前面指定的目录。
编译示例:
示例一、openssl-0.9.8e
1、./configure linux-elf-arm -DB_ENDIAN linux:'arm-inux-gcc' --prefix=/home/latelee/bin/sip_new/ssl
(注1:在该平台上不支持动态库,如果添加shared选项,会在configure后面提示的。)
(注2:--prefix是指定openssl的静态库及头文件目录,后面编译其它库时要用到)
2、make
3、make install
示例二、libosip2-3.6.0
1、./configure --prefix=/home/latelee/bin/sip_new/libosip2 CC=arm-inux-gcc --host=arm-linux -enable-static
2、make
3、make install
四、系统配置
1、环境变量文件:
~/.bashrc
/etc/profile
修改后需要执行source ~/.bashrc或重新登陆,以使其生效。
2、对于多人共用服务器情况,个人的配置不要在/etc目录下进行,因为可能会影响其它人的使用。
3、服务配置
samba配置文件:
nfs配置文件:
telnet配置文件:
DNS配置文件:
参考samba、nfs、telnet等的使用相关文章。
五、高阶:LFS
LFS是Linux From Scratch的简称,即从头开始构建一个Linux系统。
官方网站为:http://www.linuxfromscratch.org/
通过LFS,我们可以了解Linux系统内部的实现细节。比工具包分类,编译方法,grub、系统配置文件。
另外,基于ubuntu系统的构建方法有debootstrap,使用该方法比较简单。
此项仅对于有兴趣研究的人,不了解LFS并不影响Linux的日常使用。
六、细节/杂项
1、Linux与Windows差异:
1)、大小写敏感
2)、无后缀名概念
3)、隐藏文件文件前带“.”
2、权限、属性
1)、root权限、普通用户权限
2)、可执行属性、链接属性
七、小结
Linux的使用涉及面广,大家可以逐个知识点学习,对于命令的熟悉,其实日常的使用积累已经可以达到,不必集中时间专门学习,在需要使用时可搜索其使用方法,并做笔记。而对于Linux系统与Windows的差异,则需要比较注意(比如在Windows下用svn检出的库文件可能没有链接属性,可执行文件没有可执行属性,等等)。
李迟 2017.7.26 周三