linux快速入门

By:              胶纸

Date:           2012-10-18

Email:         zhwqiang@126.com 

Copyright:  该文章版权由胶纸所有。可在非商业目的下任意传播和复制。

                   对于商业目的下对本文的任何行为需经作者同意

————————————————————————————————————————————————————————————————————————————
写在前面

1、本文只简单地介绍一下linux的环境搭建和部分常用命令,作为后续嵌入式linux开发的学习基础

2、初学者,欢迎大家指正和交流

————————————————————————————————————————————————————————————————————————————

一、linux简介

1、优点:真正的多任务多用户(可同时登陆)

                  网络协议丰富,是从网络发展而来的,适合作为服务器

                  开源无后门,广泛用于嵌入式系统,安全性高

2、分类:   rehat系列:rehat、fedora等

                  debain系列:debain、ubuntu等


二、linux环境搭建

1、平台:Vmware

      镜像:ubuntu-11.04-desktop-i386.iso

2、要点

1)网络设置:网桥(虚拟机与主机同个网段,NAT是下一级)

2)怎么快速打开终端:Ctrl + Alt + T

3)如何root:sudo passwd rooot -u (可能被 -l 了)

                          sudo passwd root

                          su - root

4)怎么支持中文:system--administration--language support中安装或者拖拽到第一个

5)ubuntu下怎么快捷安装软件:新立德软件包管理

6)如何修改网卡ip:

ifconfig

ifconfig eth0 192.168.1.111

ping 192.168.1.107(主机windows ip)可以ping通(发送ICMP包)

ping 127.0.0.1

7)一些系统维护的windows工具:

putty:输入ip,选择协议SSH(早期是telnet,明文),SSH的端口号是22,telnet是21。

SecureCRT

SSH、vnc:图形化管理


三、linux常用命令

1、文件操作命令

文件命名规则:除了/外都合法、空格等最好别用,大小写敏感,.开头的隐藏

        命令格式:命令 –选项 参数

        特殊目录:.当前目录    ..父目录  ~家目录

命令所在目录:/bin,/usr/bin,/sbin,/usr/sbin(命令本质是一个文件)

1)ls  

-a : all

-l : 详细信息

-d: 查看目录

-i: 查看i节点


2)文件类型

d : 目录 

- :  二进制文件

l :  软链接文件

/**********************************软链接和硬链接的区别***************************************************

   软链接:仅仅是快捷方式,权限属性等完全取决于实际文件,创建格式:ln  -s  源文件  软链接文件     

   硬链接:是一个二进制文件,拷贝+同步更新(i节点一样),创建格式:ln  源文件  硬链接文件           

*************************************************************************************************************/

3)

cd : 切换路径

pwd :当前路径

touch : 创建文件

mkdir : 创建目录

cat : 查看文件内容

ctrl + c : 中止命令

4)cp

cp  源文件  目标文件

cp  -R  源文件1  源文件2 ...  目标目录

5)mv

剪切:mv   源文件  目标目录

更名:mv   源文件  目标文件

6) rm

-r : 删除目录

-i : 询问

-f : 强制

7)more

空格:下一页

Enter:下一行

Q/q:退出

8)chmod : 修改文件的权限

chmod  777  filename

chmod  u+w

/**********************************文件权限***********************************

文件权限:rwx

权限组别:u(user),g(group),o(other)

文件权限与目录权限的区别:(要访问 目录下的文件,首先要对目录有相应的权限)

目录:

r:可列出目录中的内容,就是可执行ls

w:可以在目录中创建、删除文件

x:可以进入目录,所以x是必须的权限

文件:

r:可查看文件内容

w:可修改文件内容

x:可以执行文件,命令、脚本等

*******************************************************************************/

9)chown,chgrp

格式:chown  用户名  文件名/目录名

10)whatis, whereis,which,--help

   whatis : 显示命令用途简介

    --help : 显示命令选项

whereis : 显示命令所在目录,还显示帮助文档路径

   which : 显示命令所在目录,还显示别名记录

11)man : 获取命令或配置文件的帮助

格式:man [命令/配置文件]

man  5  配置文件的帮助

man  1  命令的帮助(默认)

