学一点记一点之Linux/Centos(通用篇)

来源:互联网 发布:max 无法录入数据 编辑:程序博客网 时间:2024/04/28 17:06

(格式提示,标题2,标题3)

(颜色注记:黄色背景:存在问题,需要解决 6666CC背景:终端输出/命令输入  CC66CC背景:文件名或者目录名)

0,开始

最近可能要开始做Linux相关的东西了,于是要安装CentOS。

0.1 黑科技

        我一直以为在终端打印出来的信息是无法回调的,今天才知道原来shift_PgUp/PgDn可以上/下翻页。

0.2 部分通用的英语缩写

        rc :run command 运行命令

0.3 默认环境

        $LANG=en_US.UTF-8

1,CentOS的安装

本身CentOS的安装没有什么复杂的,但是在虚拟机上却遇到了两个问题

1.1 安装错误

在VMWare11里安装CentOS6.4 64Bit的时候,遇到了问题,错误提示:

/etc/rc5.d/s99local : line:25 : eject : command not found

这貌似是由VMWare Tools引起的,但是为何会产生这个错误,还不得而知。至于解决的方法,那就是,在创建虚拟机的时候,不指定系统(相当于跳过了静默安装吧,按照我的理解)

1.2 无法上网

安装好之后,发现ping不通sina,应该是网络连接有问题,于是重装了一下,重装的时候,发现其实是有网络配置的选项的,如下图


把Connect Automatically 勾上就好了,当然了,VMWare设置成NAT模式。

ping通了新浪,如下图


但是,装好的机器应该如何修改来启用上网功能呢,这是个暂时没解决的问题

