您的位置:首页 > 运维架构 > Linux

大学里关于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 这是磁盘性能的间隔获取   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: