Linux学习笔记
第二章 shell 命令和用户管理
SHELL 命令解释器 bash
more /etc/shells
获得帮助的方法:
help 只能对内部命令有效 help cd
--help 只能对外部命令有效 ls --help
man /info 针对内部和外部命令。man ls /info ls
文件类型:
普通文件
目录文件
链接文件
特殊文件
绝对路径 从/开始
相对路径 从当前目录开始
. 表示当前目录
.. 表示父目录
clear 清屏
挂载外设的四步骤:
1.挂载 mount -t iso9660 /dev/cdrom /media/cdrom
2.读取挂载点 ls
3.卸载 umount /dev/cdrom 或umount /media/cdrom
4.移走外部介质
一、chown 更改文件或目录的用户所有权。
chown –R user1 dir1 将目录dir1及其下所有目录及文件的属主位都改为user1
chown root 1.txt ;设置1.txt的属主位是root
chown .root 1.txt ;设置1.txt的属组位是root
chown root.root –R dir1 将目录dir1及其下所有目录及文件的属主位和属组位都改为root
二、chgrp 更改文件或目录的工作组所有权
chgrp redhat file1 将文件file1的属组位改为redhat
chgrp -R redhat dir1 将目录dir1及其以下目录的属组位改为redhat
三、chmod的命令是设置文件或目录的操作权限。
chmod u+w,a+rx 1.txt
chmod u=rwx,go-rwx 1.txt
chmod o-r,a-x 1.txt
chmod a=rwx dir1 -R ;把目录及其下的所有文件权限都改成rwx。
或:chmod 0744 1.txt ;把文件1.txt设置为-rwxr--r--
四、用户和组
UID:0-65535
普通用户从500开始
GID:0-65535
普通组从500开始
新建用户 :adduser user1 或 useradd user1
给用户设置密码:passwd user1
用户文件:/etc/passwd
用户密码文件:/etc/shadow
锁定用户:usermod -L user1
解锁用户:usermod -U user1
设置用户的过期时间:usermod -e 2007-04-21 user1
新建用户时直接设置过期时间:useradd -e 2007-04-21 user1
用户更改密码:用户以自己的身份登录后,直接输入passwd 后,两次输入密码即可(需要输入复杂密码)
删除用户:
userdel user1 (只删除用户信息,不删除用户主目录)
userdel -r user1 (删除用户所有信息,包括用户主目录)
组:
新建用户组:groupadd office
删除用户组:groupdel office
更改用户组:usermod -g office user1
新建用户时同时将用户加入到指定组,并赋予指定的uid号为520:
useradd -g office user1 -u 520
将用户加入到另个一个组:gpasswd -a user1 office
将用户从指定组中删除:gpasswd -d user1 office
设置组密码:gpasswd office
组文件:/etc/group
组密码文件:/etc/gshadow
第三章 VI
编辑器分两类:
文本编辑器:记事本. .txt /vi /emacs /nano /
字处理程序:word
按文本可编辑范围划分:行编辑器和全屏幕编辑器
按界面划分:
字符界面编辑器(vi、emacs、nano )和图形界面编辑器(gedit)
设置行号:set number
取消行号:set nonu
图形下面的编辑器:gedit
撤消:u
重复:.或ctrl+r
cp /etc/passwd ./
ls passwd
vi passwd
练习:
一、vi的三种工作模式的切换
二、命令模式下操作:
1. 光标移动:kjhl(上下左右)0 ^ $ H L M
2. 删除操作 dd(删除当前行)、x删除单个字符 3x删除连续的三个字符
附:替换 rx
3. 复制和粘帖 yy p P
4. 搜索字符串 /var ?var 按n 若实现替换,需在末行模式
5. 撤消: u
6. 可视化操作 字符选中 v 行选 V ,再通过光标移动键进行选中,然后按d(删除),按y(复制)。
三、末行模式下操作:
1.相关命令
:set number 设置行号
:set nonumber 取消行号
:!ls 执行shell命令
2.行号
:1,$ w abc.txt 把1到最后一行所有内容写入文件abc.txt
:1,$ s /sbin/dogdog/g 替换操作sbin---dogdog
:3,7 d 删除3--7行内容
:.,.+4 d 删除当前行开始的5行内容。
四、多文件操作
vi a.sh b.sh c.sh
:next /prev /last /first /args (注意!)
五、gedit图形编辑器
gedit或附件--文件编辑器打开。
1. Linux的内核版本分哪两种?指出2.6.20属于哪个版本?
开发版和稳定版、稳定版
2. 说明下列设备的含义?/dev/hda2 /dev/sda5
第一个IDE接口的主盘第二个分区 、第一个SCSI硬盘的第一个逻辑分区
3. 使用vi编辑器进行编辑时,在末行模式中输入命令 “q!”的意思是什么?输入”wq”的意思是什么?
不保存退出 保存退出
4. Linux缺省的文件系统是什么?
ext3
5. 说明在Linux中获得帮助的四种方式?并举例说明之。
help cd / mount --help /man mount /info mount
6. 说明光盘及U盘挂载和卸载的命令?
mount -t iso9660 /dev/cdrom /media/cdrom
umount /dev/cdrom
umount /media/cdrom
mount -t vfat /dev/sda /mnt
umount /dev/sda
umount /mnt
7. 举例创建、删除用户和组的命令?
useradd test userdel -r test groupadd group groupdel group
8. 用户及组的三个文件是什么?
/etc/passwd /etc/shadow /etc/group
9. vi的三种模式是什么,并说明其转换方法?
命令模式 输入模式 末行模式
10. 如何在vi中设置文本行号?如何取消行号?
:set nu/number :set nonu/nonumber
第四章 shell脚本
bsh --- csh---ksh ----bash
1.父子shell,如何进入子shell,如何退出子shell.
2.显示系统中可以使用的shell:more /etc/shells
显示当前使用的shell:echo $SHELL
3.改变用户的shell:
可以修改/etc/passwd中用户行
或chsh(先切换到本用户,然后输入chsh,注意输入用户密码)
bash
设置别名:alias c=clear
用户自定义变量(本地变量)
设置变量:AN=hhbbbb
显示变量内容:echo $AN
取消变量(删除变量):unset AN
显示变量名及其变量内容:set
将变量设置为只读:readonly AN
显示只读变量:readonly
将本地变量导出为环境变量:export AN
或直接定义环境变量:export AN=this
位置参数变量示例:
vi ab.sh
#!/bin/bash
find /dev -name $1
find /dev -name $2
echo "$0"
ls
而后保存退出
# chmod u+x ab.sh 为脚本文件添加可执行权限
# ./ab.sh cdrom sda1 执行脚本,观察结果
a.sh
#!/bin/bash
find /dev -name $1 -print
echo “$0”
echo “$1”
# chmod u+x a.sh
# ./a.sh cdrom ;执行脚本
/dev/cdrom
./a.sh
cdrom
脚本 vi a.sh
#!/bin/bash
# a.sh
echo "this is a book"
ls -a /bin
echo "bye-bye!"
chmod u+x a.sh ;将文件变为可执行
./a.sh ;执行脚本
. a.sh
bash a.sh
source a.sh
history 查看命令历史
history |more 分屏浏览(ctrl+c中止)
!n 执行某条命令
输入输出重定向和管道
ls -al
ls -al >a.txt 将当前目录下的文件列表保存到a.txt文件中
more a.txt 显示文件内容
echo "this is a book">a.txt
echo "that is a book">a.txt
echo "these are many books">>a.txt
touch a 新建一个空文件
ls a b >a.txt 输出重定向正确结果
ls a b 1>a.txt 2>b.txt 将正确结果保存到a.txt,错误结果保存到b.txt
ls a b >a.txt 2>>a.txt 将正确和错误结果都保存到a.txt
ls a b &>a.txt 作用同上
more /root/install.log |wc 统计install.log文件内容的行数/单词数/字符数
more /root/install.log |grep setup 过滤install.log文件中setup相关内容行
env 显示变量
echo $USER/UID/SHELL/HOME/PWD/PATH
第五章 Linux应用程序安装与管理(RPM的使用)
挂载光驱(使用光盘)
mount -t iso9660 /dev/cdrom /mnt/cdrom ;挂载光盘
umount /dev/cdrom ;卸载光盘
umount /mnt/cdrom ;卸载光盘
一、软件查询:
rpm -qa ;查询系统安装的所有软件
rpm -qa |more 分页显示所有已安装的软件
rpm -qa |grep setup ;查询是否安装过setup相关软件。
rpm -qa|wc ;统计系统安装的软件数。
或more /root/install.log |wc
rpm -q setup ;查询setup是否安装
rpm -qi setup ;查询setup软件的相关信息
rpm -ql setup ;查询setup软件的文件列表
rpm -qf /bin/mount ;查询mount所属的rpm包。
rpm -qpi xxx.xx.rpm ;查询该软件包的版本信息
rpm -qpl xxx.xx.rpm ;查询该软件包包括的文件列表
二、软件安装
先挂载光盘:mount -t iso9660 /dev/cdrom /mnt/cdrom
进入光盘的RPMS目录。
ls ;查询RPM包
rpm -ivh xxxx.rpm
rpm -q xxxx ;查询安装后的软件
1.如果安装时,软件包A依赖于B,则先装B,再装A。
2.若安装时,软件包A、B、C循环依赖,则可以同时安装。
或:rpm --force -ivh A rpm --force -ivh B ...
对于上述两种情况,都可以同时安装:rpm -ivh A B C
三、软件卸载
1.如果卸载时,软件包A被B依赖,则应先卸载B,再卸载A。
2.若卸载时,软件包A、B、C循环依赖,则可以同时卸载。
或: rpm --nodeps -e A rpm --nodeps -e B ....
对于上述两种情况,都可以同时卸载。如rpm -e A B C
rpm -e xxxx
四、软件升级
rpm -Uvh xxx.rpm
若系统中存在低版本,则是升级安装
若系统中不存在此软件,则是安装,等同于-ivh
五、软件校验
rpm -V xxx
LINUX下软件包安装方法:
1.GZip包:tar -zxf firefox.tar.gz -C firefox/或tar -zxf firefox.tgz -C firefox/
./configure
make
make install
2.BZ2包:tar -jxf firefox.tar.bz2 -C firefox/
./configure
make
make install
3.DEB包:dpkg -i firefox.deb
4.RPM包:rpm -i firefox.rpm
prozilla-2.0.4.tar.bz2 多线程下载软件
二、开放源代码应用程序编译安装
编译应用程序前的准备工作:
1)rpm -qa |grep gcc ;确认系统中已经安装了编译环境
2)下载相关软件程序源代码安装包文件
3)释放已下载的源代码软件包文件
(一般是.tar.bz2格式,利用tar jxfv xxx解压)
如果是.tar.gz格式,利用tar zxfv xxx解压
编译前的配置
4)进入到解压后源码目录,进入编译前的配置,运行 ./configure --prefix=/home/redhat/soft(时间会比较长) 生成Makefile配置文件
编译与安装:
5)程序编译过程:执行make 命令进行程序的二进制编译(时间比前者可以还长)
6)程序安装过程:make install 将按照configure命令的“—prefix”选项中设定的安装路径将已编译完成的应用程序安装到目标目录。
7)验证编译安装的程序:进入指定的目标目录执行相应的文件即可。
下载验证:./proz
第六章 系统管理
任务一:(管理运行级别)
init进程是系统的1号进程
/etc/inittab配置文件
? id:5:initdefault 默认的启动级别
runlevel 查看当前系统的运行级别
init 3 将运行级别改为3
init 5 将运行级别改为5
通过修改/etc/inittab来更改系统启动时的运行级别
任务二:(管理服务)
独立服务:/etc/rc.d/init.d/下
chkconfig --list
chkconfig --list |grep nfs
chkconfig --list nfs
chkconfig --level 25 kudzu on
chkconfig --list kudzu 观察变化
非独立服务:
chkconfig time on|off
chkconfig --list time
service nfs status(运行状态)
service nfs stop|start|restart
任务三:(管理进程)
ps -aux 或 ps aux |more
top
pstree
可以事先运行top 或vi aaa.txt作验证
ctrl + z 可以把当前运行的某个进程调入后台
jobs查看后台进程
fg 1 把后台相应进程调入到前台
强制结束当前的进程:ctrl+c
或kill [-9] pid (pid的获得可通过ps aux)
或killall [-9] name
任务四:(管理计划任务)
cron
rpm -q vixie-cron
rpm -ql vixie-cron
chkconfig --list crond
service crond status|stop|start|restart
设置定时任务
crontab 或crontab -e
* * * * * touch aaaabbbb ;在当前目录下每隔一分钟建一个文件aaaabbbb
按ctrl+d结束
查看定时任务:crontab -l或more /var/spool/cron/root(假如是用户root的定时任务)
删除定时任务:crontab -r
实例:
每隔四个小时运行一次ping命令
0 0,4,8,12,16,20 * * * /usr/bin/ping host
每个星期五晚上的10:00运行程序
0 22 * * 5 /usr/local/scripts/backup_level_0
在四月一日(不管是星期几)早晨4:01发一份电邮
1 4 1 4 * /bin/mail < /home/new
附加:
at 一次性执行某任务
at -t 05070932
>touch filefile
>touch filefile1
ctrl + d结束输入
输入atq可以查看未执行的at进程
at -t 07201012
>rm mydate
>ctrl d
atrm 6 删除刚才的任务。
任务五:查看日志文件
/var/log/下会存在N多的日志文件
more /var/log/message (根据实际情况)
分析每行各列的含义。
任务六:文件存档和压缩
存档(不压缩):
tar cfv xxx.tar xxx 生成存档文件 注意格式(先目的文件,再源文件)
tar tfv xxx.tar 查看存档文件内容
tar xfv xxx.tar 释放存档文件
压缩备件:
tar cfvz xxx.tar.gz xxx 生成压缩文件
tar tfvz xxx.tar.gz 查看压缩文件内容
tar xfvz xxx.tar.gz 释放压缩文件
file xxx.tar
file xxx.tar.gz 查看文件类型
tar xzf backup.file -C mkdir 把压缩文件恢复到指定的目录中。
注:这个目录必须事先建立。
tar xvfj linux-2.4.24.tar.bz2 对于bz2的文件的释放命令
任务七:磁盘配额
rpm -q quota 或rpm -qa |grep quota (查询软件是否安装,默认安装)
1.修改fstab文件,在需要启动配额的装载分区添加usrquota和grpquota选项
vi /etc/fstab
2.运行reboot命令重新启动挂载文件系统 此时输入mount查看分区状态
3.使用quotacheck –cmug 相应磁盘配额分区 命令为相应分区生成配额文件。(根据情况可加-f)
此时可运行ls来查看磁盘配额挂载点目录下是否存在两个磁盘配额数据库文件(aquota.group和aquota.user)。
4.运行quotaon -a 命令激活实施磁盘配额的分区
5.使用edquota命令分别为用户和组设置配额,如用-u为用户设置配额,用-g为组设置配额。
edquota -u user1 edquota -g group1
切换到该普通用户,向设置磁盘配额的分区复制一些文件。输入quota来查看配额情况。或如下回到root用户后,再如下做:
6.运行quota -u user1或quota -g group分别查看用户及组的配额设置情况。
附加:
repquota -a 显示所有用户的配额情况
edquota -t 修改磁盘配额超限后可使用的时间。
edquota -u new -p old 把old用户的配额复制到new
示例:
1)vi /etc/fstab
2)reboot 启动后输入mount查看分区状态
3)quotacheck -cumg / 如果针对根分区实施磁盘配额的话
4) quotaon -a 此时输入ls / 来查看根分区下是否有两个数据库文件
5) edquota -u test 针对用户test实施磁盘配额
6) su - test 切换到test用户后,执行cp /bin/* . 向其目录下复制文件。
7) quota 查看配额情况。或切换到root,输入quota -u test来查看配额情况。
进入图形桌面的方式:
1. startx
2. 修改配置文件:/etc/inittab
7个终端:
F1-F6 是字符终端
F7 是图形终端
Ctrl+Alt+F1 进入F1终端
Alt + F7 进入图形
1、从光盘制作ISO文件
cp /dev/cdrom mycd.iso
2、从现有目录文件制作ISO文件makeisofs
makeisofs /dir mycd.iso
3、读取ISO镜像中的文件 -o loop
Mount -o loop mycd.iso /mnt/cdrom
4、把ISO文件刻录到光盘 cdrecord
cdrecord –v -eject speed=8 dev=0,1,0 test.iso
第七章 网络配置
网络的相关配置:IP、子网掩码、网关、DNS、主机名
一、显示各项内容(管理员和普通用户:全路径)/sbin/ifconfig
# ifconfig IP/子网掩码/MAC
# route 网关和路由表
# nslookup DNS
# hostname 主机名
# ping (测试网络连通性)
# traceroute 路由跟踪
二、通过命令临时配置,即时生效,重启丢失。
# ifconfig eth0 x.x.x.x netmask 255.255.0.0
# route add|del default gw x.x.x.x
# nslookup
>server x.x.x.x
>
# hostname xxxx
三、通过修改配置文件,永久生效。
1. /etc/sysconfig/network-scripts/ifcfg-eth0 IP、网关、掩码
2. /etc/hosts 本机解析文件
3. /etc/resolv.conf 域名解析文件
4. /etc/sysconfig/network 主机名配置文件
netconfig 1/3
service network restart
ifdown eth0;ifup eth0
附:如何使用ADSL上网?
1. 先查询软件是否安装?rpm -qa |grep ppp
2. 字符方式下操作:# adsl-setup
3. 图形方式下操作:gnome为例:system->administration>network。然后new一个新的连接,选择其中的xDSL类型。剩下的看提示就可以了。