/******配置文件一定是放在/etc目录下的,而且每个配置文件都有帮助文件,用于说明配置文件的格式*****/

12)find

格式:find  [路径]  [选项]  [关键字]

[选项]:

-name:可以结合匹配字符*,??

-size:数据块为单位;+大于,-小于

-user 文件所有者

-时间:ctime(天)cmin      change改变,改变权限

             atime            amin      access 访问

             mtime           mmin      modify修改,修改内容

-type 文件类型,f二进制文件,d目录,l链接文件

-inum    i节点

-o :或

-a :与

-exec: find ….. –exec 命令 {}\;  查找到的结果进一步处理

-ok:询问确认


 13)grep

在文件中搜索匹配行输出

grep  [制定字符串]  [源文件]

grep tftp /etc/inittab

14)文件压缩解压命令(主要是.tar.gz文件)

gzip : 只能压缩文件,不能压缩目录,而且不保留源文件

 格式:gzip   文件名(自动添加.gz后缀)

             gzip  -d  文件名(解压缩)

             gunzip   文件名 (解压缩) 

tar : 打包目录

格式:tar    -cf    打包后的文件名   要打包的目录组

            tar    -xf    压缩包

选项:  -c   [打包后的目标文件名[目录//产生.tar文件,打包时必须选项

              -v  显示详细信息

               -f   指定压缩后的文件名

               -z   打包同时压缩(ubuntu不支持此选项)

               -x   解包,解包时必须选项

15)其它命令

shutdown  -h  now

reboot

16)重点:grep的使用

2、shell命令技巧

1)<tab>命令补全,也可以补全文件名等

<tab>:只有一个命中的时候

<tab><tab>:不止一个命中的时候,会把满足的列出来

 

2)clear

清屏=ctrl+l

清行:ctrl+u

3)上下翻可以得到命令历史

 

4)alias

定义别名

alias  显示所有别名记录

alias copy=cp

alias xrm=“rm –f”   带选项的加上双引号

unalias copy

 

5)、输入输出重定向

< 输入重定向

> 输出重定向

2> 错误输出重定向

>> 两个表示不覆盖,追加


例如:

wall</etc/motd

cp /usr /usr.bak 2>/bak.err

6)管道  | 

将一个命令的结果输入给另一个命令,即接在下一个命令作为参数

ls  –l /etc | grep int

 

7)命令替换符’’

ls –l ‘which touch’


8)连接符

;     让命令顺序执行

&&    逻辑与,注意短路

||      逻辑或,注意短路


3、文件编辑

/*我一般喜欢用gedit编辑,简单方便,以后有需要再学,先贴上之前的笔记*/

命令模式:

/string

:wq  :q   :q!

:%s/old/new/g   :n1,n2 s/old/new/g

如::n1,n2s/^/#/g  连续行注释,^表示行首

:set nu

:set nonu

:n

:r  导入文件名

:r !命令名

插入模式:

iao IAO

x nx    删除字符

dd ndd  删除行,剪切

dG D

:n1,n2d

yy  nyy复制

pP

rR  替换字符,esc结束

u   撤销

$ 移到行首

0 移动行尾

gg G

 

定义快捷键map

:map ^P  I#<ESC>     //ctrl+v,ctrl+P

:map ^B  0x

:ab mymai  http://www.baidu.com

:unab mymail

 

快捷键放在哪里?

写入到vi的配置文件:~/.vimrc


四、系统启动流程

1、启动过程:开发板上电后会运行固件进行加点自检检查硬件是否正常,接着读取MBR(可理解为硬盘的头部,主要包括bootloader+partition+magic number);可以理解为就是(hd0,0),在文件系统中就是/boot或者/root/boot(所有与启动相关的文件都放在/boot中,包括内核可执行文件、bootloader等;内核源代码文件放在/user/src中);首先读取/boot/grub.conf 配置,根据该配置运行grub自举程序,根据自举程序引导加载内核,启动init进程,根据init进程的配置文件启动内核的任务。

2、系统启动流程

1)加电自检:固件BIOS

2)Grub:相当于自举程序bootloader,配置文件放在/etc/grub.conf(->/boot/grub.conf),Grub指定内核存放位置以及启动画面等

3)载入内核:编译好的内核文件一般放在/boot目录下

4)启动init进程:读取inittab文件执行缺省运行级别从而继续引导

                                (init进程PID为1,内核调度为0)

5)执行/etc/inittab:根据/etc/inittab(可以通过 man inittab来获得配置文件的帮助)执行/etc/rc.d/rcN.d 的软链接文件,K表示不启动,S表示启动。实际指向的服务文件存放在/etc/rc.d/init.d目录下,可以直接在命令行执    行/etc/rc.d/init.d/serviceName  start | stop | restart 等;

3、如何添加自启动服务?

1)比如在rc.d/init.d中添加服务文件msgscrip,内容为date >> /root/msg,文件添加可执行权限x

2)在rc.d/rcN.d中生成软链接,同时用S开头命名

4、如何快速设置自启动程序?

chkconfig:

     --list [name]

     --add <name>

     --del <name>

     --levels <name> on

ntsysv图形化管理

 

4、如何编写shell服务脚本?

    请关注后续章节

5、如何切换当前运行级别?

runlevel:查看当前级别,有:单用户、多用户、reboot等7个运行级别

init N:切换运行级别

6、怎么查看设备驱动是否已经识别到?

dmesg | grep  eth0

如果有信息输出即识别到硬件了,否则需要检查硬件设备或者重新加载驱动

7、Grub命令

1)grub.conf和Grub程序都是放在/boot目录下,主要指定内核、镜像文件等

2)root命令忘记了怎么办?进入单用户模式:启动时按e使用Grub的e命令输入1进入单用户模式

五、软件包管理

Debain系列http://apps.hi.baidu.com/share/detail/11444195

APT包管理

aptcache search   搜索软件包      注意-左右没有空格的哦

apt–cache show     软件包信息

apt–get install      安装

apt–get remove      删除

apt–get update      更新软件源

apt–get upgrade     更新已安装包

 

1、ubuntu怎么安装软件?
apt-get install <name>

2、怎么查看软件是否已经安装?

3、怎么卸载软件?

4、怎么启动服务?

5、怎么查看服务是否启动?

6、怎么停止服务?

 六、用户管理

1、用户分类

超级用户:root(UID == 0)

普通用户:500 - 60000

伪用户:0 - 499

2、配置文件

/etc/passwd   用户信息文件,包括密码位、UIDGID、描述信息、宿主目录、shell

/etc/shadow   密码文件

/etc/group    组信息文件

/etc/gshadow  组密码文件

/etc/login.defs  /etc/default/useradd 用户登录配置文件:宿主目录,密码周期,用户失效等

/etc/skel

/etc/motd

3、如何手动添加一个用户

1)修改/etc/passwd,添加新用户信息

2)创建宿主目录,并修改权限chown,并拷贝/etc/skel目录下的文件到宿主目录

3)修改/etc/shadow,

4、su 和 su - 的区别?

su - 连环境都切换过去了

5、useradd和userdel

1)useradd 用户名  //按照/etc/default/useradd文件缺省添加

【选项】

-u   指定UID

-g   指定组

-G   指定用户所属多个组,可多个组

-d   宿主目录

-s   命令解释器shell

-c   描述信息

-e   指定用户失效时间

2)userdel –r 用户名

6、useradd 和 adduser的区别

案例:使用useradd添加用户没有创建宿主目录

解决:方法 1  修改配置/etc/login.defs  /etc/default/useradd,默认创建

           方法  2  使用-m选项

           方法 3   使用adduser

7、粘着位

SetUID:s位,当前用户执行该命令时以该命令所有者身份执行(瞬间);chmod  u + s 或者chmod  4755

SetGID:组s位,当前用户执行该命令时以该命令所属组执行

粘着位t:针对777目录,当设置了t位之后,该目录下的文件只受所有者操作

8、组管理

groupadd new

groupadd –g  GID 指定组ID

gpasswd 设置密码,还可以管理组内人员

【选项】

-a  添加用户到组

-d  删除用户

-A  设置管理员

-r  删除密码

-R  禁止用户切换为该组

9、usermod

用法:usermod  usrname  【选项】

