• Knowledge Architecture


    Unix程序设计:会socket,多线程,文件操作,这3个要必须掌握,掌握了就可以做开发,也可以写点小程序玩玩。
    熟练操作文件是基础;多线程特别是通信软件会用的很多;SOCKET不用说了,网络编程;如果是GUI 编程,就要练习控件。就这样了,多写程序,好书很多,关键是你能不能看进去,敲代码。再看看数据库方面的书,毕竟做开发,基本是和数据库打交道。
    -->推荐书籍
    《数据结构与算法》:不看你没法做C和指针的课后题,比如递归、八数码、八皇后,你无从下手,会打击你的积极性。
    《C程序设计语言》:能单纯把The C Programming Language理解透已经很不得了,这本看完再看点算法和数据结构再做点项目就很牛了,至于编译器还是去看龙书,虎书和鲸书吧。
    《C和指针》:这是一本不是入门者的入门书,介绍C语法、重要的C标准库以及C数据结构应用;
    《C专家编程》:阐述了C的历史,C的技巧和C的本质,剖析C语法从而引导出C中常见错误及误区;
    《C陷阱与缺陷》:让对c的理解有质变得一本书,如如何理解(*(void(*)())0)()等问题;
    《你必须知道的495个C语言问题》
    《C语言深度剖析》
    《C标准库》
    《C语言核心技术》
    强烈推荐:《深入理解计算机系统》
    -->说实话,直接看这些书真的很用不上。这些书是等你C做过很多程序之后看才有用的,你随随便便翻本教材研究一下。
    真的,看书没用的,这些书是等你做了很多项目之后,突然翻开一看,恍然大悟。
    好技术是写出来的,不是看出来的,而且干看技术书是很累的,推荐自己写些程序,比如一些小游戏。

    Linux中含有两个重要的文件 /etc/profile和$HOME/.bash_profile 每当系统登陆时都要读取这两个文件,用来初始化系统所用到的变量,

    其中/etc/profile是超级用户所用,$HOME/.bash_profile是每个用户自己独立的,我们可以修改该文件来设置一些变量。

    .bash_profile是最重要的一个配置文件,它在用户每次登录系统时被读取,里面的所有命令都会被bash执行。.profile(由Bourne Shell和Korn Shell使用)和.login(由C Shell使用)两个文件是.bash_profile的同义词,目的是为了兼容其它Shell。在Debian中使用.profile文件代 替.bash_profile文件。

    命令用法如下

    $ cd (进入用户登陆目录)

    $ls –al .bash_profile(.bash_profile为隐藏文件,因此要用ls –a命令查找)

    $vi .bash_profile(用vi编辑.bash_profile)

    在里面的PATH一行修改 添上需要的路径

    保存退出

    交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。 shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。bashrc与profile都用于保存用户的环境信息,bashrc用于交互式non-loginshell,而profile用于交互式login shell。系统中存在许多bashrc和profile文件。

    总结:

    etc/profile,/etc/bashrc 是系统全局环境变量设定 
     
    ~/.profile,~/.bashrc用户家目录下的私有环境变量设定 
     
    当登入系统时候获得一个shell进程时,其读取环境设定档有三步 
     
    1首先读入的是全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如 
     
    /etc/profile.d和/etc/inputrc 
     
    2然后根据不同使用者帐号,去其家目录读取~/.bash_profile,如果这读取不了就读取~/.bash_login,这个也读取不了才会读取 
     
    ~/.profile,这三个文档设定基本上是一样的,读取有优先关系 
     
    3然后在根据用户帐号读取~/.bashrc 
     
    ~/.profile与~/.bashrc的区别 
     
    ~/.profile可以设定本用户专有的路径,环境变量等,它只能登入的时候执行一次 
     
    ~/.bashrc也是某用户专有设定文档,可以设定路径,命令别名,每次shell script的执行都会使用它一次 
     

    /etc目录用于存放Linux/Unix系统的配置文件,/etc里的配置文件非常关键,所以要经常备份(备份方法见文章末尾),这样不管你是重装系统还是因为系统坏掉,都能快速的恢复到早先的配置状态。文章“etc” 和“理解 Linux 配置文件”,对etc目录下的所有文件都有了一个详细的解释,可以用于查阅。这里主要写一下/etc目录下几个常用的配置文件。

    Unix/Linux下的/etc目录

    /etc/profile

    /etc/profile里边包含了系统的环境变量的设置,比如$PATH,$HOME...每次用户登陆都会加载这个文件以设置环境变量,这个文件是全局的profile文件,设置后会影响到所有用户。(/home/username/.profile或.bash_profile是针对特定用户的)

    /etc/hosts

    hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件,以ASCII格式保存。hosts文件包含了IP地址和主机名之间的映射,还包括主机名的别名。在没有域名服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址,否则就需要使用DNS服务程序来解决。通常可以将常用的域名和IP地址映射加入到hosts文件中,实现快速方便的访问。

    /etc/passwd

    这个文件包含User的信息,当一个添加一个新用户,这个文件中就会增加一行(包含用户名,密码...),这个文件系统中的每个user都能查看。如果密码字段包含"x",这表示密码已经被混淆了

    /etc/shells

    包含系统可用的可能的“shell”的列表。

    /etc/group

    包含有效的组名称和指定组中包括的用户。

    wheel:x:10:root(wheel为group名字,root为user名字)

    /etc/sysconfig/network

    The /etc/sysconfig/network file is used to specify information about the desired network configuration on your server.

    /etc目录的备份方法

    cd /etc

    sudo tar -czvf etc.tar.gz *

     http://blog.csdn.net/pan_tian/article/details/7712992

    .profile,.login,.bash_profile和.bashrc的区别

    1./etc/profile和用户主目录下的配置文件

    用户登陆到shell时,shell会执行一系列初始化动作,其中就包括读取配置文件,然后根据配置文件设置环境信息。这样用户就可以很方便地在环境中加入自定义信息,如设置环境变量。事实上,登陆shell会读两配置个文件,/etc/profile文件和用户主目录下的配置文件,这两个文件的区别是:

    /etc/profile文件:为系统的每个用户设置环境信息,对所有用户的登陆shell都有效;

    用户主目录下的配置文件:为当前用户设置环境信息,仅对当前用户的登陆shell有效;

    2.用户主目录下有哪些配置文件

    用户主目录下的配置文件有.profile, .login, .bash_profile, .bash_login。不同的登陆SHELL用不同的配置文件,具体为:

    Bourne Shell (sh):使用.profile文件;

    Korn Shell (ksh):兼容sh,也使用.profile文件;

    C Shell (csh):使用.login文件;

    Bourne Again Shell(bash):bash被设计成兼容sh,ksh,并有csh的特征, 所以会在用户的主目录下依次查找.bash_profile,.bash_login,.profile文件,并用找到的第一个作为自己的配置文件;

    bash查找这些同义文件的好处是,如果曾经用过Bourne shell,你可以保留它,如果需要加入特定的bash命令,可以将它们放入.bash_profile中并在后面跟一条命令source .profile。登录时,所有特定的bash命令均被执行,然后bash将会调用.profile,执行其保留的命令。即使决定仍使用Bourne shell,也不必修改已存在的文件,类似的方法也可以用于.bash_login和C shell的.login,但由于这些shell基本语法的差异性,这不是一个好主意。

    需要注意的是:经过编辑的.bash_profile文件,直到退出再次登录,该文件被重新读取后,.bash_profile中的内容才会生效。

    2.Bash的其他几个配置文件

    Bash的设计考虑的场景比较齐全,所以除了上面的几个配置文件外,还有如下几个配置文件:

    ~/.bash_logout文件:每次登录shell退出时文件.bash_logout被读取并执行,它提供了定制用户环境的功能,如删除帐号内的临时文件或记录登录系统所花的时间;

    ~/.bashrc文件:.bash_profile只被登录shell读取并执行,如果你在命令行上键入bash启动一个新的shell,这个新shell读取的是.bashrc而不是.bash_profile,将登录shell和运行一个子shell所需的配置文件分开可以获得非常灵的配置策略,从而满足不同的应用场景;

    /etc/bashrc文件:和~/.bashrc的含义一样,只不过适用于所有的用户;

    事实上,很多情况下某些配置文件是一样的,比如.bashrc和.bash_profile,这时只需要在一个配置文件中执行另外一个配置文件就可以了,例如source .bashrc,或 ..bashrc(匿名命令)。

    http://blog.csdn.net/zjb9605025/article/details/6251093

    source命令用法:
    source FileName
    作用:在当前bash环境下读取并执行FileName中的命令。
    注:该命令通常用命令“.”来替代。
    如:source .bash_rc 与 . .bash_rc 是等效的。
    注意:source命令与shell scripts的区别是,
    source在当前bash环境下执行命令,而scripts是启动一个子shell来执行命令。这样如果把设置环境变量(或alias等等)的命令写进scripts中,就只会影响子shell,无法改变当前的BASH,所以通过文件(命令列)设置环境变量时,要用source 命令。

    计算机组成原理→DOS命令→汇编语言→C语言、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言、架构……
    这段话的意思就是只有按照这个顺序学习计算机相关知识,才会避免建造空中楼阁。
    举例:
    ·C的指针越学越糊涂,就是因为不知道为什么要有指针这玩意儿,但如果你学过汇编,并且洞悉汇编和C每一句之间的对应关系,你就会豁然开朗了。
    ·为什么要学汇编语言,因为只有汇编语言才是这个世界上所有CPU懂的语言。那什么是CPU,CPU能做什么?就不得不学计算机组成原理。
    ·计算机知识是一个需要动手实践的学习过程,光看书和看别人写的程序是不行的,但动手从哪里开始呢?不是从点鼠标开始,而是从熟悉DOS命令开始的。
    ·学计算机软件首先需要细心,然后才是逻辑、数学啥的,所以你平常打字都达不到95%以上的准确率,我看还是先练好打字再说吧。
    ·用syetem调用DOS命令(Shell命令)和管道操作能完成的工作竟然用又复杂,又不稳定的其它方法去做,说明你DOS命令(Shell命令)的功底太不扎实或根本没学过也没用过。
    ·不要以为你Java、.NET、PHP、WPF、Ruby等等这些高屋建瓴的语言熟悉了,你就没必要了解实现这些语言的底层如操作系统、C、C++、甚至汇编的工作机制。总有一天你会碰到一个必须解决的问题,而且此问题不得不依靠去探查它们对应的让CPU实际执行的具体操作来发现或解决。

  • 相关阅读:
    MySQL批量UPDATE多行记录
    qt 标准对话框
    qt creator 源代码中含有中文编译报错
    qt编译mysql插件
    win7自动登录桌面
    编译QtAV工程库
    Qt Creator 中关于调试器的设置
    QtCreator 添加第三方头文件库文件路径
    Qt 安装一个Service
    Qt 添加启动项
  • 原文地址:https://www.cnblogs.com/007beta/p/3954743.html
Copyright © 2020-2023  润新知