2015-4-17补充:

        当然了如果一开始没有记得去开启这个功能,也是能够配置的,如下

        

        安装了centos之后,ping不通主机

        

        修改配置文件中,把ONBOOT=no改成yes,然后重启就好了(init 6# /etc/init.d/network restart


1.3 man没装

装好系统之后发现,man没装啊

[timi@hibiki ~]$ rpm -q manpackage man is not installed
鄙视centos默认用户都是大牛,都不用man了吗

这个问题暂时没解决


更新:装一个就好了(忘了已经联网了。。。)

# yum install man



2,Linux常用命令

2.1 账户管理相关命令

        adduser 增加一个用户,举例:adduser timi

        passwd 设置用户密码,举例:passwd timi

        who 查看哪些账户在线

        logout 退出登录,没有参数

2.2 查询man

        man左上角括号里的数字的含义如下(转自鸟哥的私房菜)

代號代表內容1使用者在shell中可以操作的指令或可执行档2系統核心可呼叫的函数与工具等3一些常用的函数(function)与函数库(library),大部分是C的函数库(libc)4装置档案的说明,通常在/dev下的档案5设定档或者是某些档案的格式6游戏(games)7惯例与协定等,例如Linux档案系统、网络协定、ASCII code等等的說明8系統管理員可用的管理指令9跟kernel有关的文件在man中,也可以使用一些快捷键,如下

按鍵进行工作空白鍵向下翻一頁[Page Down]向下翻一頁[Page Up]向上翻一頁[Home]去到第一頁[End]去到最後一頁/string向『下』搜寻 string 這个字串,如果要搜寻vbird 的話,就输入 /vbird?string向『上』搜寻 string 這个字串n, N利用 / 或 ? 來搜寻字串时,可以用 n 來继续下一個搜寻 (不论是 / 或 ?) ,可以利用 N 來进行『反向』搜寻。举例來说,我以 /vbird 搜寻 vbird 字串, 那么可以 n 继续往下查询,用 N 往上查询。若以 ?vbird 向上查询 vbird 字串, 那我可以用 n 继续『向上』查询,用 N 反向查询。q结束这次的 man page

2.3 系统管理相关命令

        sync flush file system buffers
        shutdown 常用用法: shutdown -h now 停掉系统服务后立即关机(常用)
        init 0切换等级(切换到0,相当于关机)
        init 6 切换等级(切换到6,相当于重启)(这样重启或关机的优缺点未知)
        dmesg 显示开机信息
        runlevel查看系统运行等级
        date 设置时间的命令,date 显示时间,date -s 设置时间,设置时间需要root,如下
                    
                  可以使用+来格式化输出,例如
                    

2.4 文件管理相关命令

        chgrp 改变一个档案的组群
        chown 改变所有者,例如 chown root:root xxx.txt
        chmod 用数字的方式改变档案的权限,其中r=4,w=2,x=1,那么chmod 777 xxx.txt之后,xxx.txt的权限就变成了rwxrwxrwx
        chmod 用符号的方式改变档案的权限
        cd 切换目录,包括
                     . 当前目录
                     .. 上级目录
                     - 前一个么目录
                     ~ 用户的Home目录
        pwd 打印工作目录,Print Working Directory
               -P参数:打印实际的目录名称,而不是链接。例如,在/var/mail下输入pwd,则返回/var/mail,而输入pwd -P ,则返回/var/spool/mail
        ll (两个小写L):是ls -l的缩写
        ls 命令,列出目录内容
                   -d 参数:列出目录本身的属性,而不是目录里的内容的属性
        rm 删除档案或目录(注意:rm是直接删除档案,而不会询问(centos),删掉后,非常不容易恢复)
                    -i 参数:互动模式,在删除之前会询问
                    -r 参数:删掉目录
        basename/dirname 分别获得后面所跟的参数的文件名和目录名,注意:他不会判断参数的有效性,例如
                    
$ls12012 17001$basename 1201212012$dirname 17001.$dirname /null/unexist/arimasenn/null/unexist$basename xxxxxxxxxx$dirname xxxxx.
        cat (是Concatenat的缩写)打印文本文件内容
                      -n 参数:显示行号
        more一屏一屏显示
        less一屏一屏显示,但是相对于 more,可以上翻页和搜索
                在less中,可以进行操作的按键有
                     空格/PageDown:向下翻
                     PageUp:向上翻
                     /字符串: 向下搜索字符串
                    ?字符串:向上搜索字符串
                     q:离开
        head显示一个文件的前若干行,例如head -n 3 xxx.txt,则打印出xxx.txt的前三行
        file系统判断文件的格式类型
        which寻找执行档的位置
        ln 建立硬链接,使用-s参数建立符号链接
        grep Globally search a Regular Expression and Print

2.5 打包与压缩命令

        gzip压缩命令 
                    参数:
                -d 解压缩
                -c 将结果输出到标准
                    举例:
                   gzip 3.txt 将3.txt压缩为3.txt.gz,压缩后,3.txt不再存在
                   gzip 3.txt -c >3.txt.gz ,压缩后,3.txt仍然存在
                   gzip -d 3.txt.gz ,解压缩,解压缩后,3.txt.gz不再存在
                   gzip -d -c 3.txt.gz >3.txt,解压缩,解压缩后,3.txt.gz仍然存在
        tar打包(压缩)命令
                    参数:
                 -j 通过bzip2进行压缩/解压缩,此时文件名最好是.tar.bz2
                 -z 通过gzip的支持进行压缩/解压缩,此时文件名最好是.tar.gz
                 -c 打包
                 -x 解压缩
                 -v 在压缩/解压缩的过程中,显示正在处理的文件名
                 -f 无论是压缩还是解压缩,紧跟压缩文件名
                     举例:
                    tar -jcv -f 3.txt.tar.bz2 3.txt 将3.txt打包成3.txt.tar.bz2
                    tar -xv -f 3.txt.bar.bz2 解压缩(貌似如果有重复文件,则覆盖?
        dump对文件系统进行备份
        dd dd也是个逆天的命令,之前曾经用dd命令把img镜像烧录到内存卡里,这样可以在bbxm之类的硬件设备上启动Linux了。在Linux里,dd命令也可以进行文件备份
                     举例:
                            dd if=12012 of=12012.back

2.6 数学

        seq 生成序列,如下
               

3,系统基本概念

3.1 系统执行等级

        一共有7级,分别是
            level 0 halt 关机
            level 1 single user mode 单用户维护模式
            level 2 Multi-user,without NFS 类似level3,但是无NFS服务
            level 3 Full multi-user mode 带有完整的网络功能的纯文本模式
            level 4 unused
            level 5 x11,加载使用x window
            level 6 reboot ,重新启动

3.2 档案属性

        可以用ls -al | less命令查看当前目录下的档案属性,得到的列表中条目格式如下
lrwxrwxrwx .     1   root    root                             3    Apr   2   23:59    fb -> fb0
crw-rw----.         1   root    root             29,          0    Apr   2   23:59    fb0         
        第一字段一般有10个字符(CentOS最后好像还有个点)
        其中,第一个字符表征了档案的类型 :具体如下
符号说明d说明这是目录-说明这是档案l(L)这是链接b块(block)设备,可供随机存取的接口设备,例如硬盘,软盘c字符(character)设备,例如键盘,鼠标        例如上面的fb0,类型是个串口设备。
        第二个字符开始的9个字符代表权限
        →对于档案而言,r代表【可读 read=4】,w代表【可写 write=2】,x代表【可执行 execute=1】,-代表【无相应权限=0】
        →对于目录而言,r代表【可列 read=4】,w代表【可写(包括增减移动更名) write=2】,x代表【可切换(cd)入这个目录 execute=1】,-代表【无相应权限=0】
        9个字符分为3组,第一组为档案拥有者的权限,第二组为同群组的权限,第三组为其他非本群组的权限。
        注:还有一种权限为s,=Set UID,表明执行者在执行的时候,具有拥有者的权限,例如/usr/bin/passwd,其ll为
        [timi@hibiki bin]$ ll passwd
        -rwsr-xr-x. 1 root root 30768 Feb 22 2012 passwd
        第二字段表示到链接到这个iNode的文件名字的数量
        第三字段表示拥有者账号
        第四字段表示档案所属群组
        第五字段表示容量大小
        第六字段表示建档日期
        第七字段表示名字

3.3 i-node

        Linux中通过i-Node来识别不同的文件(而不是通过文件名)。硬盘中会有专门的区域存放i-Node,因此如果i-Node用光而磁盘没用光,此时也是没法再存入文件的。
        (吐槽)Linux中的iNode真是个逆天的东西
         1,可以用ln来建立硬链接(实际链接)例如
                    
$ln ./../12012$ll-rw-rw-r--.   2   timi   timi   77  Apr  3  08:09   12012
        硬链接有一些性质
                1,多个文件名链接到一个iNode时,ll的第二段就显示这个数量
                2,rm掉其中一个文件时,iNode不会消失,仍可以通过其他链接到这个iNode的文件名访问
                3,iNode数等于1时,rm掉文件,则文件真的就消失了
                4,修改任何一个都会导致实际的文件变化
                5,不能跨filesystem link,不能link目录             
        2,可以用ln -s参数建立符号链接,等同于windows里的快捷方式。

4,系统文件

4.1 /etc

        /etc/shadow 存放了系统中所有账号的数据,只有root有权限访问

4.1.1 /etc/skel 

        skel是skeleton,骨骼的缩写,意为当每个新用户建立后,都会从这里直接复制配置文件。默认的 这个目录下有
        .bash_logout
        .bash_profile
        .bashrc
        三个文件

4.2 /usr

        注意Linux中的/usr不是user的缩写,而是Unix Software Resource的缩写



4.4 /etc/man.config

        使用man命令时,去哪儿寻找数据的路径

4.5 ~/.bash_history

        历史命令

4.6 ~/.bash_logout

        当注销bash时,需要做什么工作

4.7 /etc/sudoers

        文件,里面存放了能够执行sudo的用户

4.8 /var

        var目录存放在系统运行过程中,大小会发生改变的数据。

4.8.1 /var/spool

        sp        spool是Simultaneous Peripheral Operations On-Line的缩写,又叫"假脱机”,放置“假脱机”程序,例如news,mail,打印队列等

5,shell/bash

5.1 bash

        bash是Linux的预设shell

5.1A 如何自定义bash的颜色

        在PS1中设置字符颜色的格式为:\[\e[F;Bm\],其中“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47。颜色表如下:

    F          B      颜色
    30      40      黑色   
    31      41      红色   
    32      42      绿色   
    33      43      黄色  
    34      44      蓝色 
    35      45      紫红色   
    36      46      青蓝色   
    37      47      白色  
        
        执行下面的命令,会将当前用户的shell的PS1改成红色,而其他的地方不变
        
        如果想让用户登录后,就自动执行这个,则修改~/.bashrc文件,如下
        
        这样就能自动修改颜色了

5.1B 别名

        可以用alias命令为命令设置一个别名,例如
        alias rm='rm -i' 这样在删除文件的时候,就有交互式提示了。
        alias指定的别名,在logout之后就失效了。如果想一直可以使用这样的alias,则编辑~/.bashrc文件,并重新登录或source ~/.bashrc
        没有带参数的alias命令则用来查看系统中已经有的alias,例如:
        
        可以看到,ls='ls --color=auto',如果单独执行/bin/ls,则不会有颜色,而执行ls,则会有颜色

5.1C 命令的历史记录

        bash会把上一次logout之前使用过的命令放在文件~./.bash_history中。
        通过!!命令可以执行上一次执行过的命令,相当于按上方向键+回车。

5.1D 登录提示

        可以在/etc/issue文件中指定登录提示,如下图所示
        

5.1E bash中的快捷键

        可以用stty -a(全拼是setting tty)命令来查看当前bash中的快捷键,在这之中,常用的几个命令解释如下:
        1,eof 代表end of file,结束输入
        2,erase 向后删除字符(但是实际测试中貌似是相当于windows里的撤销功能)
        3,intr 中断
        4,kill 删除当前列的命令,默认是ctrl+U
        5,quit 送出quit信号给当前程序
        6,start 当屏幕输出停止时,start可以让输出继续。默认是ctrl+Q
        7,stop 停止目前屏幕的输出。默认是Ctrl+S,在bash中按下Ctrl+S后,屏幕就不再输出任何东西。但是会保存起来,当执行start时,继续输出。
        8,susp 暂停当前命令,默认是ctrl+Z

5.2 变量

        关于变量的若干说明
        1,变量内有空格时,要用单引号或者双引号引起来,但是之间有区别:单引号之内的是纯文本,双引号之内的变量会再次被解析
        例如
        $msg=hello world
        -bash: world :command not found//必须要有引号包围

5.3 系统变量

        可以用env命令来查看系统环境变量,用set查看自定义变量,区别在于能否被子程序继承(是吗?)。
        一般来说,自定义的变量是不能被子程序继承的,例如下面的程序,在黄线后,export了一下,在子程序(新的bash)中,就能获得msg的信息了。
        
        Linux中(?)变量分为3种
        1,内部变量,例如$0,$$
        2,shell变量,使用set命令查看shell变量
        3,环境变量,使用env命令查看环境变量
        注意,可以使用export命令将shell变量变成环境变量

5.3A bash的login shell

        bash的login shell情况下读取的整体配置文件只有/etc/profile,但是/etc/profile还会呼叫出其他的配置文件,让bash接口更加友善。在之后,就读取使用者的个人配置文件,包括
        1,~/.bash_profile
        2,~/.bash_login
        3,~/.profile 
        只会读取一个,例如,存在1时,就读取1,而忽略2和3
        在执行过程中,可以用 . 或者source命令读取配置文件并更新,例如下例:
        
        在~/.bashrc中将PS1更改后,不用logout,就可以更新了

5.4 数组

        数组的定义可以直接用xxx[1]的赋值表达式定义,但是在使用时,推荐用${xxx[1]}的完整形式以避免bug,例如下面
        
        似乎就没有将$msg[1]解析正确。

5.5 管道命令

        |
        说明:
        1,管道命令只处理standard output,不处理standard error output
        2,管道命令必须要接受来自前一个指令的数据继续处理

5.6 grep命令和正则表达式

        在~/.bashrc中设置alias:grep --color=auto则可以一直显示颜色。
        参数:
                  -n 显示行号
        注意:
                  在grep的参数中,^代表行首,$代表行尾。
                  在正则表达式中,如果需要有 . ! { } 等符号时,应该用转义符号 \ 进行连接。

5.7 sed命令

        sed是stream editor的缩写。

5.8 AWK

        awk是三个人名的缩写 :Aho、(Peter)Weinberg和(Brain)Kernighan。正是这三个人创造了awk---一个优秀的样式扫描与处理工具。 
        吐槽不能。。。
       1

参考文献:

1,鸟哥的Linux私房菜
2,http://www.cnblogs.com/itech/archive/2012/05/15/2502284.html Linux的iNode的理解
3,http://www.cnblogs.com/menlsh/archive/2012/08/27/2659101.html 修改linux终端命令行颜色
4,http://www.it165.net/os/html/201405/8390.html Linux的环境变量以及set env export的区别
5,http://tieba.baidu.com/p/1556285735 关于后台(&)运行,ctrl+z,和fg命令
6,http://blog.csdn.net/jackalfly/article/details/7571616 #!/bin/bash
7,http://bbs.csdn.net/topics/350122470 在WINDOWS系统上自己编译LINUX内核,然后安装到另一台windows的电脑上去,太不可思议了,高难度。。。

在WINDOWS系统上自己编译LINUX内核,然后安装到另一台windows的电脑上去,太不可思议了,高难度。。。

在WINDOWS系统上自己编译LINUX内核,然后安装到另一台windows的电脑上去,太不可思议了,高难度。。。

0 0
原创粉丝点击