firmlybelieve

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Linux基础

第一章:基础操作

1 了解linux目录结构

目录层次结构

       Linux系统使用树型目录结构,在整个系统中只存在一个根目录(文件系统)

       Linux系统中总是将文件系统挂载到树型目录结构中的某个目录节点中使用

       根目录 /

       根目录分为一下目录:

       /bin /sbin /home  /boot  /dev  /proc  /var  /temp    /usr /etc

(1)/   : 根目录

(2)/bin :存放启动时所需要的普通程序

(3)/boot : 存放内核及启动所需要的文件

(4)/dev :存放设备相关的文件

(5)/etc :存放系统的配置文件

(6)/home:存放用户文件的主目录,用户数据( cd ~ 可进入自己的主目录)

(7)/lib :存放启动时所需要的库文件

(8)/mnt :存放临时的映射文件,通常是一些用来安装其他设备的子目录

(9)/proc :这是一个虚拟的文件系统,存放当前系统的状态(有关进程和系统信息)

(10)/root: 超级用户主目录

(11)/sbin: 存放启动时所需要的系统管理程序

(12)/tmp :存放启动时产生的临时文件

(13)/usr : 包含一般不需要修改的应用程序,命令程序文件,程序库,手册

(14)/var :存放系统产生的经常变化的文件

 

2 文件及文件夹的基本操作

查看当前目录:pwd

切换目录:cd

文件

新建:

  1. 新建空文件:touch
  2. 利用重定向新建文件>:

删除:

rm (删除文件)

修改:

mv(移动并改名)

查看:

ls (查看目录下有没有这个文件)

查看文件里面的内容

cat /etc/inittab (直接查看到最后一页)(-n 参数可以显示行号,-A 显示行结束符)

more /etc/initab (一次显示一页,回车键换行,空格键换页)

less  /etc/initab(一次显示一页,回车键换行,空格键换页,支持翻页键)

ls –al 以详细列表形式查看所有文件及文件夹

tac /etc/inittab (从尾部向头部读,专门用于读取日志文件)

head –n 20  /etc/inittab  查看文件头20行

tail  -n 20  /etc/inittab   查看文件尾20行

tail –f  /var/log/message   实时查看文件最后10的内容

 

其它:

cp(复制)

 

文件夹

新建:

mkdir

删除:

rm  -r (删除文件夹)

修改:

mv(移动并改名)

查找:

ls (查看目录下有没有这个文件夹)

 

其它:

cp  -r (复制)

 

3 加强内容:

mkdir -p 3/2/1/ 建立多层文件夹

mkdir 1 2 3    建立多个文件夹

ls -F|grep /    只查看文件夹ls -aF|grep /|awk  'BEGIN{FS="/"} {print $1}'

ls -F|grep -v /  只查看文件

mv –f 不出现提示,直接overwrite

rm –f 不出现提示,直接删除

\cp 2/1.txt 3/1.txt  不提示直接overwirte

