`
Fangrn
  • 浏览: 799116 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux bash(1)

阅读更多

一、LINUX操作系统的基本结构

1 kernel、2 modules、3 lib、4 shell、5 tools

kernel的版本
1 kernel.org;2 2.4 2000年发布;3 2.5 奇数的版本号,代表测试版;4 2.6 2003年发布

终端控制台切换tty1--tty6 至 X-WINDOW: ALT+F7;X-WINDOW   至 tty1--tty6: ctrl+ALT+F1~F6;tty1--tty6 之间:   ALT+F1~F6

关闭X-WINDOW初始显示 vi /etc/inittab

二、RED HAT 安装补充安装方式
Boot: linux dd driver disk安装、
linux ks kickstart安装(无人时启动安装)
boot:linux ks=nfs:192.168.0.254:/var/ftp/pub/ks.cfg
red hat 安装光盘的使用

三、LINUX下寻求帮助
help,man,info,howto命令
baidu,google

linux命令(区分大小写)
分为两大类:shell的内部命令、shell的外部命令

命令习惯:
1 命令及参数区分大小写
2 程序可否执行与扩展名无关 chmod x+a filename
3 使用TAB键来补全命令
4 善用寻求帮助的形式

man page
man 命令的使用技巧
man 的类型
man 文档的使用

man 7 man

1 commands
2 system calls
3 library calls
4 special files
5 file formants and coventions
6 games
7 coventions and miscellaneous
8 system management commands
9 kernel routines


/ 查找
SHIFT+N 向下查找、Q 退出MAN文档

info命令
howto命令
www.tlpd.org
baidu,google

四、文件操作命令

ls -查看文件
mv -移动或重命名文件
cp -拷贝文件
rm -删除文件(-r删除文件夹)
touch -创建空文件或更新新文件时间

. 当前目录
/ 根目录

目录命令:
pwd   查看当前路径
cd   改变当前路径
mkdir   创立新目录
rmdir   删除新目录(只能删除空的文件夹或目录)
rm -r   删除非空目录

其它命令:
echo   显示内容
cat   查看文件内容
more或less 逐屏查看文件内容(more向下查看,less上下查看功能强,但需要交互)
vi   编辑文件(按i键进入编辑模式,按ESC再按:wq保存退出,按:q!不保存退出)

alias   别名
unalias   不启动(取消)别名
想别名永久生效,须更给系统主目录下的配置文件,~/.bashrc,将更改的别名写入到此文件内。

useradd 添加用户
passwd   添加密码

五、 初级系统管理命令

1 查看计算机信息
hostname 显示/设置主机名(更改不生效,要使其下次启动时生效,必须修改配置文件/etc/sysconfig/network)
ifconfig 显示/设置网络信息IP address,(更改不生效,要使其下次启动时生效,必须修改配置文件/etc/sysconfig/network-scripts/ifcfg-ethx或netconfig)
uname   显示内核版本,编译信息等
id   显示用户信息

约定熟成:用户命令更改计算机信息时,下次启动不生效,要使其生效,必须修改其对应的配置文件。

2 查看日期

date 显示或设置当前时间(date -s,date +%m%d)
cal 显示日历(cal 2005)
file 查看文件类型(面对没有扩展名的文件,想知道它到底是什么文件吗?)

3 linux使用光盘,U盘等

mount命令初步 显示加载点(WINDOWS是多棵小树,LINUX是一棵大树)
光盘   mount -t iso9660 /dev/cdrom /mnt/cdrom
   mount /mnt/cdrom
U盘   mount -t vfat /dev/sda1 /mnt/usb

mount //192.168.0.1/tools /mnt
mount -t cifs //192.168.0.1/tools /mnt
mount -t cifs -o username=adminstrator //192.168.0.1/tools /mnt

umount 卸载

4 查看文件大小及磁盘

df -显示磁盘用量

du -计算目录下文件占用磁盘的大小

5 用户身份切换及远程登录

su 切换用户
su - prinz

ssh 用ssh服务远程登录
(ssh 192.168.1.254
ssh
prinz@192.168.1.2

telnet 使用telnet服务远程登录
telnet 192.168.1.254 注意telnet不安全,默认不允许root用户登录。

6 关闭或离开系统

exit   退出当前SHELL
logout   退出登录SHELL
关闭系统 三条命令层次不同
shutdown -h now(联机用)
init 0 (单机时常用)
halt -p -f 或 poweroff 关闭电源

7 重启系统

三条命层次不同
shutdown -r now
init 6
reboot(halt)

按ctrl+alt+del将调用shutdown


六、 linux系统用户和组管理

1 新建用户和组的命令
2 用户、密码有关的文件
3 用户信息的管理
4 组文件
5 查看当前用户状态
6 用户交互工具使用

useradd   /etc/passwd,/etc/shadow,/etc/group,/etc/gshadow,
passwd
userdel
usermod   更改用户属性
groupadd
gpasswd
groupdel

user相关命令汇总:
useradd   添加用户
usermod   更改用户信息
userdel   删除用户
passwd   更改用户密码
su    切换用户
exit   退出用户shell

用户和组配置文件:
/etc/passwd 用户账号信息文件
/etc/shadow 用户密码文件
   {用于存放用户的密码等机密内容(登录名,密码,密码使用期限等等),其权限比/etc/passwd严格}
/etc/group 用户组账号信息文件
/etc/gshadow 组密码文件
新建用户选项控制文件 /etc/login.defs

group相关命令汇总:
groupadd 添加一个组
groupmod 更改组的信息
groupdel 删除一个已存在的组
gpasswd   修改组密码 或者添加用户到组
groups   显示当前用户所属组
id   显示当前用户信息及所属组

当前系统中登陆的用户:
users   显示当前系统登陆的用户
who   当前登陆在本机的用户及来源
w   当前登陆本机的用户及运行的程序
write   给当前联机的用户发消息
wall   给所有登陆在本机的用户广播消息
last   查看用户登陆日志
lastlog   查看每个用户最后登陆的情况
finger   查看用户信息

七、 Linux系统文件的存储作权限

1 linux文件基本概念
2 linux EXT3文件系统上文件是怎样存储的
3 文件的类型、
4 文件的属性
5 文件的权限
6 相关命令

Linux下的文件
linux文件被保存在文件系统下
由以下属性构成
各种类型 访问权限 连接数 文件拥有者 文件拥有组 修改时间   文件名

du -h 查看文件的实际大小

文件类型:
drwxr-xr-x 2 root root     4096 Feb 12 00:34 Desktop
- 普通类型文件
d 目录类型文件
l 链接类型文件 类似于WINDOWS下的快捷方式
b block块设备文件
c 字符设备文件
s UNIX的网络文件(socket)
p 管道类型文件

访问权限:
rwxr-xr-x 权限 属主:属组:其它用户
644 文件权限
755 文件夹权限

chmod ugo(a)+wrx filename
chmod ugo(a)-wrx filename
只有文件的拥有者和ROOT用户才可以改变文件的权限
数字改变文件权限
chmod后可以用三个数字来表示用户权限
第一位代表文件拥有者权限
第二位代表文件所属组成员权限
第三位代表其他用户权限
每一个数字都采用加和的方式 4 (read) 2 (write) 1 (execute)

链接数:
links为0时,收回inode ,block
ln 原文件名 新建文件名 硬链接 (不常用)
ln -s 原文件名 新建文件名 软链接 ln -s /etc eee

文件拥有者,文件拥有组:
chown -R root:root filename
只有文件当前的拥有者和ROOT才可以改变文件的拥有者
chgrp 来改变文件的用户组

Ext2/3中文件系统的构成:
在Ext2和Ext3文件系统中文件以inode+block的方式存在
rm指令删除文件的文件名则文件的inode号码 文件无法被找回,所以删除原文件很难恢复
stat指令可以用来检查文件的inode

文件名:
2.4内核的ext3文件名最大为255个字符
以.为第一个字符的文件为隐藏文件

八、 linux文件夹及权限

1 linux下目录文件
2 目录文件的权限
3 umask
4 系统默认根目录文件夹

x cd
rx cd ls
rw cd touch rm vi(self others)
wxt cd touch rm(self) vi(self)    t表示sticky

linux的根目录结构:
/boot   存放系统启动时的内核文件,模块映像等,包括kernel grub
/bin   普通用户可执行的命令的文件夹,另一部分放在/usr/bin
/etc   存放系统配置目录及文件
/dev   存放设备文件
/home   存放普通用户主目录
/lib   存放库文件,例如内核模块,驱动pam模块
/initrd   使用RAM Disk方式启动用户挂载RAM设备的文件夹
/misc   Autofs的主目录
/mnt   提供安装额外文件系统时后的安装目录
/opt   用来安装给所有用户使用的文件或程序
/proc   是系统内核映像,该目录的文件系统叫做proc文件系统
/lost+found Ext3文件系统存放丢失block的地方
/root   超级用户root的缺省主目录
/sbin   给超级用户管理系统时使用的命令,如fsck等
/tmp   存放临时文件
/usr   存放应用程序文件,占用磁盘空间最大的目录
/var    存放系统中经常变化的文件 如log mall cron等

九、 linux编辑器的使用

ed 最早的编辑器
sed
vi/vim的使用:
三种模式:命令模式 插入模式 命令行模式
一进入vim就是命令模式,切换到插入模式可以使用i I a A o O任何一键,回到命令模式用ESC键,进入命令行模式按“:”
命令模式下:0 G 15G ctrl+G w $ [ ] 6i dd(3dd) p yy(3yy) x 4x r "a3yy "ap / ? n u ctrl+r

命令行模式下:
:set nu    设置行号
:15 15G G 跳到指定行号
:r aaa.file   读文件
:w    写入   
:w!    写入保存
:q    退出
:wq    写入并退出
:wq!    强制写入并退出
:e!    恢复文件最初状态
:e! aaa.txt
:e b.file
:1,5 w >> aaa.file
:w a.file
:1,$ s/aaa/bbb/g 直接替换g 不寻问
:1,5 s/aaa/bbb/c 替换 c 需要寻问
:!ls

vim快捷键:
命令模式中可用的移动键:
h 将光标向左移一个字符
j 将光标向下移一个字符
k   上移一个字符
l   右移一个字符
w   前移一个单词
b   后移一个单词
e 将光标移到下一个单词之后
0       移动到行首
$       移动到行末
)   下一句句首
(       上一句句首
}       下一段开始处
{          上一段开始处
G 将光标移动到当前文档的底部
^       移动到行内非空格的第一个字符
H   移动到屏幕上的第一行
L   移动到屏幕上的最后一行

在vi中滚动屏幕:
a 回车   将光标所在的那一行移动至屏幕顶部
z -         底部
z .         中部
ctrl+u   向上滚动半屏
ctrl+d   向下滚动半屏
ctrl+f   向前滚动全屏
ctrl+b   向后滚动全屏
ctrl+e   向下滚动一行
ctrl+y   向上滚动一行

vi的文本编辑命令:
D   从光标定位的行末删除文本
dd   行删除光标定位的当前行
ndd   n代表即将删除的行数。例如5dd命令不仅会把当前行删除,还会把紧随其后的4行也删除
rc   c代表字符,光标下方的字符将被替换为r后面的字符
R   R后键入的文本将改写当前文本,从光标所在位置开始,一直到按下Escape返回命令模式为止
S   删除当前行,并开始在当前的空白行插入文本
x   删除光标下方的字符,并将字符右移填空
X   删除光标前的字符,并移动字符,令光标下方的字符来填空
~   更改光标下方的字母的大小写
J   将当前行和前一行连接起来,并删除因此而来的空行

vi中的文件操作:
ZZ   保存对当前文件的更改,然后退出vi
:wq   保存对当前文件的更改,然后退出vi
:w   保存对当前文件的更改
:w!   保存对当前文件的更改,有同名文件存在的话,就改写它
:q   退出vi,如果有未保存的更改,vi将发出报怨,并拒绝退出
:q!   退出vi,即使还有尚未保存的更改,所有未保存的更改将被丢失
:e filename 把指定文件载入vi进行编辑,如果指定文件不存在,将创建一个新文件
:e!   丢失所有更改,并从硬盘中重载已保存的文件

vi中的查找和替换命令:
/pattern   pattern(样式)指代的是要查找的内容,vi将在文件中向前查找与指定内容匹配的第一样式
/    重复上一次查找,在文件中查找下一个匹配样式
?pattern   pattern(样式)指代的是要查找的内容,vi将在文件中抽后查找与指定内容匹配的第一样式
?    重复上一次查找,在文件中查找与上一次查找内容匹配的样式
%    把当前光标移至匹配的圆括号或方括号。对程序员来说,该命令非常有用
:s/pattern1/pattern2 用pattern2替换当前行中与pattern1匹配的每个内容
:%s/pattern1/pattern2 用pattern2替换整个文件中与pattern1匹配的每个内容

vi中复制文本:
yy   将当前行内容放入临时缓冲区
nyy   将n行内容放入临时缓冲区
p 将临时缓冲区中的文本放入光标后
P                                                 前
"(a-z)nyy 复制n行放入名字为圆括号内的可命名缓冲区,省略n表示当前行
"(a-z)ndd                                                                                      删除
"(a-z)p   将名字为圆括号的可命名缓冲区的内容放入当前行后
"(a-z)P                                                                          前

vi中的撤销与重复:
u   撤销最后一次修改
U   撤销当前行的所有修改
.   重复最后一次修改
,   以相反的方向重复前面的f、F、t、T查找命令
;   重复前面的f、F、t、T查找命令
"np   取回最后的第n次的删除(缓冲区中存有一定次数的删除内容,一般为9)
n   重复前面的/或?查找命令
N   以相反的方向重复前面的/或?命令

vi中的宏与缩写:
(避免使用控制键和符号,不要使用字符K、V、g、q、v、*、=和功能键)
:map key command_seq 定义一个键来运行command_seq,如:map e ea,无论什么时候都可以e移动一个字的末尾来追加文本
:map    在状态行显示所有已定义的宏
:umap key   删除该键的宏   
:ab string1 string2 定义一个缩写,使得当插入string1时,用string2替换string1。当要插入文本时,键入string1然后按Esc键,系统就插入了string2
:ab    显示所有的缩写
:una string   取消string的缩写

在vi中缩进文本:
^i(ctrl+i)或tab   插入文本时,插入移动的宽度,移动宽度是事先定义好的
:set ai    打开自动缩进
:set sw=n   将移动宽度设置为n个字符
n<<    使n行都向左移动一个宽度
n>>     右   ,例如3>> 就将接下来的三行每行都向右移动一个移动宽度

split:    分割一个窗口
:split file.c   为另一个文件file.c分隔窗口
:nsplit file.c   为另一个文件file,c分隔窗口,并指定其行数
ctrl+W    在窗口中切换
:close    关闭当前窗口
v:    进入visual模式
ESC退出

十、 linux 系统文件查找与压缩

1 文件的查找命令
2 不同文件的查找方法
3 查找命令的横向比较
4 文件的压缩命令

linux的文件搜索命令:
which    显示一具可执行文件的完整路径,按照alias->$PATH的顺序查找
whereis    搜索一个可执行工具及其相关匹配、帮助。  
slocate       语法:slocate/locate [关键字段]
    所有文件名及其所在路径包含关键字段的文件与目录都会显示
    可以使用-r参数使用正则表达式精确匹配
    slocate先将当前目录结构做成一个数据库,然后再在此数据库中搜索匹配记录
    updatedb命令可以更新locate数据库  
     locate (updatedb) /etc/cron.daily/slocate.cron locate -r '.*newfile.*'
find    基本格式:find [路径] [参数] [表达式]
    从指定路径下递归向下搜索文件
    支持按照各种条件方式搜索
    支持对搜索得到的文件进一步用指令操作
    find / -user -type -name -group -perm -size -mtime -ok -exec
    find / -name newfile 比较常用,但效率比较低     
    find /etc -name "*network*" -exec file {} \; 不需要询问
    find /etc -name "*network*" -ls
    find /home -name "*first*" -ok rm {} \;   需要询问
     
grep   
    grep -R -l ding /etc
    grep -R ding /etc

压缩工具:
compress,ucompress 传统的最老的Unix压缩工具
gzip,gunzip   linux系统中标准压缩工具,对于文本文件能够达到很高压缩率  
bzip2,bunzip2   新版linux压缩工具,比gzip拥有更高的压缩率  

tar包的使用:
磁带机、软盘、ZIP设备上做备份
可以备份在硬盘文件上
主要参数:
t 查看
c 将文件备份
v 将过程输出
x 从一个文件中解出备份
r 将文件添加入已经存在的文件中
范例
备份:tar cvf backup.tar *.txt
解开:tar xvf backup.tar -C backup/

tar cvf /tmp/root.tar .
ls /tmp/root.tar
ls /tmp/root.tar -l
tar rvf /tmp/root.tar /etc/passwd /etc/shadow /etc/sysconfig/ 追加压缩
tar xvf /tmp/root.tar -C /tmp/ddd/ 解压
ls /tmp/ddd/
tar cvfz /tmp/root.tar.gz /root /etc/passwd /etc/shadow 打包并压缩
ls /tmp/root.tar*
ls /tmp/root.tar* -l
tar cvfj /tmp/root.tar.bz2 /etc/passwd /etc/shadow


十一、 linux对文本的操作命令及正则表达式

1 对文本文件的操作命令
2 使用正则表达式的命令
3 正则表达式
4 对文本的操作
5 组合命令完成复杂任务

文本文件操作命令:
cat   查看文件内容
more   逐屏查看文件内容
less   逐行查看文件内容
head   显示文件开头部分内容(10行)
tail   显示文件结尾部分内容(最后10行)

   head -n 5 显示前5行
   tail -n 20
   tail -f

对文本的操作:
diff   报告文件差异(版本升级比较常用,diff与patch是一对)  
uniq   去除文件中相邻的重复行
cut   只显示文件中的某一列
sort   按序重排文本
wc   统计文件的行、词、字数

   diff
   patch -p0 < patch.2.6.9

   grep -R   对目录中所有文件进行筛选
   grep -l -R ''
   grep -v 反向选取
       -l 显示文件名
    -c 统计文件行数
    -A2 显示当前行的上面2行
    -B2 显示当前行的下面2行
   cut -d: -f2-4 -c1-5   显示第2-4段,显示第1-5个字符
   sort    -n 以数字进行排序  
    -r 反向排序
    -t: +2
   wc -l 显示段数
    -w 显示单词数
    -c 显示字符数

使用正则表达式的命令:
grep    显示文件中匹配关键的行
locate -r "正则表达式"
less    在/或?查找时使用\
vim    在查找或替换时
sed
awk

grep用来从一个文件中找出匹配指定关键字的那一行,并送到标准输出,结合管道,通常用它来过滤搜索结果


正则表达式:

正则表达式是为了我们精确描述需要的内容所设置的,可以用于多个命令
.   任意的一个字符
*   任意多个前面字符,如a* 表示任意多个a,.*表示任意多个任意字符
\   退意符号 \.表示点,\* 表示*
^    以某个字符开头
$   以某个字符结尾
\< \>   单词以什么开头,以什么结尾
a\{18,\} a单词重复了18次 逗号表示以上
[abc]   表示当前位置a、b或c
a?   表示空、a、aa、aaa或更多个a
a+   表示    a、aa、aaa或更多个a

与bash中的运算符有差异

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics