linux学习笔记(1)

0/vi的使用:
Ctrl + f  屏幕向前翻动一页(常用)
Ctrl + b  屏幕向后翻动一页(常用)
Ctrl + d  屏幕向前翻动半页
Ctrl + u  屏幕向后翻动半页
n<space>  按下数字后再按空格键,光标会向右移动这一行的n个字符。例如:20<space>,则光标会向右移动20个字符
0    (这是数字0)移动到这一行的第一个字符处(常用)
$    移动到这一行的最后一个字符处(常用)
H    光标移动到这个屏幕最上方的那一行
M    光标移动到这个屏幕中央的那一行
L    光标移动到这个屏幕最下方的那一行
G    移动到这个文件的最后一行(常用)
nG    移动到这个文件的第n行。例如20G,则会移动到这个文件的第20行(可配合:set nu)
n+<h>|<j>|<k>|<l>   光标向左|下|上|右移动n次(常用)
n<Enter> 光标向下移动n行
/word   在光标之后查找一个名为word的字符串(常用)
?word   在光标之前查找一个名为word的字符串
:n1,n2s/word1/word2/g   在第n1与n2行之间查找word1这个字符串,并将该字符串替换为word2(常用)
:1,$s/word1/word2/g   从第一行到最后一行查找word1字符串,并将该字符串替换为word2(常用)
:1,$s/word1/word2/gc   从第一行到最后一行查找word1字符串,并将该字符串替换为word2,且在替换前显示提示符让用户确认(conform)(常用)
x,X  x为向后删除一个字符,X为向前删除一个字符(常用)
nx   向后删除n个字符
dd   删除光标所在的那一整行(常用)
ndd  删除光标所在行的向下n行,例如,20dd则是删除20行(常用)
d1G  删除光标所在行到第一行的所有数据
dG   删除光标所在行到最后一行的所有数据
yy   复制光标所在行(常用)
nyy  复制光标所在行的向下n行,例如,20yy则是复制20行(常用)
y1G  复制光标所在行到第一行的所有数据
yG   复制光标所在行到最后一行的所有数据
y+<h>|<j>|<k>|<l>    复制光标向左|下|上|右的文本(常用)
p,P  p为复制的数据粘贴在光标下一列,P则为粘贴在光标列(常用)
J   将光标所在行与下一行的数据结合成一行
u   恢复前一个动作(常用)
i, I  插入:在当前光标所在处插入输入的文字,已存在的字符会向后退(常用)
a, A  添加:由当前光标所在处的下一个字符开始输入,已存在的字符会向后退(常用)
o, O  插入新的一行:从光标所在处的下一行行首开始输入字符(常用)
r, R  替换:r会替换光标所指的那一个字符;R会一直替换光标所指的文字,直到按下Esc为止(常用)
:w   将编辑的数据写入硬盘文件中(常用)
:w!  若文件属性为只读,强制写入该文件
:q   退出vi(常用)
:q!  若曾修改过文件,又不想保存,使用!为强制退出不保存文件
:wq  保存后退出,若为:wq!,则为强制保存后退出(常用)
:w [filename]   将编辑数据保存为另一个文件(类似另存新文档)
:r [filename]   在编辑的数据中,读入另一个文件的数据。亦即将 filename这个文件内容加到光标所在行的后面
:set nu    显示行号,设定之后,会在每一行的前面显示该行的行号
:set nonu    与set nu相反,为取消行号
n1,n2 w [filename]   将n1到n2的内容保存为filename这个文件。

MSDN肯定没有vim方便。举个例子:
若想查找socket()函数的man page,只需在vim中把光标至于socket()上面,然后按K(大写),vim就会自动跳转,看完man后按q再按回车又可以回到原处。你可以试试,这样手不用离开键盘,比VC中按F1,转换到MSDN,然后Alt-Tab切换回VC快多了。

/

1.交换两个字符位置
xp

2.上下两行调换
ddp

3.把文件内容反转
:g/^/m0/       (未通过)

6.从当前位置删除到行尾
d$

7.从当前位置复制到行尾
y$ 如果要粘贴到其他地方 p 就可以了

8.
:ab string strings
例如在命令行中输入":ab usa United States of America"后 ,
当你在文章中输入usa 时
United States of America 就蹦出来了

9.
:map keys new_seq
定义你当前 键盘命令

10.
:set [all]
vi or ex  的编辑状态
如 显示每行 :set nu

11.
在命令状态下,nyy表示拷贝从光标行起的下n行内容,p表示paste,可刚复制的内容粘贴在光标处的
下面。

12.
单个字符替换用r,覆盖多个字符用R,用多个字符替换一个字符用s,整行替换用S