\cp -r  /1/* 2 将1文件夹内所有内容复制到2目录内,不提示直接overwirte

b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。

 

 

 

scp  主要用于网络之间的复制

示例:

scp newFile   192.168.1.156:/root

将本地目录下newFile 文件复制到192.168.1.156主机的/root目录下。

scp  192.168.1.156:/root/my.txt /root

将192.168.1.156主机的/root目录下的my.txt复制到本机的/root目录下。

scp  192.168.1.156:/root/test1.txt  192.168.l.153:/root

将192.168.1.156主机的/root目录下的test1.txt复制到192.168.l.153主机/root目录下。

 

 

find / -name inittab

查找/目录下及子目所有inittab 文件或文件夹

find / -name  "ini*"

查找/目录及子目录所有含有ini的文件或文件夹

find . -name "[A-Z]*" -print

想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,

drwxr-xr-x /root  

表示/root 目录创建者有读(4)写(2)执行(1)的权限

同组的用户读和执行的权限

其它用户读和执行的权限

chmod  g+x 1.txt 同组中的用户加上可执行的权限

chmod  456 1.txt

chmod -R 777 temp_dir/

chown  - R oracle:admin  temp_dir 改变目录和子目录的属主为oracle和属组为admin

chgrp  - R   admin    temp_dir   改变目录和子目录的属组为admin

 

 

第二章:VI编辑器

VI编辑器有三种模式:

1:命令模式  

2:文本编辑模式

3:末行模式

Vi  t1.txt 进入的是命令模式。

命令模式-------(输入i)--------进入文本编辑模式

文本编辑模式------(按ESC键)---------命令模式

 

命令模式-------(:)--------进入末行模式

末行模式------(按ESC键)---------命令模式

 

命令模式 (定位,复制,粘贴,删除)

定位:

14G 跳转到14行。

G 跳转到最后行。

^跳转到行首。

$跳转到行尾

e跳转到当前字符串尾

w跳转到下一个字符串前

/字符串   查找到指定字符串

复制:

 yy 复制当前光标所在的那一行。

y^ 复制当前光标到到行首。

y$ 复制当前光标到到行尾。

 

粘贴

p 粘贴

 

删除

dd 删除当前光标所在的行。

 

 

文本编辑模式(文本的输入)

 

末行模式(保存,退出,替换)

w保存

q退出

! 强制

r 读文件

设置行号

set nu设置行号

set nonu取消行号

替换

%s/被替换的内容/替换后的内容/g (表示全部替换)

%s/被替换的内容/替换后的内容  (每行第一个匹配全部替换)

17s/被替换的内容/替换后的内容/g (17行全部替换)

 

 

进阶语句:

vi FileName 打开文件 FileName,并将光标置于第一行首。

vi +n FileName 打开文件 FileName,并将光标置于第 n 行首。

vi + FileName 打开文件 FileName,并将光标置于最后一行。

vi + /pattern File 打开文件 File,并将光标置于其中第一个

 

 

 

:n1,n2 co n3 将 n1 行到 n2 行之间的内容拷贝到第 n3 行下。

:n1,n2 m m3 将 n1 行到 n2 行之间的内容移至第 n3 行下。

:n1,n2 d 将 n1 行到 n2 行之间的内容删除。

第三章:用户管理

用户管理命令

       adduser 添加用户账号

       passwd  设置(更改)用户口令

       userdel -r 删除账户用户(及宿主目录)

       usermod 设置用户属性

       用户账户管理实例

       建立用户帐号

       # adduser st01

       设置用户口令

       # passwd st01

       设置用户帐号属性

       锁定用户帐号禁止登录

       # usermod -L st01

       删除用户帐号

       # userdel -r st01

      

用户帐号相关文件和目录

       用户帐号信息保存在passwd文件中

       /etc/passwd

       用户的加密口令保存在shadow文件中

       /etc/shadow

       用户的宿主目录是home目录中与用户名称相同的目录

       /home/teacher

       用户的初始配置文件来在skel目录(配置模版)

       /etc/skel

       用户帐号信息保存在passwd文件中

       用户口令信息保存在shadow文件中

       passwd和shadow文件保存在/etc目录中

      

用户组管理命令及文件

       groupadd  添加指定名称的用户组账户

       groupdel  删除指定名称的用户组账户

       /etc/group/  保存用户组账户信息

       用户组账号管理实例

       添加用户组

       # groupadd class1

       在建立用户时指定用户组

       # adduser -g class1 zelin

       更改用户的组帐号

       # usermod -g class1 zelin

       删除用户组

       # groupdel class1

 

 

第四章:应用程序安装:

安装有两种方式

1:rpm安装

2:源码安装

 

1:rpm安装

1:rpm -ivh firefox-3.0.12-1.el5_3.i386.rpm

安装

2:rpm -e firefox

卸载

3:rpm –ql firefox

可查看安装后所有文件

4:

rpm –q firefox

rpm –qa|grep firefox (推荐)

查找是否安装

5:rpm -U firefox-3.0.12-1.el5_3.i386.rpm

更新

6:rpm -qf /bin/mount

查询文件/bin/mount 由哪个RPM包安装

7:rpm -qi vsftpd

查询软件安装包的信息

8:rpm –qc vsftpd

查询软件安装包的配置文件列表

 

src.rpm包的安装方法
将src.rpm包转换成rpm包再进行安装

 

1:rpmbuild --rebuild vsftpd-2.0.1-5.src.rpm  (rpmbuild命令一般没有安装)

生成RPM包

2:cd /usr/src/redhat/RPMS/i386  切换到目录(建议使用find命令查找)

3:rpm –ivh vsftpd-2.0.1-5.rpm

 

 

2源码安装

(三步曲)

./configure

make

make install

 

 

 

第五章:系统管理

1  linux系统启动过程

当用户打开PC

的电源,BIOS开机自检,按BIOS中设置的启动设备(通常是硬盘)启动,接着启动设备上安装的引导程序lilo或grub开始引导

Linux,Linux首先进行内核的引导,接下来执行init程序,init程序调用了rc.sysinit和rc等程序,rc.sysinit和rc

 
   


当完成系统初始化和运行服务的任务后,返回init;init启动了mingetty后,打开了终端供用户登录系统,用户登录成功后进入了Shell,这

样就完成了从开机到登录的整个启动过程。

 

 

2 系统运行级别

0:关机

1:单用户文本模式

2:多用户文本模式,但无NFS网络支持

3:多用户文本模式

4:保留,暂未使用

5:多用户图形化模式,(默认)

6:重启

 

3:查看当前运行状态 runlevel

   切换运行状态     init 6 重启

   永久改变开机后运行状态 修改/etc/inittab

   id:3:initdefault:

   红色表示开机后运行级别

 

4:服务

服务分为独立服务和非独立服务

chkconfig  --list 

列出所有服务在所有运行级别下的启动状态。

chkconfig  --list  wdaemon   

列出wdaemon服务在所有运行级别下的启动状态。

chkconfig  --list|grep  wdaemon

列出wdaemon服务在所有运行级别下的启动状态。

 

独立服务

chkconfig --level 23 nfs on

修改nfs服务在运行级别为23时为启动状态,不改变其它运行级别的启动状态。

非独立服务

chkconfig  rmcp on

修改在rmcp服务在所有运行级别下为开启的状态,必须xinetd也是开启状态

 

改变服务状态

service 服务名 start/stop/restart

 

进程的操作

查看所有进程:ps –ef

实时查看进程(CPU,MEM):top

删除:kiil -9 PID

删除所有run.sh进程:killall run.sh

 

 

第六章:定时任务

crontab –e 在里面添加我们的的定时任务

crontab –l 查看定时任务

第一段写分钟,第二段小时,第三段天数,

第四段月,第五段星期 第六段命令。*代表每

* * * * * 带路径的命令

表示每分都执行

15 * * * * 带路径的命令

表示第小时的第15分执行

15 2 * * * 带路径的命令

表示每天2点时的15分执行

*/20 2 * * * 带路径的命令

