C/C++

第3课 SHELL中的重定向和管道

点击这里 可以赞助果子哦 当然不赞助也是可以免费观看的    下载地址: http://pan.baidu.com/s/1otddm                           1. 什么叫重定向 将输入或输出重新指定到别的位置。 2. 重定向输出 2.1. 命令执行数据流 文件/设备---- 标准输入 -->命令 --- 标准输出 -->文件/设备                            |                                   标准错误                                      ↓                                               文件/设备 直接输入:ls ?l > lsoutput.txt 追加:ls ?l /home >> lsoutput.txt 输出到空设备:/dev/null “>” 代表重定向到哪里 “1” 表示stdout标准输出,系统默认值是1 ">/dev/null"等同于"1>/dev/null" “2” 表示stderr标准错误 “&” 表示等同于的意思,2>&1,表示2的输出重定向等同于1 举例:killall ser > /dev/null 2>&1 3. 重定向输入 3.1. shell终端中交互式输入内容 格式:cat >> 2.txt <<EOF    EOF 3.2. 从一个文件中读取内容赋值给一个变量 格式:read variable < filename 4. 管道 管道好比自来水管,从前往后流! 举例: 1) 将指定文件夹内的文件按文件大小从小到大排列。 2) 查看mysql进程是否存在 3) 查询一个软件包(rpm)的安装信息 利用管道和重定向将查询到的软件安装信息输出到指定文件
阅读全文
C/C++

第2课 SHELL中的变量

点击这里 可以赞助果子哦 当然不赞助也是可以免费观看的 下载地址: http://pan.baidu.com/s/1otddm 1. 变量的分类 1.1. 系统环境变量 系统本身所有,通常为大写字母 系统变量通过set或declare指令进行查看 1.2. UDV变量(user defined variable) 用户创建和维护,建议大写(为什么?) 原因: 避免冲突与混淆,因为Linux系统中命令全部采用小写的方式 2. 变量的属性和定义 2.1. 变量的属性 1) Shell中所有变量定义都为字符串。 2) 变量区分大小写,如:foo和Foo是两个不同的变量 3) 变量必须以字母或下划线开头,不得有”,”,”:”,”\”等特殊字符。 3. 变量的声明 1) 变量的定义 变量名=值  (变量名与值之间”=”号没有空格) 举例:LANG=cn 与LAGN=  en    LANG =en 2) 声明带空格变量 需要加上引号??”” 举例:MY=23 67 3) 声明一个只读变量 readonly MY_UDV=guozi 4) 修改变量 修改环境变量 例:PATH=$PATH:/opt/bin 修改用户自定义变量 例:SRC=”guozi” 4. 变量的使用 变量前加“$”符号 echo $HOME  或echo ${HOME} echo $USER或echo ${USER} 思考:为什么要使用变量?为什么要添加界定符:{} ?
阅读全文
Shell

第1 课 学习shell的意义

点击这里 可以赞助果子哦 当然不赞助也是可以免费观看的 下载地址: http://pan.baidu.com/s/1otddm 一、什么是shell? Shell 是介于用户与系统之间,帮助用户与系统进行沟通的工具。 除了文字模式的 shell 外,GNOME、KDE这类图形界面也属于 shell 的范畴。我们通常提到 shell 时都是指狭义的 shell,即文字模式的 shell。 二、Linux中有哪些shell 一般来说,shell可以分成两类。第一类是由Bourneshell衍生出来的包括sh,ksh,bash,与zsh。第二类是由Cshell衍生出来的,包括csh与tcsh。除此之外还有一个rc。 三、为什么要学习 shell 1. 图形用户界面??只是一个程序套件,文字模式的shell 功能和能执行的任务则比图形界面要强得多。 2. shell 是文字模式,因此远程登录和传输的速度比图形界面更快 3. shell 使用更方便。在图形界面需要打开许多窗口执行许多次点击的任务,使用 shell 也许只需要简单几个命令就能完成了。 举例: (1) 查看一个文件或目录的大小  ls du (2) 定时执行一个任务 四、学习哪种shell Linux 下支持的 shell 有许多种,但我们只要学习最应用最广泛的 bash shell 就行了。而且现在主要的 Linux 发行版都使用 bash 做为默认的管理 shell。所以不论使用哪种 Linux 发行版,都无可避免地要学习 bash。 五、如何写一个简单的bash  shell 1) 可以使用任何文本编辑工具编写,如:vim #!/bin/bash   #放置在文件的开头 2) 设置脚本执行权限 chmod a+x  filename chmod 700 filename 3) 执行脚本 bash your_script.sh sh your_script.sh ./your_script.sh
阅读全文

Linux kernel task 1:Hello world

开始这个计划源于一个Linux kernel challenge.网址为: http://eudyptula-challenge.org/ 想要参加的朋友可以发送电子邮件报名参加。以下是我的第一个任务内容: This is Task 01 of the Eudyptula Challenge ------------------------------------------   Write a Linux kernel module, and stand-alone Makefile, that when loaded prints to the kernel debug log level, "Hello World!"  Be sure to make the module unloadable as well.   The Makefile should build the kernel module against the source for the currently running kernel, or, use an environment variable to specify what kernel tree to build it against.   Please show proof of this module being built, and running, in your kernel.  What this proof is is up to you.  I'm sure you can come up with something.  Also be sure to send the kernel module you wrote, along with the Makefile you created to build the module.   Remember to use your ID assigned in the Subject: line when responding to this task, so that I can figure out who to attribute it to.  You can just respond to the task with the answers and all should be fine.   If you forgot, your id is "xxxxxxxxxx".  But of course you have not forgotten that yet, you are better than that. 好了,开始我的Task1:hello world! 用VIM新建hello.c #include <linux/module.h> #include <linux/init.h> #include <linux/version.h> #include <linux/kernel.h> MODULE_LICENSE("GPL"); MODULE_AUTHOR("chin,chenqiin@gmail.com"); MODULE_DESCRIPTION("Task 01 of the Eudyptula Challenge"); MODULE_LICENSE("GPL"); MODULE_VERSION("Version-0.0.2"); static int hello_init(void) { printk(KERN_DEBUG"Hello,world!\n"); return 0; } static void hello_exit(void) { printk(KERN_DEBUG"Hello exit!\n"); } module_init(hello_init); module_exit(hello_exit); 创建一个Makefile #Change KDIR to your kernel src KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) obj-m := hello.o all: make -C $(KDIR) M=$(PWD) modules clean: make -C $(KDIR) M=$(PWD) clean 执行make命令就会看到生成一个hello.ko的文件: 执行加载: insmod hello.ko...
阅读全文

python中元组与列表的区别

python中使用元组与列表的主要区别在于,元组创建后不可修改,列表在任何时刻都可以修改。元组举例:breakfast = ("bread,milk,tea") print(breakfast) 输出:bread,milk,tea 注意,元组中的元素用()括起来,使用时:breakfast <=>"bread" 列表举例:sports =  print(sports) 输出: 注意,列表中使用将列表中的元素括起来,使用时:sports <=> "pingpong" 往列表中添加单个元素: sports.append("run")往列表中添加多个元素或元组 sports =  breakfast = ("bread","milk","tea") print(sports) sports.extend(breakfast) print(sports) sports.extend()   //此处需用 print(sports) 输出:
阅读全文