13.
:%s/old_word/new_word/g
这个指令是于在整个文件中替换特定字符串 

14.光标控制
k:上移 nk 上移n行
j:下移 nj 下移n行

将光标移到第n行,按下 nG
在当前屏幕中
H 跳到第一行
M 跳到中间一行
L 跳到最后一行

15.
表8-2 删除命令
删除命令操作
d l 删除当前字符(与x命令功能相同)
d 0 删除到某一行的开始位置
d ^ 删除到某一行的第一个字符位置(不包括空格或TA B字符)
d w 删除到某个单词的结尾位置
d 3 w 删除到第三个单词的结尾位置
d b 删除到某个单词的开始位置
d W 删除到某个以空格作为分隔符的单词的结尾位置
d B 删除到某个以空格作为分隔符的单词的开始位置
d 7 B 删除到前面7个以空格作为分隔符的单词的开始位置
d) 删除到某个语句的结尾位置
d 4) 删除到第四个语句的结尾位置
d( 删除到某个语句的开始位置
d } 删除到某个段落的结尾位置
d { 删除到某个段落的开始位置
d 7 { 删除到当前段落起始位置之前的第7个段落位置
d d 删除当前行
d /t e x t 删除从文本中出现“ t e x t”中所指定字样的位置,一直向前直到下一个该字样所出现的
位置(但不包括该字样)之间的内容
d fc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括
该字符)之间的内容
d tc 删除当前行直到下一个字符“ c”所出现位置之间的内容
D 删除到某一行的结尾
d $ 删除到某一行的结尾
5 d d 删除从当前行所开始的5行内容
d L 删除直到屏幕上最后一行的内容
d H 删除直到屏幕上第一行的内容
d G 删除直到工作缓存区结尾的内容
d 1 G 删除直到工作缓存区开始的内容

修改命令操作
c l 更改当前字符
c w 修改到某个单词的结尾位置
c 3 w 修改到第三个单词的结尾位置
c b 修改到某个单词的开始位置
c W 修改到某个以空格作为分隔符的单词的结尾位置
c B 修改到某个以空格作为分隔符的单词的开始位置
c 7 B 修改到前面7个以空格作为分隔符的单词的开始位置
c 0 修改到某行的结尾位置
c) 修改到某个语句的结尾位置
c 4) 修改到第四个语句的结尾位置
c( 修改到某个语句的开始位置
c } 修改到某个段落的结尾位置
c { 修改到某个段落的开始位置
c 7 { 修改到当前段落起始位置之前的第7个段落位置
c tc 修改当前行直到下一个字符c所出现位置之间的内容
C 修改到某一行的结尾
c c 修改当前行
5 c c 修改从当前行所开始的5行内容


. 重复上一次修改! 


表8-4 替换命令
替换命令操作
s 将当前字符替换为一个或多个字符
S 将当前行替换为一个或多个字符
5 s 将从当前字符开始的5个字符替换为一个或多个字符


vi替换使用规则:
:g/s1/s/s2/s3/g
第一个g表示对每一个包括s1的行都进行替换,第二个g表示对每一行包括s1的行所有的s2都用s3替换
s表示替换,s2是要被替换的字符串,他可以和s1相同(如果相同的话用//代替),s3是替换字符串


16.

fx
往右移动到 x 字符上
Fx
往左移动到 x 字符上
tx
往右移动到 x 字符前
Tx
往左移动到 x 字符后
(注意:以上四个命令中,其中x是键入的字符)
;
分号,配合 f 和 t 使用,重复一次
,
逗号,配合 f 和 t 使用,反方向重复一次


17. vi 环境选项  Solaris ksh

noautoindent            nomodelines                     noshowmode
autoprint               nonumber                        noslowopen
noautowrite             nonovice                        tabstop=8
nobeautify              nooptimize                      taglength=0
directory=/var/tmp      paragraphs=IPLPPPQPP LIpplpipnpbtags=tags /usr/lib/tags
noedcompatible          prompt                          tagstack
noerrorbells            noreadonly                      term=vt100
noexrc                  redraw                          noterse
flash                   remap                           timeout
hardtabs=8              report=5                        ttytype=vt100
noignorecase            scroll=11                       warn
nolisp                  sections=NHSHH HUuhsh+c         window=23
nolist                  shell=/bin/ksh                  wrapscan
magic                   shiftwidth=8                    wrapmargin=0
mesg                    noshowmatch                     nowriteany


For C-Shell:
setenv EXINIT "set nu"
For Bourne or Korn Shell:
EXINIT="set nu"; export EXINIT
For Korn Shell Only (alternate method):
typeset -x EXINIT="set nu"
在 .profile 里设置 vi 的环境选项 , 以上均测试过


18.标记文本

  mchar   用字母char标记当前光标的位置
  `char   移至char所标记处
  'char   移至char标记所在行的开头处
  "     移至当前行上一次所在位置(在光标移动之后)――一个双引号
  ''    移至当前行上第一次所在位置的行的开头处(在光标移动之后)――两个单引号


19.
同时vi多个文件时,CTRL-SHIFT-6回到上一个文件,在本次vi的文件和上次vi的文件之间切换。
但是我发现一个BUG:在用CTRL-SHIFT-6切换到上一个文件后,用:args查看多文件vi状态时,
屏幕底部仍然显示目前vi的是刚才的文件。
(在HP-UX,Solaris,AIX上通过)

也可以使用:
:e#
进行切换

20.
sco 下VI 要在文本前同样的字符加用
%s/^/要加的内容/g      要在文本后同样的字符加
%s/$/要加的内容/g 

21.
如何去掉文本中的 ^M 硬回车?不必用binary传回去再ascii传回来的方式,用shell或者unix语句实现。

cat filename |tr -d '15' >;newfile
不同的unix系统还存在一些其他不同的命令,如:doscp
sed 也可以实现这个功能.

dos2unix filename filename2
反之
unix2dos filename filename2

在vi 中用:$s/^M//g
^是crtl-V crtl-M 


22.如何在“unix命令行”下将一个文件的某字符串用另一个串换掉

sed 's/string1/string2/gp' file1 >; file2


23.将/etc/hosts下所有的地址都ping 2次

#/usr/bin/sh
#grad /etc/hosts and ping each address
cat /etc/hosts|grep -v '^#' | while read LINE
do
ADDR=`awk '{print $1}'`
for MACHINE in $ADDR
do
ping  $MACHINE -n 2
done
done

/

1/安装完成后更新系统组件
yum -y update

2/安装wget以便于以后自动安装
yum -y install wget

3/查看iP地址
ifconfig

4/启动服务
service httpd start

5/停止服务
service httpd stop

6/新增用户
useradd

7/删除用户
userdel

8/修改用户
usermod

9/用户口令的管理
passwd

10/文本方式上网
links

11/列出系统中所有的进程
ps

12/列出指定名字的进程
pgrep

13/杀死指定名字或id号的进程
pkill

14/登录ftp:
ftp 192.168.128.3

bin:  二进制模式
asc:  文本模式
help: 列出所有可用的命令
ls:   列出服务器上的文件列表
!ls:  列出本地当前目录下的文件列表


15/su 命令切换到root用户的权限,但还是以前用户的环境变量。
当"exit"后又回到以前的用户身份下。

16/"su - root" 命令会使用root的环境变量。


17/"cd ~UserName" 进入UserName的home目录下。


/iptables

18/查看iptables当前的设置:
iptables -L -n

19/拒绝所有端口的INPUT:
iptables -P INPUT DROP

20/拒绝所有端口的OUTPUT
iptables -P OUTPUT DROP

21/打开所有端口的INPUT:
iptables -P INPUT ACCEPT

22/打开所有端口的OUTPUT:
iptable -P OUTPUT ACCEPT

23/保存所有的设置,否则在OS重启后,以前的设置失效:
service iptables save

24/查看当前机器的网络情况:
netstat -tnl

25/打开22端口(即使是在运行了第19和第20条命令后,也可以打开):
iptables -A INPUT  -p tcp --dport 22 j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 j ACCEPT

26/禁止某IP访问本机器:
iptables -A INPUT -p tcp -s 192.168.128.1 -j DROP

27/查看各规则的编号:
iptables -L -n --line-numbers

28/删除某条规则:
iptables -D INPUT 2

其中的"2"表示用上条命令看到的规则编号

29/只允许某个IP访问:
(1)禁止所有端口
(2)允许某个IP地址:
iptables -A INPUT  -p tcp -s 192.168.128.1 -j ACCEPT
iptables -A OUTPUT -p tcp -d 192.168.128.1 -j ACCEPT

30/过滤无效数据包:
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT


31/查询网络名字服务:
nslookup


32/DNS工具:
host www.google.com

33/"/etc/services"这个文件中存放了本系统中端口与服务的对应关系。
如果想知道域名服务用了哪个端口,命令如下:
grep domain /etc/services


34/DNS和网关的配置文件:
"/etc/resolv.conf"指定"nameserver 192.168.128.1"即可


35/停用网卡:
sudo ifconfig eth0 down

36/修改网卡的MAC地址:
sudo ifconfig eth0 hw ether 00A010598805

37/启用网卡:
sudo ifconfig eth0 up

38/修改网卡的IP:
sudo ifconfig eth0 192.168.128.4 netmask 255.255.255.0


39/和网络相关的配置文件有/etc/network/interface和/etc/resolv.conf两个文件。
通过修改interface文件可以指定某个网络设备的静态IP地址或是动态IP地址。


40/重启网络服务:
/etc/init.d/network restart

41/打印到达网络主机的包路径:
traceroute www.google.com


42/填加网关:
route add default gw 192.168.128.2

43/配置系统服务:
ntsysv

44/CentOS的配置工具:
setup

45/"/etc/hosts"文件中记录了地址与名字的映射关系


46/"fdisk -l"查看当前系统中有多少磁盘分区及文件系统类型


47/du 查看文件系统的使用空间,目录容量


48/df - disk free
查看文件系统的可用磁盘空间

49/挂载分区:
mount deviceName mountPoint [-o options]
例如:
mount /dev/hda1 /etc/temp -o iocharset=cp936

50/挂载镜像文件:
mount filename mountPoint -o loop


51/挂载远程文件:
mount hostname:path mountPoint
例如:
mount 192.168.128.3:/mnt /etc/temp

52/取消挂载:
umount mountPoint


53/命令后加"&",则该命令会在后台执行。


54/jobs 命令列出当前所有的后台进程


55/"whereis 命令" 找出后面命令的绝对目录


56/启动vsftpd服务:
service vsftpd start

57/关防火墙:
service iptables stop


58/查看当前的配置:
chkconfig --list


59/列出当前所有进程:
ps -ef

60/hostname


61/whoami


63/which bash


64/上次一个命令运行的结果状态:
echo $? 


65/目录结构:
/bin :可执行文件的目录(普通用户)
/boot :启动时用到的文件
/boot/grub :多启动时用到
/dev :存放了设备文件(linux中所有的设备都是文件)
/etc :存放了系统的配置文件
/etc/rc.d :不同的运行级别的配置文件
/home :用户的家目录
/lib :用于存储库文件
/mnt :习惯上用于挂载其他文件分区的目录
/proc :内存中的进程文件
/sbin :可执行文件的目录(超级用户<普通用户如果找不到该目录下的命令,可以用全路径>)
/tmp :临时目录
/usr/ :用户的应用程序有关的目录
/usr/src :应用程序的源文件目录
/usr/bin :应用程序的可执行文件目录
/usr/sbin :超级用户可以执行的应用程序可执行文件的存放目录
/usr/local :应用程序安装目录
/var  :经常变动信息的目录
/var/log :日志目录

66/计算机信息:
CPU:
/proc/cpuinfo
内存:
/proc/meminfo
free
硬盘:
fdisk -l
显卡:
lspci
U盘:
lsusb -v
驱动driver:
lsmod
kernel版本:
uname

67/用户管理:
添加用户 :useradd
添加用户组 :groupadd
删除用户 :userdel
删除用户组 :groupdel
更改用户 :usermod
更改用户组 :groupmod
更改密码 :passwd
切换用户 :su
以其他用户执行 :sudo
查看当前用户的信息:id

68/查看当前的环境变量
env

69/lsattr - list file attributes on a Linux second extended file system

70/磁盘格式化:
mkfs

71/进程管理:
查看 :ps aux
进程树 :pstree
杀死进程 :kill PID
   pkill PNAME
动态查看 :top
后台进程 :&
置到后台 :bg
调回前台 :fg
查看后台进程 :jobs
优先级调整 :renice


72/显示command执行的时间:
time command
ex:time ls

73/命令历史:
history

74/系统启动时的信息:
dmesg

75/日志文件存放在:
/var/log/

76/系统运行时间:
uptime - Tell how long the system has been running.

77/show listing of last logged in users
last

78/网络管理:
测试网络是否物理联通:
ping

show / manipulate the IP routing table:
route

查看DNS服务的配置:
/etc/resolv.conf

通过DHCP得到某网卡IP:
dhclient eth0

Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships:
netstat

show / manipulate routing, devices, policy routing and tunnels:
ip
ex:
ip addr
ip route

79/ 关机:
poweroff

80/重启:
reboot

90/查看前一个命令的执行结果:
echo $?
无错误为0,有错误为非0

91/print system information:
uname

92/列出man中与command所有有关的信息(指在哪个man页中):
man -f command
例:
man -f mv

93/利用关键词从man中查找资料:
man -k keyword
例:man -k ls

94/如果X Window发生问题而挂掉,那么可以按下[crtl]+[alt]+[backspace]来让 X window 重新启动

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值