表示每天2点时的每隔20分执行

*/20 2,4,6 * * * 带路径的命令

表示每天2,4,6点时的每隔20分执行

 

root用户的定时任务文件为

/var/spool/cron/root

第七章:网络

1 网卡的命名

eth0代表第一块网卡(Ethernet)。

eth1代表第二块网卡(Ethernet)。

Loop代表本地环回网卡。(Local Loopback)

 

2 查看网卡的连接状态

Ethtool eth0

Settings for eth0:

       Supported ports: [ TP ]

       Supported link modes:   1000baseT/Full

       Supports auto-negotiation: No

       Advertised link modes:  Not reported

       Advertised auto-negotiation: No

       Speed: 1000Mb/s

       Duplex: Full

       Port: Twisted Pair

       PHYAD: 0

       Transceiver: internal

       Auto-negotiation: off

       Link detected: yes

表示查看第一块网卡的硬件信息。最后一行Link detected: 显示了连接是否连接。

ethtool -i eth0

driver: vmxnet

version: 2.0.1.1

firmware-version: N/A

bus-info: 0000:02:00.0

表示查看网卡的驱动,firmware等信息

 

 

3 查看网卡信息

ifconfig  查看已连接网卡的信息

ifconfig –a 查看所有网卡的信息

ifup   eth0开启网卡

ifdown eth0关闭网卡

4:配置IP信息

临时生效