-D:查看缺省信息

-u:修改UID

-G:指定用户所属组

-d:修改宿主目录

10、授权

1) 禁止非指定用户su(含有s位)到root

去掉s位,修改su的所属组chgrp,修改权限chmod,把授权的用户添加到组即可

2)管理服务器一般授权一个普通用户一些权限就可以了

>>1安装sudo软件包,

/etc/bin/sudo

/etc/sbin/visudo

>>2  root用visudo编辑

用户名(组名)  主机名=命令绝对路径【可更具体到选项】

使用时,要先写sudo,再加上命令绝对路径

sudo  /usr/sbin/useradd   liming

11、查看用户信息

finger  usrname

12、案例学shell

案例:批量创建10个用户。


  七、进程管理

1、 fork

创建进程

2、 前台进程

后台进程:加上后台执行符&,如find / -nameinit > /initfind &

3、 用户进程

who

4、ps 查看属于自己的进程,信息少,最常用的是ps -aux或者ps  -le

ps –u or -l

ps –le or –aux 查看所有用户执行的进程的详细信息

ps –aux --sort pid 排序

ps –aux | grep sam

ps –uU sam  查看指定用户的进程

ps –le | grep init 查看指定进程

pstree | more

 

kill 杀死进程

kill 进程号

kill -9 进程号(强制关闭)

kill –1 进程号(重启进程)

使用方法:

1、/etc/rc.d/init.d/httpd stop

2、一个服务会开很多进程

ps le | grep httpd

kill 父进程号

3、killall httpd

4、pgrep

pgrep httpd //输出PID

kill -1  `pgrep httpd`

5、pkill

pkill pgrep

6、top 任务管理器,动态

 

计划任务

at:一次性计划任务

batch

crontab:周期性计划任务

 

at例子:

at now +5 minutes

at> 命令(绝对路径)

ctrl+d保存退出

 

查询计划任务atq或者at –l

删除 at –d 任务标志

写完的计划任务存放在:/var/spool/at

/etc/at.allow

/etc/at.deny

 

crontab 例子:

时间格式编写

crontab –e 编辑

crontab –l 查询

crontab –r 删除

保存在/var/spool/crontab中,可以直接编辑

/etc/crontab配置文件

 八、文件系统

1、文件系统

/usr/bin、/bin :存放所有用户可执行命令

/usr/sbin、/sbin:存放只有root可以执行的命令

/home:用户缺省宿主目录

/proc:虚拟文件系统,存放当前内存镜像

/dev:存放设备文件

/lib:存放系统程序运行所需的共享库

/lost+found:存放系统出错的检查结果

/tmp:存放临时文件

/etc:系统配置文件

/var:存放经常变动的文件,如日志,计划任务,邮件等

/usr:存放所有命令、库、手册页

/mnt:临时文件系统的安装点

/boot:内核文件及自举程序文件保存位置

 

常用命令:

df 查看分区信息

df -h

 

du 查看文件、目录大小

file 判断文件类型

 

挂载光驱:

mount /dev/cdrom  /mnt/cdrom

cd /mnt/cdrom

ls /mnt/cdrom

 

卸载光驱:

umount /mnt/cdrom

 

添加硬盘或分区

>>1 划分分区(fdisk)

>>2 创建文件系统(mkfs)

>>3 尝试挂载(mount)

>>4 写入配置文件(/etc/fstab)

 

例子:

在虚拟机中添加新的硬盘,重启

dmsg | grep sdb  //显示sdb:未分区

fdisk –l  /dev/sdb 查看硬盘信息

fdisk /dev/sdb

 

重启,下面创建文件系统,即格式化,管理数据的方式ext3

mkfs 格式化:mkfs.ext3 /dev/sdb1

 

尝试挂载:

mount  /dev/sdb1  /web

重启又要挂载?自启动时自动挂载,写配置文件/etc/fstab文件系统列表

 

(第27、28、、讲没看)

九、shell 编程

1、语法

1)shell结构:其实直接把命令序列写入脚本(绝对路径)即可执行(sh  scripname或者./scripname)

#!指定执行脚本的shell

#     注释行

命令主体

2)



























  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值