鸟哥linux读书笔记三

第十章vim编辑器
常用命令
[Ctrl]+f 向下翻页,相当于[page Down]
[Ctrl]+b 向上翻页,相当于[Page Up]
0 数字0,光标移动到这一行最前面的字符处
$ 光标移动到这一行最后面的字符处
G 光标移动到该文件最后一行
gg/1G 光标移动到该文件第一行
15G 移动到该文件的第15行
n 光标下移n行
/word 光标所在处向下查找为word的字符串
n 下一个
N 向上查找,下一个
:n1,n2s/word1/word2/g 在第n1与n2行之间寻找word1,并将该字符串替换为word2
:1,$s/word1/word2/g 从第一行到最后一行寻找word1,并替换为word2
:1,$s/word1/word2/gc 替换前向用户确认(confirm)
x/X 向后/向前删除一个字符
15x 表示删除光标所在位置的后面15个字符
dd 删除光标所在行
ndd 删除光标所在行向下n行
yy 复制光标所在行
nyy 复制光标所在行向下n行
nyw 复制n个单词
p/P 小写p,将已复制的数据在光标的下一行贴上,大写P则贴在光标上一行。
cw 更改光标所在处的单词到单词结尾处
3cw 从光标开始处计算,更改3个单词(也就是删除3个单词)
u 复原前一个动作
[ctrl]+r 重做上一动作,通常与u配合使用
J 清除光标所在行与上一行之间的空格,把光标行和上一行连在一起。
o/O 小写o,在光标所在行的下一行处插入一新行
i/I 从光标所在处插入
a/A 从光标所在处的下一字符处插入
r/R 替换光标所在的字符。R替换直到按下[ESC]
:w 保存文件
:w! 强制保存文件
:q 离开vi
:wq/:wq! 保存后离开
:set nu 设置显示行号
:set nonu 取消行号

第十一章常用shell
1.变量的定义:
PATH=$PATH:/home/dmtsai/bin
PATH="$PATH":/home/dmtsai/bin
PATH=${PATH}:/home/dmtsai/bin
通常采用后2中方式,如:name="$name"yes 或name=${name}yes
2.环境变量
env查看环境变量
PATH=$PATH:/home/dmtsai/bin 重新定义环境变量PATH当前窗口有效
export PATH=${PATH}:/home/dmtsai/bin 新定义环境变量PATH,系统重启失效
修改/etc/profile,或/home/myuser/.bash_profile文件,环境变量永久生效,需要重启
如果不想重启,可用source /etc/profile或 source /home/myuser/.bash_profile

注:如果是root用户登陆,修改/etc/profile,对应的home中没有.bash_profile

java环境变量,在/etc/profile最后添加
export JAVA_HOME=/user/java/jdk1.6.0_26
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3 history 查看历史命令
!66 执行第66笔指令
!! 执行上一指令
!al 执行最近以al为头的指令
4.配置别名
A alias rm='rm -i'
B 修改/etc/bashrc或~/.bashrc,修改完后需要重启,可用source命令(不用重启)source ~/.bash_rc
5.标准输入/标准输出/标准错误输出(分别对应0/1/2)
例如
/dev/null 黑洞装置
find /home -name .bashrc 2> /dev/null 只在屏幕输出正确信息,错误信息被丢掉
find /home -name .bashrc >> list_right 2>&1 正确与错误信息都记录在同一文件中
find /home -name .bashrc >> list_right 2>> list_error 追加记录正确信息和错误信息
6.wc查看文件多少行,多少词,多少字符
wc -lwm /etc/manconfig

第十二章正规表示法与文件格式化处理


第十三章学习shell Scripts
1.根据日期和用户输入的名称自动创建文件
autoCreateFile.sh
PATH=/bin:/sbin
export PATH
read -p "input your filename:" filename
date1=$(date +%Y%m%d)
date2=$(date --date='2 days ago' +%Y%m%d)
file1=${filename}${date1}
file2=${filename}${date2}
touch ${file1}
touch ${file2}
执行sh autoCreateFile.sh
其他略