ifconfig  eth0 192.168.1.199 netmask 255.255.255.0

永久生效

vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改IP配置信息

DEVICE=eth0                      指定设备名

BOOTPROTO=static                 指定用表态static还动态dhcp IP,

HWADDR=00:0C:29:52:8F:B1         MAC地址

ONBOOT=yes                      YES还是NO决定了网卡是否随便系统启动

IPADDR=192.168.1.189              Ip地址

NETMASK=255.255.255.0           子网掩码

GATEWAY=192.168.1.1              网关

重起服务使配置生效

service network restart    

 

5:配置路由信息

5.1:查看路由信息

 route

优先级,静态> 动态> 默认

 

 5. 2:添加路由

 route add –net 172.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

 

5.3:DNS

/etc/resolv.conf

nameserver 192.168.1.1  指定DNS服务器

 

第八章:常用操作

1:修改系统时间

  1. date –s  “20110504 19:15:00”
  2. clock –systohc  将系统时间写入到硬件中。

 

2:修改主机名

A永久性修改

hostname你要的主机名

将 /etc/sysconfig/network

HOSTNAME=修改为你要的主机名

修改/etc/hosts

127.0.0.1    修改为你要的主机名

B临时性修改

hostname主机名

 

3:光驱的使用

a:挂载

mount /dev/hdc /mnt

b:卸载

umount  /dev/hdc  卸载最后挂载

umount  /mnt     卸载指定目录挂载

 


4:切换用户

su - root

一定要加中画线

cd ~

切换到宿主目录。

cd ../../

返回上二层目录

Clear 清屏

Watch  -n 8 ls

每隔8秒执行一次ls

Which shutdown

返回一个命令的路径

Who

查看登录用户

Who I am

查看当前用户

 

5.sed awk基本用法

sed –n  ‘10p’   /etc/passwd

将/etc/passwd 第十行打印出来

sed -n '/root/p'   /etc/passwd 

将/etc/passwd行中匹配字符串root打印出来

sed -n '/^root$/p' /etc/passwd 

将/etc/passwd行只有root打印出来

 

 

 

sed 加强

sed s替换

sed ‘s/要替换的内容/替换后的内容/g’ /etc/passwd

并不一定用/表示分隔,如sed 's!/home/admin!/home/my!g' path.txt

sed '1s/root/root___root/2' /etc/passwd

替换第一行中的第二个匹配的内容

 

定位(行号定位,匹配定位)

sed '1s/root/root___root/2' /etc/passwd

s前面用1代表行号定位

cat  -n /etc/passwd|sed '/root/s/root/root----------root/g'

s前面通过匹配的方法定位

cat  -n /etc/passwd|sed '/^root$/s/root/root----------root/g'

s前面通过匹配的方法定位,且匹配的那行只有root

 

删除某行

sed ‘1d’ /etc/passwd

删除第一行

cat -n /etc/passwd | sed '4,5d'

删除第四第五

sed ‘/root/d’ /etc/passwd

删除匹配root的行

 

 

前面插入一行

sed ‘1i  this is my interting row’

后面插入一行

sed ‘1a  this is my interting row’

改变第5行

sed ‘5c  this is my interting row’

 

awk –F: ‘{print $3}’   /etc/passwd     

以:为分隔打印出第三列

awk -F: '$1=="zjf" {print $3}' /etc/passwd   

以:为分隔,且第一列为zjf时打印出第三列

awk -F: '$1 ~ /f/ {print $1,$3}' /etc/passwd

以:为分隔,且第一列匹配f时打印出第一,三列

awk -F: '/f/ {print $1,$3}' /etc/passwd

以:为分隔,且行中匹配f时打印出第一,三列

 

 

cat /etc/passwd|awk -F: '$5=="’$变量名’" {print $1,$5}'

当第5列等于变量值时,打印/etc/passwd/第一列和第五列

cat /etc/passwd|awk -F: '$5=="MySQL Server" {print $1,$5}'

当第5列等于字符串MySQL Server时,打印/etc/passwd/第一列和第五列

cat /etc/passwd|awk -F: '$5~/MySQL/ {print $1,$5}'

当第5列匹配字符串MySQL时,打印/etc/passwd/第一列和第五列

 

 

 

行首删除空格

cat sort1.txt|sed 's/^[[:space:]]*//g'>sort_temp.txt

行尾删除空格

cat sort1.txt|sed 's/[[:space:]]*$//g'>sort_temp.txt

删除行首行尾的所有空格及行间的空行,

cat test.txt|sed 's/^[[:space:]]*//g'|sed 's/[[:space:]]*$//g'|sed '/^$/d'

6.文本格式转换

unix2dos 文件名 将UNIX格式文本转化为DOS文本

dos2unix 文件名 将DOS文本转化为UNIX文本

 

 

7.tar命令

建立归档

       对文件和目录进行归档

       # tar -cf mydir.tar newDir

将newDir 目录归档为mydir.tar

# tar -xf mydir.tar

将归档mydir.tar恢复为原内容

# tar –cf myfile.tar *.txt

将当前目录下所有后缀为txt文本打包为myfile.tar

# tar -xf myfile.tar

将归档myfile.tar恢复为原内容

 

压缩并归档加-z参数

       对文件和目录进行压缩归档

       $ tar -czf myfiles.tar.gz files/

       tar:命令名;czf:命令选项:t表示查看归档,

z表示归档文件是压缩格式,f用于指定归档文件名myfiles.tar.gz:

命令参数,归档文件名;files/:命令参数,需要进行归档的文件或目录名

    查看归档中的文件列表

       查看归档文件中的目录列表

       $ tar -tf myfiles.tar

       查看压缩归档文件中的目录列表

$ tar -tzf myfiles.tar.gz

       tar:命令名; tzf:命令选项:t表示查看归档,z表示归档文件是压缩格式,f用于指定归档文件名myfiles.

tar:命令参数,需要查看的归档文件名

   

 

tar –rf sh.tar my.txt

将my.txt 增加到sh.tar包中

 

tar –delete –f sh.tar my.txt

将my.txt 从sh.tar中去除

 

 

      

       $ tar -xzf myfiles.tar.gz -C restore/

恢复归档文件到指定目录

      

tar:命令名;xzf:命令选项:x表示回复归档,z表示归档是压缩格式,f用于指定归档文件名

       myfiles.tar.gz:命令参数,归档文件名; -C:命令参数-C指定归档恢复的目标目录

       restore:命令参数归档恢复的目录名。

 

 

 

 

8:grep 使用

grep str1  查找含有str1对应的行

grep –v str1  查找除含有str1的行的所有行

grep –e str1 –e str2 查找含有str1 或str2的所有行

 

9:sort排序

sort -t ":" -k 2 -n -r numbet.txt

以:为分隔取第二列,按数字大小排序(-r 表示降序)。

 

10:uniq     unique(唯一的)

 uniq -d 显示重复的行

 uniq –c 显示重复行的次数

 uniq    显示的行不重复

 

 

11:链接

链接分为:软链接,硬链接

软链接:相当于是快捷方式。

ln -s  /etc/sysconfig/network-scripts/ifcfg-eth0  eth0-link

硬链接 :相当于复本,一个改变同时改变。删除任意一个不影响其它。

ln  /etc/sysconfig/network-scripts/ifcfg-eth0  eth0-link-hard

 

12 :几个重要的文件

~/.bash _history   记录了用户执行的所有命令

~/.bash_profile   记录了用户的环境和启动程序

~/.bashrc        记录了用户的fun和别名

~/.bash_logout    用户logout时执行的脚本

 

/etc/bashrc       记录了系统的fun和别名

/etc/profile       记录了系统的环境和启动程序

取别的样例

alias  ws=’ /usr/local/apache2/bin/apachectl start’

 

 

13:查看文件或文件夹使用大小

du –h –s 文件夹或文件

-h  根据文件或文件夹大小变化计量单位

-s  汇总求和

 

14:修改配置文件后生效命令

方法1:
 . ~/.bashrc
方法2:
source ~/.bashrc
通过这两种方法不需要重新启动bash环境

posted on 2013-09-11 10:37  firmlybelieve  阅读(339)  评论(0编辑  收藏  举报