大学里关于Linux_Fedora14的一些命令的学习(更新)
2012-11-01 09:09
603 查看
本人总结了下在大学里关于新手学习Fedora14 的一些命令,其中老师的讲课的一些实验很有参考价值.,本人用的WIN下的虚拟机vmware下的虚拟的linux,此文章适合新手学习,大神勿喷,如有过错,请各位指出.谢谢
1 实验一 系统信息的获取与配置
实验步骤:
0 打开vmware进入Fedora14 系统 用户选择其他, 输入root 密码123456
应用程序 -》 系统工具 -》 终端 把终端拖到桌面上来
1 命令行方式获取系统相关的信息, 点击终端
1.1 cpu $ cat /proc/cpuinfo
1.2 mem $ free or cat /proc/meminfo
1.3 disk $ fdisk –l
1.4 filesystem $ df -h
1.5 网络 $ ifconfig
$ ethtool eth0
1.6 显卡 $ lspci | grep VGA
1.7 Shell版本 $ echo $SHELL
1.8 内核版本 $ uname -a
1.9 进程 $ ps -aux
1.10 负载 $ top d 1
2 图形方式获取系统的相关信息
应用程序-》系统工具-》 系统监视器 可以获取
3 网络IP配置
系统 -》 管理 -》 网络
点击 Tab 硬件, 查看并确认 硬件网卡被系统所识别的硬件名字 (eth8)
点击 Tab 设备, 系统所默认的两个网卡 eth1 与 eth7 其实是空设备, 可通过双击 eth1 , 点击硬件设备进行确认
我们现在需要把 eth8 新建进去, 在 Tab 设备下,点击 新建 -》 以太网连接 -》 eth8 -》 静态IP设置 + DNS -》 应用
注意: 我们windows 的IP 掩码是 255.255.255.128, 所以 windwos 与 fedora14 的Ip 必须 保证或者都 <128 or >128 才能网络联通
将无效设备eth1与eth7前面的选中 取消, 点击 文件 -》 保存
重启fedora将改动生效 系统-》关机—》重启
4 重启后 $ping 物理机ipWinxp 能够ping通
$ifconfig 能够看到eth8 的固定IP 设置, 注意如果ping不通的话,很有可能是Ip地址冲突, 需要 系统 -》 管理 -》 网络 重新修改 eth8 的Ip
5 进行物理机与虚拟机的文件传输
在winxp 下
点击图标 SSH Secure File Transfer
点击 Quick Connect
Host name: linuxIp
User Name: root
点击 connect 输入 密码 123456
然后就可以通过文件的拖拽进行文件的传输。
6 附加问题:fedora14 中 在登录界面默认是不允许root登录,请网上查询,我们需要修改哪些相关的配置文件,才实现了直接以root 登录。
2 实验二 熟悉linux的常用命令
实验步骤:
1 时间相关
1.1 $ date //显示当前时间
1.2 $ date 100118002012 //设置系统时间为 2012年10月01日18:00 格式如[MMDDhhmm[YYYY]]
1.3 $ date // 确认修改成功
1.4 $ cal //当月日历
1.5 $ cal 09 2013 //指定月的日历
1.6 $ cal 2013
1.7 $ bc //计算器
1.8 $ echo $SHELL
1.9 $ echo "hello world"
1.10 $ echo $LANG
2 文件与目录相关
2.1 $ cd /root //进入目录 root
2.2 $ mkdir -p quhp //创建子目录 quhp
2.3 $ ll -l //显示目录的文件与子目录
2.4 $ ls //同样显示,但是不同效果
2.5 $ cd quhp
2.6 $ pwd
2.7 $ touch test.txt //创建文件
2.8 $ gvim test2.txt 输入一些字母后保持退出
2.9 $ ll -l
2.10 $ cat test.txt //显示文件内容
2.11 $ echo "hello everyone" > test.txt //写入内容
2.12 $ echo "hello everyone again" >> test.txt //append 内容
2.13 $ cat test2.txt >> test.txt //将test2.txt内容 append 进 test.txt
2.14 $ cat /proc/cpuinfo | less //分屏显示
2.15 $ cat /proc/cpuinfo | more //同样分屏显示,不过不能前翻
2.15 $ cat /proc/cpuinfo | grep cpu // 过滤显示
2.16 $ cp test.txt quhp.txt //文件复制
2.17 $ mv quhp.txt quhp2.txt //文件移动
2.18 $ mkdir -p /root/ludong
2.19 $ cd /root/ludong
2.20 $ cp -r /root/quhp . // 把目录quhp的所有文件跟子目录拷贝到ludong 目录下
2.21 $ rm *.txt // 删除所有 后缀名为 txt 的文件
2.22 $ cd .. // 回到上级目录
2.23 $ rm -rf ludong // 删除整个字目录 ludong
2.24 $ head -n 10 /proc/cpuinfo // 显示文件前10行
2.25 $ tail -n 20 /proc/cpuinfo // 显示文件后20行
3 其他
3.1 $ du -h /root/quhp // 目录大小
3.2 $ wc /root/quhp/test.txt // 文件行数
3.3 $ wc -c /root/quhp/test.txt // 文件字节数
3.4 $ wc -l /root/quhp/test.txt
3.5 $ wc -w /root/quhp/test.txt
3.6 $ whereis wc //
3.7 $ whereis cat
3.8 $ clear
3.9 $ man wc
3.10 $ wc -h
3.11 $ wc --help
3.12 $ man cat
3.13 $ info cat
3.14 $ history 查看刚才的所有使用过的命令
3 实验三 Linux文件与目录管理
实验内容:
主要是熟悉一下常用参数的使用
实验步骤:
1 GUI界面创建用户
系统-》管理-》用户与群组
添加用户 ludong 密码 111111
添加用户 test 密码 000000
2 GUI界面创建目录与文件
双击 root 的主文件夹 -》 右键 创建文件夹 quhp -> 双击进入 -》 右键 创建文件 test
3 点击终端
$ ll //查看 目录quhp的权限 drwxr-xr-x
$ ll quhp //查看 文件 test 的权限 -rw-r--r--
4 GUI界面修改目录权限
回到 root 目录 —》 选中 文件夹 quhp 右键 属性 -》 权限 tab
有 所有者 群组 其他 + 文件夹访问 文件访问 分别对这些下拉菜单进行修改, 点击 关闭后, 回到步骤3 进行确认改变
5 GUI界面修改文件权限
root 目录 -》 文件夹quhp -》 选中文件test 右键属性 -》 权限 tab
所有者与群组都 改成 ludong, 都有读写权限 执行 打勾 点击 关闭
$ ll quhp 注意文件 test 的权限 属主 甚至 颜色的变化
6 命令行修改目录与文件的权限
$ cd //goto root
$ ll //看看quhp 的相关值
$ chmod -R 666 quhp //把整个目录及其下的文件的权限都改成 rw-
$ ll
$ ll quhp //确认
$ cd quhp
$ chmod 755 test
$ ll
$ chmod 644 *
$ ll
7 命令行修改目录与文件的属主
$ cd //goto root
$ chown -R test.test quhp //把整个目录及其下的文件的属主改成 test.test
$ ll
$ ll quhp // 确认
$ cd quhp
$ chown root.root test
$ ll
8 查看系统的根目录的结构
$ cd /root/quhp
$ cd /
$ ll // 可以进入 dev etc var 各个目录下看看其子目录与文件
$ ll /home // 可以看到为 两个用户 ludong test 分别创建了 其工作目录
$ cd -
$ pwd // 应该回到之前的目录 /root/quhp
9 mkdir -p 参数的使用
$ cd
$ mkdir quhp // 创建已经存在目录 报错
$ ll // 注意 quhp 的修改时间
$ mkdir -p quhp // 无错返回, 且修改时间未变
$ mkdir quhp/quhp2/quhp3 // 报错
$ mkdir -p quhp/quph2/quhp3 //三级子目录成功创建
10 ls查看隐藏文件
$ cd /root/quhp
$ ls
$ ls -l
$ ls -al // 注意这三个显示的区别
$ ls -l test // 显示修改时间
$ ls -lc test // 显示写入时间
我们注意到因为在test 创建后我们对其内容一直没有写入,所以 修改时间时间就是当初的创建时间,但是在此过程中修改了文件属主与权限,所以 写入时间会变化。
11 cp -a 加属性 -r 递归复制
$ cd //goto root
$ cp -r quhp our //把整个quhp目录内容复制到our
$ ls -l //注意两个目录 quhp our 时间的变化, our 的时间应该是当前时间, 同时请关注 两目录的权限与属性的不同
$ ll quhp
$ ll our
$ cp -ar quhp our2 //在递归复制的同时进行属性复制
$ ll // our2 与 quhp 目录一模一样
$ ll our2
12 mv 的文件改名+移动
$ cd /root/quhp
$ ll
$ touch 1.txt 2.txt 3.txt 4.txt //同时创建4个空文件
$ ll
$ mv 1.txt 2.txt 4.txt quhp2 //三个文件移动到quhp2子目录
$ ll
$ ll quhp2
$ mv 3.txt quhp2/quhp3/5.txt //移动+改名
$ ll quhp2/quhp3
$ cd quhp2
$ mv *.txt quhp3 //通配符移动
$ ll quhp3 //应该是 1 2 4 5
13 rm 的默认与递归删除
$ cd /root/quhp/quhp2/quhp3
$ rm 1.txt // 需要确认后删除
$ rm -f 2.txt // 直接删除
$ ll
$ cd .. //返回quhp2 目录
$ rm -rf quhp3 //直接删除目录+文件
14 文件查看
$ cd /root/quhp/
$ cat /proc/cpuinfo // 顺序一下显示
$ tac /proc/cpuinfo // 倒序一下显示
$ cat -b /proc/cpuinfo // 空格不显示行号
$ cat -n /proc/cpuinfo // 空格也显示行号
$ cat /proc/cpuinfo /proc/meminfo /proc/meminfo /proc/cpuinfo > test // 把两个文件内容拼接重定向到 test文件中
$ cat test test >> test // 报错
$ more test //一屏显示
Space: 向下翻一页
Enter: 向下滚动一行
/字符串: 向下查询关键字 /Huge 可以看到有Huge 的那行显示在屏幕的第一行
q: 退出
$ less test // 在more 基础上可以向上
PageDown 向下翻一页
PageUp 向上翻一页
?字符串 向上查询关键字
15 文件头部跟尾部的获取
$ cd /root/quhp
$ wc -l test //获取文件行数 如 136
$ head -n 10 test
$ head -n -100 test //显示头 36 行
$ head -n -100 test | wc -l //确认就是36
$ tail -n 23 test
$ tail -n +100 test //显示 后37行,因为包含第100行
$ tail -n +100 test | wc -l
$ head -n 20 test | tail -n 10 //显示 10-20 行
4 实验四 掌握linux的安装流程
实验步骤:
1 vmware 新建一个虚拟机
2 fedora-live-cd.iso 已经在E盘
3 开机后按照流程进行硬盘安装
5 实验五 掌握linux文件系统的常见命令
实验说明: 请大家仔细查看并确认每个命令的输出结果,否则实践的意义就不是很大
实验步骤:
1 程序的退出
1.1 $ bc
输入 quit 自然退出
1.2 $ bc
在终端界面下,点击文件-》打开标签 新建一个标签, 在这个标签下输入
$ps aux | grep bc //查看第二列获得bc 的PID, 比如为 2608
$kill -9 2608
回到第一个标签下,可以看到 bc 这个进程已被杀死
1.3 $ bc
输入 Ctrl+Z 强制退出
2 Od 显示非文本文件
$od -t c /bin/ls
Touch 创建不存在文件or 修改文件时间 -a 仅修改访问时间 -m 仅修改mtime
$mkdir -p test
$cd test
$touch 1.txt
$ll // 查看文件的最近修改时间
$sleep 30 //休眠30秒
$touch 1.txt
$ll // 可以看到文件的修改时间变化了
3 umask 003 进行权限的修改,003表示在当前基础上减去该值
默认 文件 -rw-rw-rw
默认 目录 drwxrwxrwx
$umask –S //显示默认权限 u=rwx,g=rx, o=rx
$umask //数字显示 022
$ll 1.txt //可以看到它的权限是 -rw-r--r--, 因为g与o的两个w已经被去掉了
$cd ..
$ll // 可以看到 test 的权限为 drwxr-xr-x
$umask 002
$mkdir -p test2
$ll //test2 的权限为 drwxrwxr-x 比test 多了个w
$cd test2
$touch 2.txt
$ll // 2.txt 的权限为 -rw-rw-r-- 也比 2.txt 多了个w
4 $whereis ls
$locate top // 显示所有文件的绝对路径中有top 字符串的文件
5 find
-mtime n :n天之前的一天之内被更改的文件
-mtime +n: n天之前(不含n天本身)被更改的文件
-mtime –n: n天之内(含n天本身)被更改的文件
-newer file: 列出比file 还要新的文件
$find /root -mtime 0 // root 目录下当天修改过的文件
$find /etc -newer /etc/passwd // etc 目录下比 passwd 还要新的文件
6 排序
$cd /root/test
$cat /proc/meminfo /proc/cpuinfo /proc/cpuinfo /proc/meminfo > test.txt
$less test.txt
$sort test.txt > test_sorted.txt //排序
$less test_sorted.txt
$uniq test_sorted.txt > test_uniqed.txt //去冗
$less test_uniqed.txt
一条语句实现以上的功能
$cat /proc/meminfo /proc/cpuinfo /proc/cpuinfo /proc/meminfo | sort | uniq > test2.txt
$less test2.txt
7 比较
$cd /root
$mkdir old
$mkdir new
$cp -a test/* old/
$cp -a test/* new/
$diff old new // 比较两目录
$gvim new/test2.txt //分别删除某行、增加某新行、修改某行
$diff old/test2.txt new/test2.txt //分别确认 上述三个修改操作的 比较结果
$mv new/test2.txt new/test3.txt
$diff old new
8 通过ps 与grep 查看现在的活跃进程
$ps aux
$ps aux | less
$ps aux | grep usr // 过滤并显示带有 usr 字符串的行\
$ps aux | grep usr | grep 21 // 再次过滤
9 查看系统支持的文件系统类型
$ cd /lib/modules/2.6.35...fc14.i686/kernel/fs
$ ls
10 查看proc 文件系统
$ cd /proc
$ ls 其中数字目录是进程号PID, 里面是每个进程的具体信息, 下面我们具体看一下
打开一个新标签, 输入命令 $ top d 1
在另一个标签下
$ ps aux | grep top 获得该进程的PID 如 2875
$ cd /proc/2875 // 进入该PID目录
$ ls
$ cat cmdline // 可以看到该PID的命令是什么
同理可以看到该进程的其他的信息,比如 内存,cpu io 等,大家可以查看一下这些相关的文件
11 $cat /etc/fstab
可以看到 / /boot /swap 等分区的文件系统,以及对应的分区设备
去百度搜素 关键字 fstab 确认一行中每列的具体意义
12 问题: 需要获取当前机器的eth8 d IP(192.168.23.189) 并进一步获取Ip的网段前缀(192.168.23.)
$ifconfig
$ifconfig eth8
$ifconfig eth8 | grep "inet addr"
$ifconfig eth8 | grep "inet addr" | gawk '{print $2}'
$ifconfig eth8 | grep "inet addr" | gawk '{print $2}' | cut -c6-20
$ifconfig eth8 | grep "inet addr" | gawk '{print $2}' | cut -c6-16
6 实验六 熟悉linux磁盘相关的命令
实验内容:
1 在虚拟机上添加一个新盘
2 fdisk 查看大小,并分区
3 mkfs 做成 ext3 的文件系统
4 mount 挂载起来 使得可以使用
5 使用time 计时比较dd 与 cp 的差别
实验步骤:
1 通过vmware 对linux 增加一个SCSI磁盘 sdb 10G
2 启动linux, root+123456 进入系统
3 查看已经挂载起来的文件系统的使用情况 /dev/sda1 /dev/sda2 的详细情况
$ df -h
4 显示 sda sdb 两块磁盘的详细信息
$ fdisk -l
5 在sdb上创建一个3G的分区 sdb1
$ fdisk /dev/sdb
m for help p for print n for add w for save
输入n 回车; 输入p 回车 选择primary ; 输入1 回车 确认 分区号 ; 输入 起始位置,直接回车; 输入分区大小 +3068M 回车;
输入p 回车确认创建成功; 输入w 回车 将磁盘信息写回
6 给sdb1 加上标签,并确认 (不用做)
$e2label /dev/sdb1 “ludong”
$dumpe2fs /dev/sdb1 | less
7 采用dd 命令测试并记录 sdb1 分区的读写性能 分别读写2G
$ time dd if=/dev/sdb1 of=/dev/null bs=1M count=2048
记录分区读测试所得时间为 time_read_dd = ?
$ time dd if=/dev/zero of=/dev/sdb1 bs=1M count=2048
记录分区写测试所得时间为 time_write_dd = ?
8 把分区sdb1 格式化成ext3 文件系统
$ mkfs.ext3 /dev/sdb1
9 把分区挂载到指定目录下
$ mkdir –p /mnt/name
$ mount /dev/sdb1 /mnt/name
10 查看新挂载的分区 ,注意其大小变化, 因为其格式化文件系统占用了一些磁盘空间
$ df –h
11 采用dd命令在指定目录下创建一个大小为2G的文件,并记录时间
$ time dd if=/dev/zero of=/mnt/name/test.img bs=1M count=2048
记录文件写测试所得时间 time_write_file = ?
12 采用相关命令查看文件test.img 的大小
$ cd /mnt/name
$ ll –h
$ du –h
13 采用cp命令测试对该文件的读性能,并记录时间
$ time cp /mnt/name/test.img /home/
记录文件读测试所得时间 Time_read_file = ?
14 测试环境清理
$ rm -rf /home/test.img
$ umount /mnt/name
$ df -h 确认umount成功
$ fdisk /dev/sdb
输入d回车, 删除sdb1 输入w回车,写入磁盘
$ fdisk -l 确认分区删除成功
实验结果:
记录并输入 dd + cp 的两个项目的读写数据, 共四个值
7 实验七 了解与掌握磁盘分区的自动挂载
实验步骤:
0. 虚拟机配置,添加一个SCSI磁盘 sdb 大小10G
1. 在sdb上创建两个分区
$fdisk /dev/sdb
n p 1 +2048M
n p 2 +3068M
w
2. 对两个分区格式化
$mkfs -t ext3 /dev/sdb1
$mkfs -t ext4 /dev/sdb2
3. 创建两个挂载目录
$mkdir -p /test1
$mkdir -p /test2
4. 对/etc/fstab 进行备份
$cp /etc/fstab /etc/fstab.bak
5. 编辑/etc/fstab, 在后面加入两行,使得这两个分区能够在随着开机而自动挂载
$gvim /etc/fstab
/dev/sdb1 /test1 ext3 defaults 1 2
/dev/sdb2 /test2 ext4 defaults 1 2
保存退出
这里注意:
注意: 前三列分别是 设备名、挂载点、文件系统格式, 每行除了最后一列以空格间隔以外,其余都是以Tab分开
7 重启机器
$reboot
8 开机后
$df -h //可以看到开机后,sdb的两个分区都实现了自动挂载
8 实验八 了解与掌握特殊设备loop与swap
实验步骤:
0 虚拟机配置,添加一个SCSI磁盘 sdb 大小10G
1 创建大文件
#dd if=/dev/zero of=/home/loopdev bs=1M count=512
if = input file
of = output file
bs = block size
count 数量
#ll –h /home/loopdev
2 格式化
#mkfs –t ext4 /home/loopdev
挂载
# mount –o loop /home/loopdev /mnt
#df -h
3 在loop设备上再创建loop设备
#dd if=/dev/zero of=/mnt/loopdev2 bs=1M count=256
#mkfs –t ext4 /mnt/loopdev2
#mkdir -p /mnt2
# mount –o loop /mnt/loopdev2 /mnt2
#df -h
4 在mnt2 的目录下新建一个大文件,查看并确认两个loop设备的空间变化
#dd if=/dev/zero of=/mnt2/bigfile bs=1M count=100
#df -h
5 创建swap设备
#fdisk /dev/sdb
n p 1 +3068M //创建sdb1
t 修改系统ID
1
82 改成swap的ID //从linux分区切换成swap设备
w
#partprobe //让内核更新分区表
#mkswap /dev/sdb1 构建swap格式
6 挂载上
# free
#swapon /dev/sdb1
#free
7 #swapon –s 列出目前使用的swap设备有哪些?
8 同样可以使用文件构建swap
# dd if=/dev/zero bs=/tmp/swap bs=1M count=128M
#mkswap /tmp/swap
#swapon /tmp/swap
9 卸载swap设备
# swapoff /tmp/swap
# swapoff /dev/sdb1 //关掉swap
# free
9 实验九 认识与学习Bash
注意使用tab键补齐命令与文件
1 shell 的相关配置文件
#cat /etc/shells
#more /etc/passwd
#ll /bin/*sh //显示相关shell,可以看到 sh 已经是bash 的一个链接文件了
2 #cd
#mkdir -p testbash ; cd testbash
#pwd
#cat /proc/cpuinfo > test.txt ; cat /proc/meminfo >> test.txt
#more test.txt
#mkdir -p shell ; cp test.txt shell/test.bak ; \ (这里输入个回车)
ls -al shell
3 查看bash的内置命令
#type -t ll
#type -t cd
#type -t mkdir
4 学习通配符
#touch 1.txt a1.txt aa.txt abb.txt bbb.date abz.dd
#ls -l [0-9]*
#ls -l [a-z]*.txt
#ls -al *.??
#ls *[a][b]*
#ls *[!z]*
#rm -rf a*.txt
#rm -rf *.*
5 别名
#alias
#alias lm='ls -al'
#touch aaa ; rm aaa //会显示提示,询问是否删除?
#alias rm='rm -f'
#touch aaa
#lm
#rm aaa //不再提示,直接删除
#lm
#unalias lm
#alias
6 cd /e<Tab>sys<Tab>c<Tab>ne<Tab>-<Tab>
cd $HOME
cd $HOME/testbash
7 管道的再学习
#head -n 20 /etc/passwd | tail -n 10
#cat /proc/meminfo /proc/cpuinfo /proc/cpuinfo /proc/meminfo > test.txt
#less test.txt
#sort test.txt > test_sorted.txt //排序
#less test_sorted.txt
#uniq test_sorted.txt > test_uniqed.txt //去冗
#less test_uniqed.txt
一条语句实现以上的功能
#cat /proc/meminfo /proc/cpuinfo /proc/cpuinfo /proc/meminfo | sort | uniq > test2.txt
#less test2.txt
8 历史记录
#history
#history 30
#上下键
#!!: 执行最近一次使用的命令;
#!n: 其中 n 为一个具体的数字,表示执行在命令历史记录中的第 n 个命令;
#!s: 其中 s 为一个字符串,表示执行命令历史记录中以该字符串开头的最近的一个命令。
9 #env 查看常见环境变量说明
#set 查看所有变量
10 实验十 Bash的环境变量
1 变量的显示: echo
# echo $PATH 或者
# echo ${PATH}
2 变量的设置: 注意空格报错
# var1=“lang is $LANG”
# var2=‘lang is $LANG’ //注意区分
# set
# env | grep var
3 变量的取消
#unset var2
#echo $var2
#echo $var1
#var1="dir is $HOME"
#var2='dir is $HOME'
#export var1
#env | grep var1
#su quhp
#echo $var1 //因为export 所以有值
#echo $var2 //为空
#su
#关闭当前终端, 再打开一个终端
#echo $var1
#echo $var2 //应该均为空
4 环境变量的配置文件
#uname -a
#uname -r
#version='uname -r'
#version="$version"" in ludong "
#echo $version
#ls -l `locate crontab`
5
#关闭当前终端,再打开一个终端
#
#echo $version //应该为空
#cd
#cp .bash_profile .bash_profile.bak
#vim .bash_profile
version=`uname -r`
:wq
#source .bash_profile //让其立刻生效,否则只能注销重现登录才能生效
#echo $version
6
同样的道理,需要把 rm -i 改成 rm -f
#cd
#cp .bashrc .bashrc.bak
#vim .bashrc
光标移动到rm 那行
alias rm='rm -f'
:wq
#source .bashrc
#alias
#touch aaa ; rm aaa
11 实验十一 熟悉与掌握编辑器vim
1 进入工作目录
#cd
#mkdir -p testvi; cd testvi
2 编辑一个C程序
#vim hello.c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
printf("This is only hello world in linux!\n");
return 0;
}
保存退出 :wq
#gcc -g -o hello hello.c
#./hello //执行该命令
3 熟悉末行模式
#cat /proc/cpuinfo /proc/meminfo /etc/passwd > test.txt
#vim +3 test.txt
:set nu //显示行号
:/cpu //搜素关键字 cpu
:$ //光标移动到最后一行
:0 //光标移动到第一行
:set nonu //取消行号
:w test2.txt // 另存为
4 vim 的环境变量设置
vim hello.c
:set all // 显示目前所有环境参数
:set //显示与系统默认不同的设置参数
:set autouindent //自动缩排
:syntax on //显示语法检查
:set bg=dark // 注释颜色不同
;wq
5 在命令行模式整行编辑
#vim test.txt
光标移动到第五行
dd // 删除当前行
d3d // 删除当前3行
y3y // 复制当前3行
光标移动到某行
p // 把刚才的复制内容粘贴
. // 重复刚才的命令
u // undo 取消刚才操作
6
滚屏
(1)[Ctrl+U]组合键
(2)[Ctrl+D]组合键
分页
(1)[Ctrl+F]组合键
(2)[Ctrl+B]组合键
状态命令
[Ctrl+G]
7 推出vim
接着刚才的操作, test.txt 仍然处于打开状态
ZZ 保存退出
#vim test.txt
:w test2.ccc // 另存为 test2.ccc
:wq // 保存退出
:q! // 不保存强制退出
8 熟悉gvim vim 的图形版本
#gvim test.txt
可以有选择的把2-7 做一遍,完全兼容vim
再了解一下其图形化的相关界面、按钮、菜单
12 实验十二 学习shell 脚本编程
请参照课件 Linux07-Linux Shell 编程
把它里面的案例全部自己手动实现一遍!
重点放在 分支结构 与 循环结构 的编写格式与用法上。
两点注意:
一 如果 vim 实在不会用,请改用gvim
二 只写用到的代码,注释, path 等请不要浪费时间
13 实验13 用户与群组
实验重点: 用户批量添加与删除的脚本实现
实验步骤:
0 mkdir -p testuser; cd testuser
1 命令行用户的创建、密码 与删除
#useradd linux
#passwd linux
交互式连续两次输入密码 123456
#more /etc/passwd
#more /etc/shadow 应该在最后一行能看到已经成功创建
#userdel -r linux 删除
#more /etc/passwd 确认删除
2 熟悉 passwd 命令的 stdin 参数
#useradd ludong
#useradd ludong2
#passwd ludong 输入123456
#passwd ludong2 输入123456
#echo 654321 | passwd --stdin ludong2 修改ludong2 的密码
#su ludong 从root 切换到 ludong 不需要密码
#su ludong2 再从 ludong 切换到 ludong2 需要输入密码
输入 654321 应该成功进入, 说明密码已经成功修改
#su 再回到root
3 熟悉 cut与xargs
#finger root
#finger ludong ludong2
#cut -d':' -f1 /etc/passwd 回车符分隔显示所有用户
#cut -d':' -f2 /etc/passwd
#cut -d':' -f4 /etc/passwd 显示不同的列
#cut -d':' -f1 /etc/passwd | xargs -n 1 finger 显示所用用户信息
4 熟悉 pwunconv and pwconv
#more /etc/passwd
#more /etc/shadow 这两个文件都存在,且 passwd 的第二列密码显示为 x
#pwunconv 两个文件合二为一
#cat /etc/shadow 文件已经不存在
#cat /etc/passwd 第二列直接就是密码的密文
#pwconv 再把这两个文件分开
#cat /etc/passwd
#cat /etc/shadow 这两个文件又恢复原状
5 采用 newusers 批量创建用户
5.1 #groupadd -g 800 linux2012
5.2 #gvim student.txt
t001001:x:801:800::/home/t001001:/bin/bash
t001002:x:802:800::/home/t001002:/bin/bash
t001003:x:803:800::/home/t001003:/bin/bash
t001004:x:804:800::/home/t001004:/bin/bash
5.3 #gvim passwd.txt
t001001:t001001
t001002:123456
t001003:123456
t001004:123456
5.4 #newusers < student.txt
5.5 #pwunconv
#chpasswd < passwd.txt
#pwconv
5.6 #cat /etc/passwd
#cat /etc/shadow 确认四个用户已成功创建
6 利用 xargs 与userdel 组织 删除 刚才创建的用户
#cut -d':' -f1 student.txt
#cut -d':' -f1 student.txt | xargs -n 1 userdel -r
#cat /etc/passwd 确认四个用户已成功删除
7 利用 useradd 与 passwd --stdin 批量创建用户脚本
7.1 #gvim account1.sh
#!/bin/bash
if [ ! -f "$1" ]; then
echo "$1 no exist!"
exit 1
fi
usernames=`cat $1`
for username in $usernames
do
useradd $username
echo $username | passwd --stdin $username
done
exit 0
7.2 #gvim std.txt
std001
std002
std003
std004
7.3 #chmod +x *.sh
#./account1.sh std.txt 成功创建std001-004, 可去 /etc/passwd 确认
#./account1.sh std.txt2 报告 该文件不存在
#./account1.sh
7.4 #gvim delaccount1.sh
#!/bin/bash
if [ ! -f "$1" ]; then
echo "$1 no exist!"
exit 1
fi
usernames=`cat $1`
for username in $usernames
do
echo "$username will be deleted!"
userdel -r $username
done
exit 0
7.5 #chmod +x *.sh
#./delaccount1.sh std.txt 将这四个用户删除
8 再次利用 xargs 与userdel 组织 删除 刚才创建的用户
#./account1.sh std.txt 再次成功创建std001-004
#cat std.txt | xargs -n 1 userdel -r 成功删除
9 获取数字长度的小脚本
#gvim test1.sh
#!/bin/bash
num=$1
count=${#num}
echo "$num have $count "
exit 0
#chmod +x *.sh
#./test1.sh 23
#./test1.sh 999
#./test1.sh 12345678
10 获取某字符串指定子串的小脚本
#gvim test2.sh
#!/bin/bash
nu=0123456789
nu2=$nu
nu=${nu:$1:$2}
echo "$nu2 : from $1 and $2 count is $nu"
exit 0
#chmod +x *.sh
#./test2.sh 1 2
#./test2.sh 0 4
#./test2.sh 2 3
11 最后一个集大成的脚本, 只需要输入 四个产生 前缀、位数、首位、数量 就可以批量创建
#gvim account2.sh
#!/bin/bash
accountfile="user:passwd"
if [ -f "$accountfile" ]; then
mv $accountfile "$accountfile"`date +%Y%m%d`
fi
touch "$accountfile"
read -p "qianzhui: " username_start
read -p "weishu: " nu_nu
read -p "star num: " nu_start
read -p "shuliang: " nu_amount
nu_end=$(($nu_start+$nu_amount-1))
for((i=$nu_start;i<=$nu_end;i++))
do
nu_len=${#i}
nu_diff=$(($nu_nu-$nu_len))
if [ "$nu_diff" != "0" ]; then
nu_nn=00000000000
nu_nn=${nu_nn:1:$nu_diff}
fi
account="$username_start""$nu_nn""$i"
echo "$account":"$account" >> $accountfile
done
cat "$accountfile" | cut -d':' -f1 | xargs -n 1 useradd
pwunconv
chpasswd < "$accountfile"
pwconv
echo "OK"
exit 0
#chmod +x *.sh
#./account2.sh 要输入4个值, 示例如下, 可以自行确定,注意不要太多,否则比较耗时
ludonglinux
3
1
10
#cat /etc/passwd 确认
12 利用 xargs 与userdel 组织 删除 刚才创建的用户
#cut -d':' -f1 user:passwd | xargs -n 1 userdel -r
#cat /etc/passwd 确认四个用户已成功删除
14 实验14 考试环境的熟悉
实验步骤
1 在FC14 上进行 网络IP配置
系统 -》 管理 -》 网络
点击 Tab 硬件, 查看并确认 硬件网卡被系统所识别的硬件名字 (eth8)
点击 Tab 设备, 系统所默认的两个网卡 eth1 与 eth7 其实是空设备, 可通过双击 eth1 , 点击硬件设备进行确认
我们现在需要把 eth8 新建进去, 在 Tab 设备下,点击 新建 -》 以太网连接 -》 eth8 -》 静态IP设置 + DNS -》 应用
注意: 我们windows 的IP 掩码是 255.255.255.128, 所以 windwos 与 fedora14 的Ip 必须 保证或者都 <128 or >128 才能网络联通
将无效设备eth1与eth7前面的选中 取消, 点击 文件 -》 保存
打开终端 #service network restart
如果报错说明Ip地址冲突, 需要 系统 -》 管理 -》 网络 重新修改 eth8 的Ip
#history 100 > history
#cd ..
#tar -zcvf install.tgz install/*
#scp install.tgz root@192.168.23.141:/root/ 注意: 192.168.24.141 是教师用机的 fc14 机器
需要输入密码
2 确认教师用机Fc14 的IP 如 192.168.23.51 要拷贝到 /root/linux/ 目录下
3 注意做的时候 以 学号+姓名全拼 替换 20121213quhaiping
#mkdir -p 20121213quhaiping
#cd 20121213quhaiping
#ls -l
#ll
#touch test.txt
#cp /etc/fstab .
#gvim test.sh
#chmod +x *.sh
#cp /etc/passwd .
#cp /etc/shadow .
#history 200 > history
#cd ..
#tar –zcvf 20121213quhaiping.tgz 20121213quhaiping/*
#scp 20121213quhaiping.tgz root@192.168.23.51:/root/linux/
输入yes 密码 123456
4 到教师用机上确认tar 包传送成功
15 实验15 软件包的安装
实验步骤:
1 在windowsxp 上安装程序 SSHSecureShellClient-3.2.9
2 在FC14 上进行 网络IP配置
系统 -》 管理 -》 网络
点击 Tab 硬件, 查看并确认 硬件网卡被系统所识别的硬件名字 (eth8)
点击 Tab 设备, 系统所默认的两个网卡 eth1 与 eth7 其实是空设备, 可通过双击 eth1 , 点击硬件设备进行确认
我们现在需要把 eth8 新建进去, 在 Tab 设备下,点击 新建 -》 以太网连接 -》 eth8 -》 静态IP设置 + DNS -》 应用
注意: 我们windows 的IP 掩码是 255.255.255.128, 所以 windwos 与 fedora14 的Ip 必须 保证或者都 <128 or >128 才能网络联通
将无效设备eth1与eth7前面的选中 取消, 点击 文件 -》 保存
打开终端 #service network restart
如果报错说明Ip地址冲突, 需要 系统 -》 管理 -》 网络 重新修改 eth8 的Ip
3 #mkdir -p /root/install
#ping 物理机ipWinxp 能够ping通
4 进行 winxp 与 Fc14 的文件传输
在winxp上 cmd ping fc14ip 能够ping通, 假设fc14ip 为 192.168.22.95
双击 SSH Secure File Transfer Client 图标 , 进去该界面, 点击 Quick Connect, 输入
Host Name: 192.168.22.95
User Name: root
在connect 后, 输入 Password: 123456
之后就可以 通过 文件的拖拽 进行 两个机器间 的文件传输了
把 相关的rpm 与tgz 从winxp 传送到 fc14 的指定目录 /root/install
5 之后就是在fc14 上进行操作
#cd /root/install
6 首先以tar 包方式安装 sqlite-autoconf-3071300.tar.gz
#tar -zxvf sqlite-autoconf-3071300.tar.gz
#cd sqlite-autoconf-3071300
#ls // 注意 Makefile 文件 目前不存在
#less INSTALL
#less README //查看这两个文件内容,一个是 如何安装的,另一个是 软件信息说明
#./configure
#ls
#less Makefile
#make
#make install
7 再做一个 安装数据库rrd, 这是一个configure 不成功的示例
#tar zxvf rrdtool*
#cd rrdtool-*
#./configure --prefix=/usr
NOTE: 我们的虚拟机会在这里报错,告诉你某个库函数没有安装,并且给出了下载网址,为了节省时间,下面的步骤就没有必要进行了!
#make
#make install
#which rrdtool
#ldconfig # make sure you have the new rrdtool libraries linked.
8 查看并确认rpm 命令的使用
#man rpm
9 我们对gvim 对应的rpm 包进行相关的查询操作
#whersis ls // 报告说明在/bin/ls , 可以任选之前使用过的命令
#rpm -qf /bin/ls
首先找到gvim 对应哪个rpm包
#whereis gvim
#rpm -qf /usr/bin/gvim 查找该文件属于哪个rpm 输出是 vim-X11*
#rpm -q vim-X11
#rpm -qi vim-X11
#rpm -ql vim-X11
#rpm -qR vim-X11
#rpm -qa 列出所有已经安装的rpm包
#rpm -qa | grep vim
#rpm -qa | grep bash
#rpm -qa | grep gcc
10 rpm 包的验证
#rpm -V vim-X11
#mv /usr/bin/gvim /usr/bin/gvim.bak
#rpm -V vim-X11
#rpm -Vf /usr/bin/gvim
11 rpm 包的删除
#rpm -e vim-X11
#rpm -e sysstat
确认删除成功了没?
#gvim 应该报告找不到
#rpm -qa | grep vim-X11
12 yum 的使用之一 : 只下载不安装, 第一次使用时会比较慢
#yum -y install yum-downloadonly
#yum -y install vim-X11 --downloadonly --downloaddir=/root/install
#yum -y install sysstat --downloadonly --downloaddir=/root/install
其中vim-X11 是gvim 对应的rpm 包
sysstat 是用于系统性能测试的rpm 包
这两个包都应该下载到 /root/install 目录中了
13 确认我们系统装了对应的rpm没有?
#rpm -qa | grep sysstat
#rpm -qa | grep vim
#gvim // 报错说没有该命令
#sar // 也没有
14 安装 sysstat 与 vim-X11
#rpm -ivh sysstat-*.rpm
#rpm -ivh vim-X11*.rpm
再次确认我们系统安装成功了没?
#rpm -qa | grep sysstat
#rpm -qa | grep vim
查看对应的命令的具体位置
#whereis gvim
#whereis sar
--force 的使用
#rpm -ivh vim-X11*.rpm 应该报错,说已经安装过了
#rpm -ivh vim-X11*.rpm --force 强制安装 成功!
15 yum 的使用之二: 理清依赖关系,把所有的关联包一次全部安装,有时会比较耗时,请不要傻傻等待,利用这段时间并行做下面的内容
首先看一下相关的配置文件
# cat /etc/yum.conf
# cd /etc/yum.repos.d
# ls 通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用
# cat fedora.repo
#yum check-update 检查有哪些可更新的rpm包
#yum install mplayer 安装mplayer,同时自动安装相关的软件
#yum -y install licq 注意体验 -y 参数的好处
#yum -y install licq* 注意体验 * 通配符的好处,它能够把licq的所有包都装进来
删除licq包,同时删除与该包有倚赖性的包
#yum remove licq 注:同时会提示删除licq-gnome,licq-qt,licq-text,非常方便
16 测试命令sar 的使用
# sar -u 2 查看cpu的使用情况
# sar -u 2 0 以2s为监控获取cpu的信息
# sar -d 5 这是看磁盘
# sar -d 5 0 这是磁盘性能的间隔获取
1 实验一 系统信息的获取与配置
实验步骤:
0 打开vmware进入Fedora14 系统 用户选择其他, 输入root 密码123456
应用程序 -》 系统工具 -》 终端 把终端拖到桌面上来
1 命令行方式获取系统相关的信息, 点击终端
1.1 cpu $ cat /proc/cpuinfo
1.2 mem $ free or cat /proc/meminfo
1.3 disk $ fdisk –l
1.4 filesystem $ df -h
1.5 网络 $ ifconfig
$ ethtool eth0
1.6 显卡 $ lspci | grep VGA
1.7 Shell版本 $ echo $SHELL
1.8 内核版本 $ uname -a
1.9 进程 $ ps -aux
1.10 负载 $ top d 1
2 图形方式获取系统的相关信息
应用程序-》系统工具-》 系统监视器 可以获取
3 网络IP配置
系统 -》 管理 -》 网络
点击 Tab 硬件, 查看并确认 硬件网卡被系统所识别的硬件名字 (eth8)
点击 Tab 设备, 系统所默认的两个网卡 eth1 与 eth7 其实是空设备, 可通过双击 eth1 , 点击硬件设备进行确认
我们现在需要把 eth8 新建进去, 在 Tab 设备下,点击 新建 -》 以太网连接 -》 eth8 -》 静态IP设置 + DNS -》 应用
注意: 我们windows 的IP 掩码是 255.255.255.128, 所以 windwos 与 fedora14 的Ip 必须 保证或者都 <128 or >128 才能网络联通
将无效设备eth1与eth7前面的选中 取消, 点击 文件 -》 保存
重启fedora将改动生效 系统-》关机—》重启
4 重启后 $ping 物理机ipWinxp 能够ping通
$ifconfig 能够看到eth8 的固定IP 设置, 注意如果ping不通的话,很有可能是Ip地址冲突, 需要 系统 -》 管理 -》 网络 重新修改 eth8 的Ip
5 进行物理机与虚拟机的文件传输
在winxp 下
点击图标 SSH Secure File Transfer
点击 Quick Connect
Host name: linuxIp
User Name: root
点击 connect 输入 密码 123456
然后就可以通过文件的拖拽进行文件的传输。
6 附加问题:fedora14 中 在登录界面默认是不允许root登录,请网上查询,我们需要修改哪些相关的配置文件,才实现了直接以root 登录。
2 实验二 熟悉linux的常用命令
实验步骤:
1 时间相关
1.1 $ date //显示当前时间
1.2 $ date 100118002012 //设置系统时间为 2012年10月01日18:00 格式如[MMDDhhmm[YYYY]]
1.3 $ date // 确认修改成功
1.4 $ cal //当月日历
1.5 $ cal 09 2013 //指定月的日历
1.6 $ cal 2013
1.7 $ bc //计算器
1.8 $ echo $SHELL
1.9 $ echo "hello world"
1.10 $ echo $LANG
2 文件与目录相关
2.1 $ cd /root //进入目录 root
2.2 $ mkdir -p quhp //创建子目录 quhp
2.3 $ ll -l //显示目录的文件与子目录
2.4 $ ls //同样显示,但是不同效果
2.5 $ cd quhp
2.6 $ pwd
2.7 $ touch test.txt //创建文件
2.8 $ gvim test2.txt 输入一些字母后保持退出
2.9 $ ll -l
2.10 $ cat test.txt //显示文件内容
2.11 $ echo "hello everyone" > test.txt //写入内容
2.12 $ echo "hello everyone again" >> test.txt //append 内容
2.13 $ cat test2.txt >> test.txt //将test2.txt内容 append 进 test.txt
2.14 $ cat /proc/cpuinfo | less //分屏显示
2.15 $ cat /proc/cpuinfo | more //同样分屏显示,不过不能前翻
2.15 $ cat /proc/cpuinfo | grep cpu // 过滤显示
2.16 $ cp test.txt quhp.txt //文件复制
2.17 $ mv quhp.txt quhp2.txt //文件移动
2.18 $ mkdir -p /root/ludong
2.19 $ cd /root/ludong
2.20 $ cp -r /root/quhp . // 把目录quhp的所有文件跟子目录拷贝到ludong 目录下
2.21 $ rm *.txt // 删除所有 后缀名为 txt 的文件
2.22 $ cd .. // 回到上级目录
2.23 $ rm -rf ludong // 删除整个字目录 ludong
2.24 $ head -n 10 /proc/cpuinfo // 显示文件前10行
2.25 $ tail -n 20 /proc/cpuinfo // 显示文件后20行
3 其他
3.1 $ du -h /root/quhp // 目录大小
3.2 $ wc /root/quhp/test.txt // 文件行数
3.3 $ wc -c /root/quhp/test.txt // 文件字节数
3.4 $ wc -l /root/quhp/test.txt
3.5 $ wc -w /root/quhp/test.txt
3.6 $ whereis wc //
3.7 $ whereis cat
3.8 $ clear
3.9 $ man wc
3.10 $ wc -h
3.11 $ wc --help
3.12 $ man cat
3.13 $ info cat
3.14 $ history 查看刚才的所有使用过的命令
3 实验三 Linux文件与目录管理
实验内容:
主要是熟悉一下常用参数的使用
实验步骤:
1 GUI界面创建用户
系统-》管理-》用户与群组
添加用户 ludong 密码 111111
添加用户 test 密码 000000
2 GUI界面创建目录与文件
双击 root 的主文件夹 -》 右键 创建文件夹 quhp -> 双击进入 -》 右键 创建文件 test
3 点击终端
$ ll //查看 目录quhp的权限 drwxr-xr-x
$ ll quhp //查看 文件 test 的权限 -rw-r--r--
4 GUI界面修改目录权限
回到 root 目录 —》 选中 文件夹 quhp 右键 属性 -》 权限 tab
有 所有者 群组 其他 + 文件夹访问 文件访问 分别对这些下拉菜单进行修改, 点击 关闭后, 回到步骤3 进行确认改变
5 GUI界面修改文件权限
root 目录 -》 文件夹quhp -》 选中文件test 右键属性 -》 权限 tab
所有者与群组都 改成 ludong, 都有读写权限 执行 打勾 点击 关闭
$ ll quhp 注意文件 test 的权限 属主 甚至 颜色的变化
6 命令行修改目录与文件的权限
$ cd //goto root
$ ll //看看quhp 的相关值
$ chmod -R 666 quhp //把整个目录及其下的文件的权限都改成 rw-
$ ll
$ ll quhp //确认
$ cd quhp
$ chmod 755 test
$ ll
$ chmod 644 *
$ ll
7 命令行修改目录与文件的属主
$ cd //goto root
$ chown -R test.test quhp //把整个目录及其下的文件的属主改成 test.test
$ ll
$ ll quhp // 确认
$ cd quhp
$ chown root.root test
$ ll
8 查看系统的根目录的结构
$ cd /root/quhp
$ cd /
$ ll // 可以进入 dev etc var 各个目录下看看其子目录与文件
$ ll /home // 可以看到为 两个用户 ludong test 分别创建了 其工作目录
$ cd -
$ pwd // 应该回到之前的目录 /root/quhp
9 mkdir -p 参数的使用
$ cd
$ mkdir quhp // 创建已经存在目录 报错
$ ll // 注意 quhp 的修改时间
$ mkdir -p quhp // 无错返回, 且修改时间未变
$ mkdir quhp/quhp2/quhp3 // 报错
$ mkdir -p quhp/quph2/quhp3 //三级子目录成功创建
10 ls查看隐藏文件
$ cd /root/quhp
$ ls
$ ls -l
$ ls -al // 注意这三个显示的区别
$ ls -l test // 显示修改时间
$ ls -lc test // 显示写入时间
我们注意到因为在test 创建后我们对其内容一直没有写入,所以 修改时间时间就是当初的创建时间,但是在此过程中修改了文件属主与权限,所以 写入时间会变化。
11 cp -a 加属性 -r 递归复制
$ cd //goto root
$ cp -r quhp our //把整个quhp目录内容复制到our
$ ls -l //注意两个目录 quhp our 时间的变化, our 的时间应该是当前时间, 同时请关注 两目录的权限与属性的不同
$ ll quhp
$ ll our
$ cp -ar quhp our2 //在递归复制的同时进行属性复制
$ ll // our2 与 quhp 目录一模一样
$ ll our2
12 mv 的文件改名+移动
$ cd /root/quhp
$ ll
$ touch 1.txt 2.txt 3.txt 4.txt //同时创建4个空文件
$ ll
$ mv 1.txt 2.txt 4.txt quhp2 //三个文件移动到quhp2子目录
$ ll
$ ll quhp2
$ mv 3.txt quhp2/quhp3/5.txt //移动+改名
$ ll quhp2/quhp3
$ cd quhp2
$ mv *.txt quhp3 //通配符移动
$ ll quhp3 //应该是 1 2 4 5
13 rm 的默认与递归删除
$ cd /root/quhp/quhp2/quhp3
$ rm 1.txt // 需要确认后删除
$ rm -f 2.txt // 直接删除
$ ll
$ cd .. //返回quhp2 目录
$ rm -rf quhp3 //直接删除目录+文件
14 文件查看
$ cd /root/quhp/
$ cat /proc/cpuinfo // 顺序一下显示
$ tac /proc/cpuinfo // 倒序一下显示
$ cat -b /proc/cpuinfo // 空格不显示行号
$ cat -n /proc/cpuinfo // 空格也显示行号
$ cat /proc/cpuinfo /proc/meminfo /proc/meminfo /proc/cpuinfo > test // 把两个文件内容拼接重定向到 test文件中
$ cat test test >> test // 报错
$ more test //一屏显示
Space: 向下翻一页
Enter: 向下滚动一行
/字符串: 向下查询关键字 /Huge 可以看到有Huge 的那行显示在屏幕的第一行
q: 退出
$ less test // 在more 基础上可以向上
PageDown 向下翻一页
PageUp 向上翻一页
?字符串 向上查询关键字
15 文件头部跟尾部的获取
$ cd /root/quhp
$ wc -l test //获取文件行数 如 136
$ head -n 10 test
$ head -n -100 test //显示头 36 行
$ head -n -100 test | wc -l //确认就是36
$ tail -n 23 test
$ tail -n +100 test //显示 后37行,因为包含第100行
$ tail -n +100 test | wc -l
$ head -n 20 test | tail -n 10 //显示 10-20 行
4 实验四 掌握linux的安装流程
实验步骤:
1 vmware 新建一个虚拟机
2 fedora-live-cd.iso 已经在E盘
3 开机后按照流程进行硬盘安装
5 实验五 掌握linux文件系统的常见命令
实验说明: 请大家仔细查看并确认每个命令的输出结果,否则实践的意义就不是很大
实验步骤:
1 程序的退出
1.1 $ bc
输入 quit 自然退出
1.2 $ bc
在终端界面下,点击文件-》打开标签 新建一个标签, 在这个标签下输入
$ps aux | grep bc //查看第二列获得bc 的PID, 比如为 2608
$kill -9 2608
回到第一个标签下,可以看到 bc 这个进程已被杀死
1.3 $ bc
输入 Ctrl+Z 强制退出
2 Od 显示非文本文件
$od -t c /bin/ls
Touch 创建不存在文件or 修改文件时间 -a 仅修改访问时间 -m 仅修改mtime
$mkdir -p test
$cd test
$touch 1.txt
$ll // 查看文件的最近修改时间
$sleep 30 //休眠30秒
$touch 1.txt
$ll // 可以看到文件的修改时间变化了
3 umask 003 进行权限的修改,003表示在当前基础上减去该值
默认 文件 -rw-rw-rw
默认 目录 drwxrwxrwx
$umask –S //显示默认权限 u=rwx,g=rx, o=rx
$umask //数字显示 022
$ll 1.txt //可以看到它的权限是 -rw-r--r--, 因为g与o的两个w已经被去掉了
$cd ..
$ll // 可以看到 test 的权限为 drwxr-xr-x
$umask 002
$mkdir -p test2
$ll //test2 的权限为 drwxrwxr-x 比test 多了个w
$cd test2
$touch 2.txt
$ll // 2.txt 的权限为 -rw-rw-r-- 也比 2.txt 多了个w
4 $whereis ls
$locate top // 显示所有文件的绝对路径中有top 字符串的文件
5 find
-mtime n :n天之前的一天之内被更改的文件
-mtime +n: n天之前(不含n天本身)被更改的文件
-mtime –n: n天之内(含n天本身)被更改的文件
-newer file: 列出比file 还要新的文件
$find /root -mtime 0 // root 目录下当天修改过的文件
$find /etc -newer /etc/passwd // etc 目录下比 passwd 还要新的文件
6 排序
$cd /root/test
$cat /proc/meminfo /proc/cpuinfo /proc/cpuinfo /proc/meminfo > test.txt
$less test.txt
$sort test.txt > test_sorted.txt //排序
$less test_sorted.txt
$uniq test_sorted.txt > test_uniqed.txt //去冗
$less test_uniqed.txt
一条语句实现以上的功能
$cat /proc/meminfo /proc/cpuinfo /proc/cpuinfo /proc/meminfo | sort | uniq > test2.txt
$less test2.txt
7 比较
$cd /root
$mkdir old
$mkdir new
$cp -a test/* old/
$cp -a test/* new/
$diff old new // 比较两目录
$gvim new/test2.txt //分别删除某行、增加某新行、修改某行
$diff old/test2.txt new/test2.txt //分别确认 上述三个修改操作的 比较结果
$mv new/test2.txt new/test3.txt
$diff old new
8 通过ps 与grep 查看现在的活跃进程
$ps aux
$ps aux | less
$ps aux | grep usr // 过滤并显示带有 usr 字符串的行\
$ps aux | grep usr | grep 21 // 再次过滤
9 查看系统支持的文件系统类型
$ cd /lib/modules/2.6.35...fc14.i686/kernel/fs
$ ls
10 查看proc 文件系统
$ cd /proc
$ ls 其中数字目录是进程号PID, 里面是每个进程的具体信息, 下面我们具体看一下
打开一个新标签, 输入命令 $ top d 1
在另一个标签下
$ ps aux | grep top 获得该进程的PID 如 2875
$ cd /proc/2875 // 进入该PID目录
$ ls
$ cat cmdline // 可以看到该PID的命令是什么
同理可以看到该进程的其他的信息,比如 内存,cpu io 等,大家可以查看一下这些相关的文件
11 $cat /etc/fstab
可以看到 / /boot /swap 等分区的文件系统,以及对应的分区设备
去百度搜素 关键字 fstab 确认一行中每列的具体意义
12 问题: 需要获取当前机器的eth8 d IP(192.168.23.189) 并进一步获取Ip的网段前缀(192.168.23.)
$ifconfig
$ifconfig eth8
$ifconfig eth8 | grep "inet addr"
$ifconfig eth8 | grep "inet addr" | gawk '{print $2}'
$ifconfig eth8 | grep "inet addr" | gawk '{print $2}' | cut -c6-20
$ifconfig eth8 | grep "inet addr" | gawk '{print $2}' | cut -c6-16
6 实验六 熟悉linux磁盘相关的命令
实验内容:
1 在虚拟机上添加一个新盘
2 fdisk 查看大小,并分区
3 mkfs 做成 ext3 的文件系统
4 mount 挂载起来 使得可以使用
5 使用time 计时比较dd 与 cp 的差别
实验步骤:
1 通过vmware 对linux 增加一个SCSI磁盘 sdb 10G
2 启动linux, root+123456 进入系统
3 查看已经挂载起来的文件系统的使用情况 /dev/sda1 /dev/sda2 的详细情况
$ df -h
4 显示 sda sdb 两块磁盘的详细信息
$ fdisk -l
5 在sdb上创建一个3G的分区 sdb1
$ fdisk /dev/sdb
m for help p for print n for add w for save
输入n 回车; 输入p 回车 选择primary ; 输入1 回车 确认 分区号 ; 输入 起始位置,直接回车; 输入分区大小 +3068M 回车;
输入p 回车确认创建成功; 输入w 回车 将磁盘信息写回
6 给sdb1 加上标签,并确认 (不用做)
$e2label /dev/sdb1 “ludong”
$dumpe2fs /dev/sdb1 | less
7 采用dd 命令测试并记录 sdb1 分区的读写性能 分别读写2G
$ time dd if=/dev/sdb1 of=/dev/null bs=1M count=2048
记录分区读测试所得时间为 time_read_dd = ?
$ time dd if=/dev/zero of=/dev/sdb1 bs=1M count=2048
记录分区写测试所得时间为 time_write_dd = ?
8 把分区sdb1 格式化成ext3 文件系统
$ mkfs.ext3 /dev/sdb1
9 把分区挂载到指定目录下
$ mkdir –p /mnt/name
$ mount /dev/sdb1 /mnt/name
10 查看新挂载的分区 ,注意其大小变化, 因为其格式化文件系统占用了一些磁盘空间
$ df –h
11 采用dd命令在指定目录下创建一个大小为2G的文件,并记录时间
$ time dd if=/dev/zero of=/mnt/name/test.img bs=1M count=2048
记录文件写测试所得时间 time_write_file = ?
12 采用相关命令查看文件test.img 的大小
$ cd /mnt/name
$ ll –h
$ du –h
13 采用cp命令测试对该文件的读性能,并记录时间
$ time cp /mnt/name/test.img /home/
记录文件读测试所得时间 Time_read_file = ?
14 测试环境清理
$ rm -rf /home/test.img
$ umount /mnt/name
$ df -h 确认umount成功
$ fdisk /dev/sdb
输入d回车, 删除sdb1 输入w回车,写入磁盘
$ fdisk -l 确认分区删除成功
实验结果:
记录并输入 dd + cp 的两个项目的读写数据, 共四个值
7 实验七 了解与掌握磁盘分区的自动挂载
实验步骤:
0. 虚拟机配置,添加一个SCSI磁盘 sdb 大小10G
1. 在sdb上创建两个分区
$fdisk /dev/sdb
n p 1 +2048M
n p 2 +3068M
w
2. 对两个分区格式化
$mkfs -t ext3 /dev/sdb1
$mkfs -t ext4 /dev/sdb2
3. 创建两个挂载目录
$mkdir -p /test1
$mkdir -p /test2
4. 对/etc/fstab 进行备份
$cp /etc/fstab /etc/fstab.bak
5. 编辑/etc/fstab, 在后面加入两行,使得这两个分区能够在随着开机而自动挂载
$gvim /etc/fstab
/dev/sdb1 /test1 ext3 defaults 1 2
/dev/sdb2 /test2 ext4 defaults 1 2
保存退出
这里注意:
注意: 前三列分别是 设备名、挂载点、文件系统格式, 每行除了最后一列以空格间隔以外,其余都是以Tab分开
7 重启机器
$reboot
8 开机后
$df -h //可以看到开机后,sdb的两个分区都实现了自动挂载
8 实验八 了解与掌握特殊设备loop与swap
实验步骤:
0 虚拟机配置,添加一个SCSI磁盘 sdb 大小10G
1 创建大文件
#dd if=/dev/zero of=/home/loopdev bs=1M count=512
if = input file
of = output file
bs = block size
count 数量
#ll –h /home/loopdev
2 格式化
#mkfs –t ext4 /home/loopdev
挂载
# mount –o loop /home/loopdev /mnt
#df -h
3 在loop设备上再创建loop设备
#dd if=/dev/zero of=/mnt/loopdev2 bs=1M count=256
#mkfs –t ext4 /mnt/loopdev2
#mkdir -p /mnt2
# mount –o loop /mnt/loopdev2 /mnt2
#df -h
4 在mnt2 的目录下新建一个大文件,查看并确认两个loop设备的空间变化
#dd if=/dev/zero of=/mnt2/bigfile bs=1M count=100
#df -h
5 创建swap设备
#fdisk /dev/sdb
n p 1 +3068M //创建sdb1
t 修改系统ID
1
82 改成swap的ID //从linux分区切换成swap设备
w
#partprobe //让内核更新分区表
#mkswap /dev/sdb1 构建swap格式
6 挂载上
# free
#swapon /dev/sdb1
#free
7 #swapon –s 列出目前使用的swap设备有哪些?
8 同样可以使用文件构建swap
# dd if=/dev/zero bs=/tmp/swap bs=1M count=128M
#mkswap /tmp/swap
#swapon /tmp/swap
9 卸载swap设备
# swapoff /tmp/swap
# swapoff /dev/sdb1 //关掉swap
# free
9 实验九 认识与学习Bash
注意使用tab键补齐命令与文件
1 shell 的相关配置文件
#cat /etc/shells
#more /etc/passwd
#ll /bin/*sh //显示相关shell,可以看到 sh 已经是bash 的一个链接文件了
2 #cd
#mkdir -p testbash ; cd testbash
#pwd
#cat /proc/cpuinfo > test.txt ; cat /proc/meminfo >> test.txt
#more test.txt
#mkdir -p shell ; cp test.txt shell/test.bak ; \ (这里输入个回车)
ls -al shell
3 查看bash的内置命令
#type -t ll
#type -t cd
#type -t mkdir
4 学习通配符
#touch 1.txt a1.txt aa.txt abb.txt bbb.date abz.dd
#ls -l [0-9]*
#ls -l [a-z]*.txt
#ls -al *.??
#ls *[a][b]*
#ls *[!z]*
#rm -rf a*.txt
#rm -rf *.*
5 别名
#alias
#alias lm='ls -al'
#touch aaa ; rm aaa //会显示提示,询问是否删除?
#alias rm='rm -f'
#touch aaa
#lm
#rm aaa //不再提示,直接删除
#lm
#unalias lm
#alias
6 cd /e<Tab>sys<Tab>c<Tab>ne<Tab>-<Tab>
cd $HOME
cd $HOME/testbash
7 管道的再学习
#head -n 20 /etc/passwd | tail -n 10
#cat /proc/meminfo /proc/cpuinfo /proc/cpuinfo /proc/meminfo > test.txt
#less test.txt
#sort test.txt > test_sorted.txt //排序
#less test_sorted.txt
#uniq test_sorted.txt > test_uniqed.txt //去冗
#less test_uniqed.txt
一条语句实现以上的功能
#cat /proc/meminfo /proc/cpuinfo /proc/cpuinfo /proc/meminfo | sort | uniq > test2.txt
#less test2.txt
8 历史记录
#history
#history 30
#上下键
#!!: 执行最近一次使用的命令;
#!n: 其中 n 为一个具体的数字,表示执行在命令历史记录中的第 n 个命令;
#!s: 其中 s 为一个字符串,表示执行命令历史记录中以该字符串开头的最近的一个命令。
9 #env 查看常见环境变量说明
#set 查看所有变量
10 实验十 Bash的环境变量
1 变量的显示: echo
# echo $PATH 或者
# echo ${PATH}
2 变量的设置: 注意空格报错
# var1=“lang is $LANG”
# var2=‘lang is $LANG’ //注意区分
# set
# env | grep var
3 变量的取消
#unset var2
#echo $var2
#echo $var1
#var1="dir is $HOME"
#var2='dir is $HOME'
#export var1
#env | grep var1
#su quhp
#echo $var1 //因为export 所以有值
#echo $var2 //为空
#su
#关闭当前终端, 再打开一个终端
#echo $var1
#echo $var2 //应该均为空
4 环境变量的配置文件
#uname -a
#uname -r
#version='uname -r'
#version="$version"" in ludong "
#echo $version
#ls -l `locate crontab`
5
#关闭当前终端,再打开一个终端
#
#echo $version //应该为空
#cd
#cp .bash_profile .bash_profile.bak
#vim .bash_profile
version=`uname -r`
:wq
#source .bash_profile //让其立刻生效,否则只能注销重现登录才能生效
#echo $version
6
同样的道理,需要把 rm -i 改成 rm -f
#cd
#cp .bashrc .bashrc.bak
#vim .bashrc
光标移动到rm 那行
alias rm='rm -f'
:wq
#source .bashrc
#alias
#touch aaa ; rm aaa
11 实验十一 熟悉与掌握编辑器vim
1 进入工作目录
#cd
#mkdir -p testvi; cd testvi
2 编辑一个C程序
#vim hello.c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
printf("This is only hello world in linux!\n");
return 0;
}
保存退出 :wq
#gcc -g -o hello hello.c
#./hello //执行该命令
3 熟悉末行模式
#cat /proc/cpuinfo /proc/meminfo /etc/passwd > test.txt
#vim +3 test.txt
:set nu //显示行号
:/cpu //搜素关键字 cpu
:$ //光标移动到最后一行
:0 //光标移动到第一行
:set nonu //取消行号
:w test2.txt // 另存为
4 vim 的环境变量设置
vim hello.c
:set all // 显示目前所有环境参数
:set //显示与系统默认不同的设置参数
:set autouindent //自动缩排
:syntax on //显示语法检查
:set bg=dark // 注释颜色不同
;wq
5 在命令行模式整行编辑
#vim test.txt
光标移动到第五行
dd // 删除当前行
d3d // 删除当前3行
y3y // 复制当前3行
光标移动到某行
p // 把刚才的复制内容粘贴
. // 重复刚才的命令
u // undo 取消刚才操作
6
滚屏
(1)[Ctrl+U]组合键
(2)[Ctrl+D]组合键
分页
(1)[Ctrl+F]组合键
(2)[Ctrl+B]组合键
状态命令
[Ctrl+G]
7 推出vim
接着刚才的操作, test.txt 仍然处于打开状态
ZZ 保存退出
#vim test.txt
:w test2.ccc // 另存为 test2.ccc
:wq // 保存退出
:q! // 不保存强制退出
8 熟悉gvim vim 的图形版本
#gvim test.txt
可以有选择的把2-7 做一遍,完全兼容vim
再了解一下其图形化的相关界面、按钮、菜单
12 实验十二 学习shell 脚本编程
请参照课件 Linux07-Linux Shell 编程
把它里面的案例全部自己手动实现一遍!
重点放在 分支结构 与 循环结构 的编写格式与用法上。
两点注意:
一 如果 vim 实在不会用,请改用gvim
二 只写用到的代码,注释, path 等请不要浪费时间
13 实验13 用户与群组
实验重点: 用户批量添加与删除的脚本实现
实验步骤:
0 mkdir -p testuser; cd testuser
1 命令行用户的创建、密码 与删除
#useradd linux
#passwd linux
交互式连续两次输入密码 123456
#more /etc/passwd
#more /etc/shadow 应该在最后一行能看到已经成功创建
#userdel -r linux 删除
#more /etc/passwd 确认删除
2 熟悉 passwd 命令的 stdin 参数
#useradd ludong
#useradd ludong2
#passwd ludong 输入123456
#passwd ludong2 输入123456
#echo 654321 | passwd --stdin ludong2 修改ludong2 的密码
#su ludong 从root 切换到 ludong 不需要密码
#su ludong2 再从 ludong 切换到 ludong2 需要输入密码
输入 654321 应该成功进入, 说明密码已经成功修改
#su 再回到root
3 熟悉 cut与xargs
#finger root
#finger ludong ludong2
#cut -d':' -f1 /etc/passwd 回车符分隔显示所有用户
#cut -d':' -f2 /etc/passwd
#cut -d':' -f4 /etc/passwd 显示不同的列
#cut -d':' -f1 /etc/passwd | xargs -n 1 finger 显示所用用户信息
4 熟悉 pwunconv and pwconv
#more /etc/passwd
#more /etc/shadow 这两个文件都存在,且 passwd 的第二列密码显示为 x
#pwunconv 两个文件合二为一
#cat /etc/shadow 文件已经不存在
#cat /etc/passwd 第二列直接就是密码的密文
#pwconv 再把这两个文件分开
#cat /etc/passwd
#cat /etc/shadow 这两个文件又恢复原状
5 采用 newusers 批量创建用户
5.1 #groupadd -g 800 linux2012
5.2 #gvim student.txt
t001001:x:801:800::/home/t001001:/bin/bash
t001002:x:802:800::/home/t001002:/bin/bash
t001003:x:803:800::/home/t001003:/bin/bash
t001004:x:804:800::/home/t001004:/bin/bash
5.3 #gvim passwd.txt
t001001:t001001
t001002:123456
t001003:123456
t001004:123456
5.4 #newusers < student.txt
5.5 #pwunconv
#chpasswd < passwd.txt
#pwconv
5.6 #cat /etc/passwd
#cat /etc/shadow 确认四个用户已成功创建
6 利用 xargs 与userdel 组织 删除 刚才创建的用户
#cut -d':' -f1 student.txt
#cut -d':' -f1 student.txt | xargs -n 1 userdel -r
#cat /etc/passwd 确认四个用户已成功删除
7 利用 useradd 与 passwd --stdin 批量创建用户脚本
7.1 #gvim account1.sh
#!/bin/bash
if [ ! -f "$1" ]; then
echo "$1 no exist!"
exit 1
fi
usernames=`cat $1`
for username in $usernames
do
useradd $username
echo $username | passwd --stdin $username
done
exit 0
7.2 #gvim std.txt
std001
std002
std003
std004
7.3 #chmod +x *.sh
#./account1.sh std.txt 成功创建std001-004, 可去 /etc/passwd 确认
#./account1.sh std.txt2 报告 该文件不存在
#./account1.sh
7.4 #gvim delaccount1.sh
#!/bin/bash
if [ ! -f "$1" ]; then
echo "$1 no exist!"
exit 1
fi
usernames=`cat $1`
for username in $usernames
do
echo "$username will be deleted!"
userdel -r $username
done
exit 0
7.5 #chmod +x *.sh
#./delaccount1.sh std.txt 将这四个用户删除
8 再次利用 xargs 与userdel 组织 删除 刚才创建的用户
#./account1.sh std.txt 再次成功创建std001-004
#cat std.txt | xargs -n 1 userdel -r 成功删除
9 获取数字长度的小脚本
#gvim test1.sh
#!/bin/bash
num=$1
count=${#num}
echo "$num have $count "
exit 0
#chmod +x *.sh
#./test1.sh 23
#./test1.sh 999
#./test1.sh 12345678
10 获取某字符串指定子串的小脚本
#gvim test2.sh
#!/bin/bash
nu=0123456789
nu2=$nu
nu=${nu:$1:$2}
echo "$nu2 : from $1 and $2 count is $nu"
exit 0
#chmod +x *.sh
#./test2.sh 1 2
#./test2.sh 0 4
#./test2.sh 2 3
11 最后一个集大成的脚本, 只需要输入 四个产生 前缀、位数、首位、数量 就可以批量创建
#gvim account2.sh
#!/bin/bash
accountfile="user:passwd"
if [ -f "$accountfile" ]; then
mv $accountfile "$accountfile"`date +%Y%m%d`
fi
touch "$accountfile"
read -p "qianzhui: " username_start
read -p "weishu: " nu_nu
read -p "star num: " nu_start
read -p "shuliang: " nu_amount
nu_end=$(($nu_start+$nu_amount-1))
for((i=$nu_start;i<=$nu_end;i++))
do
nu_len=${#i}
nu_diff=$(($nu_nu-$nu_len))
if [ "$nu_diff" != "0" ]; then
nu_nn=00000000000
nu_nn=${nu_nn:1:$nu_diff}
fi
account="$username_start""$nu_nn""$i"
echo "$account":"$account" >> $accountfile
done
cat "$accountfile" | cut -d':' -f1 | xargs -n 1 useradd
pwunconv
chpasswd < "$accountfile"
pwconv
echo "OK"
exit 0
#chmod +x *.sh
#./account2.sh 要输入4个值, 示例如下, 可以自行确定,注意不要太多,否则比较耗时
ludonglinux
3
1
10
#cat /etc/passwd 确认
12 利用 xargs 与userdel 组织 删除 刚才创建的用户
#cut -d':' -f1 user:passwd | xargs -n 1 userdel -r
#cat /etc/passwd 确认四个用户已成功删除
14 实验14 考试环境的熟悉
实验步骤
1 在FC14 上进行 网络IP配置
系统 -》 管理 -》 网络
点击 Tab 硬件, 查看并确认 硬件网卡被系统所识别的硬件名字 (eth8)
点击 Tab 设备, 系统所默认的两个网卡 eth1 与 eth7 其实是空设备, 可通过双击 eth1 , 点击硬件设备进行确认
我们现在需要把 eth8 新建进去, 在 Tab 设备下,点击 新建 -》 以太网连接 -》 eth8 -》 静态IP设置 + DNS -》 应用
注意: 我们windows 的IP 掩码是 255.255.255.128, 所以 windwos 与 fedora14 的Ip 必须 保证或者都 <128 or >128 才能网络联通
将无效设备eth1与eth7前面的选中 取消, 点击 文件 -》 保存
打开终端 #service network restart
如果报错说明Ip地址冲突, 需要 系统 -》 管理 -》 网络 重新修改 eth8 的Ip
#history 100 > history
#cd ..
#tar -zcvf install.tgz install/*
#scp install.tgz root@192.168.23.141:/root/ 注意: 192.168.24.141 是教师用机的 fc14 机器
需要输入密码
2 确认教师用机Fc14 的IP 如 192.168.23.51 要拷贝到 /root/linux/ 目录下
3 注意做的时候 以 学号+姓名全拼 替换 20121213quhaiping
#mkdir -p 20121213quhaiping
#cd 20121213quhaiping
#ls -l
#ll
#touch test.txt
#cp /etc/fstab .
#gvim test.sh
#chmod +x *.sh
#cp /etc/passwd .
#cp /etc/shadow .
#history 200 > history
#cd ..
#tar –zcvf 20121213quhaiping.tgz 20121213quhaiping/*
#scp 20121213quhaiping.tgz root@192.168.23.51:/root/linux/
输入yes 密码 123456
4 到教师用机上确认tar 包传送成功
15 实验15 软件包的安装
实验步骤:
1 在windowsxp 上安装程序 SSHSecureShellClient-3.2.9
2 在FC14 上进行 网络IP配置
系统 -》 管理 -》 网络
点击 Tab 硬件, 查看并确认 硬件网卡被系统所识别的硬件名字 (eth8)
点击 Tab 设备, 系统所默认的两个网卡 eth1 与 eth7 其实是空设备, 可通过双击 eth1 , 点击硬件设备进行确认
我们现在需要把 eth8 新建进去, 在 Tab 设备下,点击 新建 -》 以太网连接 -》 eth8 -》 静态IP设置 + DNS -》 应用
注意: 我们windows 的IP 掩码是 255.255.255.128, 所以 windwos 与 fedora14 的Ip 必须 保证或者都 <128 or >128 才能网络联通
将无效设备eth1与eth7前面的选中 取消, 点击 文件 -》 保存
打开终端 #service network restart
如果报错说明Ip地址冲突, 需要 系统 -》 管理 -》 网络 重新修改 eth8 的Ip
3 #mkdir -p /root/install
#ping 物理机ipWinxp 能够ping通
4 进行 winxp 与 Fc14 的文件传输
在winxp上 cmd ping fc14ip 能够ping通, 假设fc14ip 为 192.168.22.95
双击 SSH Secure File Transfer Client 图标 , 进去该界面, 点击 Quick Connect, 输入
Host Name: 192.168.22.95
User Name: root
在connect 后, 输入 Password: 123456
之后就可以 通过 文件的拖拽 进行 两个机器间 的文件传输了
把 相关的rpm 与tgz 从winxp 传送到 fc14 的指定目录 /root/install
5 之后就是在fc14 上进行操作
#cd /root/install
6 首先以tar 包方式安装 sqlite-autoconf-3071300.tar.gz
#tar -zxvf sqlite-autoconf-3071300.tar.gz
#cd sqlite-autoconf-3071300
#ls // 注意 Makefile 文件 目前不存在
#less INSTALL
#less README //查看这两个文件内容,一个是 如何安装的,另一个是 软件信息说明
#./configure
#ls
#less Makefile
#make
#make install
7 再做一个 安装数据库rrd, 这是一个configure 不成功的示例
#tar zxvf rrdtool*
#cd rrdtool-*
#./configure --prefix=/usr
NOTE: 我们的虚拟机会在这里报错,告诉你某个库函数没有安装,并且给出了下载网址,为了节省时间,下面的步骤就没有必要进行了!
#make
#make install
#which rrdtool
#ldconfig # make sure you have the new rrdtool libraries linked.
8 查看并确认rpm 命令的使用
#man rpm
9 我们对gvim 对应的rpm 包进行相关的查询操作
#whersis ls // 报告说明在/bin/ls , 可以任选之前使用过的命令
#rpm -qf /bin/ls
首先找到gvim 对应哪个rpm包
#whereis gvim
#rpm -qf /usr/bin/gvim 查找该文件属于哪个rpm 输出是 vim-X11*
#rpm -q vim-X11
#rpm -qi vim-X11
#rpm -ql vim-X11
#rpm -qR vim-X11
#rpm -qa 列出所有已经安装的rpm包
#rpm -qa | grep vim
#rpm -qa | grep bash
#rpm -qa | grep gcc
10 rpm 包的验证
#rpm -V vim-X11
#mv /usr/bin/gvim /usr/bin/gvim.bak
#rpm -V vim-X11
#rpm -Vf /usr/bin/gvim
11 rpm 包的删除
#rpm -e vim-X11
#rpm -e sysstat
确认删除成功了没?
#gvim 应该报告找不到
#rpm -qa | grep vim-X11
12 yum 的使用之一 : 只下载不安装, 第一次使用时会比较慢
#yum -y install yum-downloadonly
#yum -y install vim-X11 --downloadonly --downloaddir=/root/install
#yum -y install sysstat --downloadonly --downloaddir=/root/install
其中vim-X11 是gvim 对应的rpm 包
sysstat 是用于系统性能测试的rpm 包
这两个包都应该下载到 /root/install 目录中了
13 确认我们系统装了对应的rpm没有?
#rpm -qa | grep sysstat
#rpm -qa | grep vim
#gvim // 报错说没有该命令
#sar // 也没有
14 安装 sysstat 与 vim-X11
#rpm -ivh sysstat-*.rpm
#rpm -ivh vim-X11*.rpm
再次确认我们系统安装成功了没?
#rpm -qa | grep sysstat
#rpm -qa | grep vim
查看对应的命令的具体位置
#whereis gvim
#whereis sar
--force 的使用
#rpm -ivh vim-X11*.rpm 应该报错,说已经安装过了
#rpm -ivh vim-X11*.rpm --force 强制安装 成功!
15 yum 的使用之二: 理清依赖关系,把所有的关联包一次全部安装,有时会比较耗时,请不要傻傻等待,利用这段时间并行做下面的内容
首先看一下相关的配置文件
# cat /etc/yum.conf
# cd /etc/yum.repos.d
# ls 通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用
# cat fedora.repo
#yum check-update 检查有哪些可更新的rpm包
#yum install mplayer 安装mplayer,同时自动安装相关的软件
#yum -y install licq 注意体验 -y 参数的好处
#yum -y install licq* 注意体验 * 通配符的好处,它能够把licq的所有包都装进来
删除licq包,同时删除与该包有倚赖性的包
#yum remove licq 注:同时会提示删除licq-gnome,licq-qt,licq-text,非常方便
16 测试命令sar 的使用
# sar -u 2 查看cpu的使用情况
# sar -u 2 0 以2s为监控获取cpu的信息
# sar -d 5 这是看磁盘
# sar -d 5 0 这是磁盘性能的间隔获取
相关文章推荐
- Linux命令:关于数据库的Linux命令 不断更新学习中~~
- 【Linux基础学习之二】关于Linux的一些基本命令(ls命令、cd命令、mv命令、cp命令…)
- 【Linux基础学习之二】关于Linux的一些基本命令(ls命令、cd命令、mv命令、cp命令…)
- linux学习类目:常见命令(持续更新)
- 刚接触到linux,对一些命令的学习,做个笔记
- 【2015/9/27】Linux学习日志_Day2 终端命令 一些网络命令
- fedora学习笔记 5:关于用grub命令启动系统的补充
- 菜鸟学习linux笔记与练习-----第一天。一些初级命令以及基本用户管理
- 关于Linux_shell中的管道命令pipe “|”的简单学习和使用
- ROS学习之关于服务的一些命令_总结
- 写得蛮好的linux学习笔记(二)(一些常用的基本命令)
- Linux工作中常用到的一些命令(持续更新)常用的
- 学习linux中一些基本命令指令
- 关于Linux中动态库的一些学习
- 关于ubuntu(server版)的一些命令<更新中>
- linux的一些基本命令(关于文件操作, 进程操作,以及/boot问题)
- 学习笔记 (Linux和mysql的一些命令和总结) [第十课]
- linux Apache配置中关于 每天更新日志配置命令
- 菜鸟学习linux笔记与练习-----第二天。一些基本命令以及初级网络配置
- 关于在学习知识和运用知识中的一些个人的见解(后续会持续更新)