第十四章 账号管理
1.每个系统文件都有所谓的拥有者ID与拥有者群组,当我们要显示文件属性时候,系统会根据/etc/passwd与/ect/group的内容,
找到UID/GID对应的帐户与组名,再显示出来。(/etc/shadow中记录用户加密后的密码)
2.用户组管理
新增 groupadd idcgroup
删除 groupdel idcgroup
3.添加用户
新增 useradd -g idcgroup zhangsan
修改 usermod -G idcgroup zhangsan
删除用户userdel zhangsan/ userdel -r zhangsan(加r参数,用户的家目录会被删除)
useradd -d /home/up -s /bin/bash -m up UP为用户名
useradd -m zhangsan -m 使用者目录如不存在则自动建立
4.修改用户密码passwd zhangsan (如后面不加用户名,则修改当前登陆用户)
5.切换登陆用户su zhangsan/su root

第十六章 例行工作
crontab [-u username][-l|-r|-l]
-u 只有root用户才可以执行,给指定用户创建crontab
-e 编辑crontab
-l 查看crontab
-r 移除crontab中所有内容
50 * * * * sh /root/zhanghntest/hello.sh >> /root/zhanghntest/log.txt
30 16 * * 5 mail [email protected] < /home/friend.txt
六部分代表意义
分钟 0-59
小时 0-23
日期 1-31
月份 1-12
周 0-7 0 7都表示星期天
年 可选
特殊字符:
逗号,: 10 3,6 * * * command 每日的3:10 6:10执行
见好-: 20 8-12 * * * command 每日8点到12点之间的每消失的20分都执行一次命令
斜线/: 符号前表示开始时间,符号后表示每次递增的值
*/5 * * * * command 每5分钟执行一次,
1/5 * * * * command 在1分、6分、11分。。。执行一次。

* 表示所有值;
? 表示未说明的值,即不关心它为何值,一般用在周和年字段上,且一个使 用问号,另外一个将不再使用问号


第十七章 程序管理
1. &把程序丢到后台执行
tar -zcvf /tmp/etc.tar.gz /etc > /tmp/log.txt 2>&1 &
2. 把目前工作丢到背景中暂停,如vi log.txt,进入vi,然后按ctrl -z,将这个任务丢到背景中
3. jobs 查看背景中的工作
+表示最近放到背景中的工作号码
-表示最近最后第二个放置在背景中的工作号码
其他无+-号标识
4. fg把背景中的工作拿到前台执行,fg默认把标识+的拿到前台运行,fg %1,把指定编号的任务拿到前台运行。
5. 把背景中暂停状态的任务,变为运行状态。 bg 或bg %4
6. 结束一个任务kill
-1 重新读取一次参数的配置文件,类似reload
-9 立即强制删除一个工作
-15 以正常程序方式结束一个工作,默认为此值。
例:kill -9 PID/背景任务编号(如%3)



附:
1.在Linux上面至少有两种常见的管理软件,分别为RPM 与Debian的dpkg
2.RPM (RedHat Package Manager)
SRPM 由于RPM安装的环境必须与打包时的环境一致,如Rea Hat的RPM通常无法在SuSE上面安装。SRPM解决以上问题,其扩展名为*.src.rpm。
*.rpm 经过编译且包装完成的rpm档案
*.src.rpm 包含未编译的原始码信息
3.安装 rpm -ivh package_name --test
-i install的意思
-v 查看详细安装信息
-h 显示安装进度
例:mount /dev/cdrom /mycdrom
rmp -ivh *.rpm --test(测试安装)
rmp -ivh *.rpm
umount /dev/cdrom
4. rpm -qa 查看系统已安装的软件
rpm -qa | grep tomcat*
5. 卸载软件
rpm -qa | grep mysql*
rpm -e mysql-server

6. 配置jdk,
/etc/profile,文件的最后一行
JAVA_HOME=/home/csm/jdk1.6.0_29
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JRE_HOME/lib:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH



裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的字符设备。它由应用程序负责对它进行读写操作。不经过文件系统的缓冲。
在Unix的/dev 目录下,有许多文件,其中有两个大类:字符设备文件和块设备文件。
字符设备:对字符设备的读写不需要通过OS的buffer。它不可被文件系统mount。
块设备:对块设备的读写需要通过OS的buffer,它可以被mount到文件系统中。
使用裸设备的好处:因为使用裸设备避免了再经过Unix操作系统这一层,数据直接从Disk到Oracle进行传输,所以使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。当然,这是以磁盘的I/O 非常大.

你可能感兴趣的:(linux)