VIM常用命令
gg //到第一行
(N)G //到第n行(N为整数)
G //到最后一行
0 //到行头
$ //到行尾
(N)dd //删除N行,并将内容保存到粘贴板
p //将粘贴板中内容复制到当前位置
u //撤销操作
ctrl+r //恢复撤销的操作
ESC+ :q! // 退出不保存
ESC+ :qa! // 强行退出所有正在编辑的文件
ESC+ :wq //保存修改后退出
:set nu //设置行号
:
:set nonu //取消行号
查看linux内核版本等信息
vmware-hgfsclient //查看物理主机和虚拟机共享的盘
vmhgfs-fuse .host:/F /mnt/hgfs //将物理磁盘F 挂载到linux的/mnt/hgfs目录下
KALI安装搜狗拼音输入法(曾经困扰过我很久)
1、卸载ibus及其所有组件
2、更新源:apt-get update
3、下载小企鹅输入法框架下的一些依赖组件:
apt-get install fcitx-libs fcitx-libs-qt fcitx-bin fcitx-data fcitx-modules fcitx-module-dbus fcitx-module-kimpanel fcitx-module-lua fcitx-module-x11 fcitx fcitx-tools fcitx-ui-classic fcitx-libs-gclient
4.安装fcitx图形化界面:
apt-get install fcitx-config-gtk2 fcitx-config-gtk3
5、到搜狗输入法官网下载对应版本的安装包,官网下载地址:http://pinyin.sogou.com/linux/?r=pinyin,如果系统是64位则下载的是sogoupinyin_2.1.0.0086_amd64.deb
6、使用dpkg -i 安装:
dpkg -i sogoupinyin_2.1.0.0086_amd64.deb
7、如果有报错,使用apt-get -f install进行依赖包的安装,然后在执行步骤六进行安装。
8、安装成功后重启,Ctrl+空格可以切换输入法。
linux的一些系统知识
目录结构
linux三级目录:根目录,一级目录,二级目录
根目录下的bin,sbin
usr下 的bin,sbin 这四个目录都用来保存系统命令
bin内命令可由root和普通用户执行
sbin下命令只能由root用户执行
boot //启动目录
etc //系统默认配置文件
所有存储设备都要挂载后才能在linux上使用
proc //直接写入内存
sys //两个目录不能直接操作,这两个目录保存的是内存的挂载点
root相关信息记录在 /etc/passwd
个人密码记录在 /etc/shadow
linux组名记录在 /etc/group
chgrp adm 1.sh //改变文件的属主为adm 前提是 被改变后的组名必须在/etc/group档案内存在
chown bin 1.sh //改变文件的拥有者为bin 前提是 被改变后的用户名必须在/etc/passwd中存在
chown admin:bin 1.sh //同时改变所有者和属主
chown -R root:bin 1.sh //递归改变档案或者目录发所有者和属组
硬链接
(一个教室两个门,类似于只指向同一个 分区表(每一行包括inode,文件时间,存储位置等信息)即每一行都包括一个档案信息 的指针) 比较隐蔽不易发现
1.拥有相同i节点和存储block块,可以看做同一个文件
2.可通过i节点识别
3.不能跨分区
4.不能针对目录使用
5.删除原文件,硬链接依旧能显示原来的内容
ln /root/1.sh /tmp/2.sh
ls -l /root/1.sh //查看档案的i节点
软链接
ln -s /root/1.sh /tmp/2.sh
1.等于windows的快捷方式
2.软链接拥有自己的I节点和Block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据
sb为原文件 csb为软链接
3.lrwxrwxrwx 文件属性l中代表软链接 软链接文件权限都为777
4.删除原文件,软链接无法使用
5.软链接一定要写绝对路径,否则软链接后的文件只会在当前目录下查找
ln -s 1.sh /tmp/ //会报错
ln -s /root/Desktop/1.sh /tmp //需要写绝对路径
基本命令
linux系统下压缩和解压缩命令
1.zip压缩
压缩文件
格式: zip 压缩之后的文件名 被压缩的原文件
压缩目录
格式:zip -r 压缩文件名 被压缩的目录
解压缩 unzip movie.zip (解压缩文件和目录都是)
2.gz
gzip 源文件 //压缩为.gz格式的压缩文件,源文件会消失
gzip -r 目录 //压缩目录下所有子文件,但是不能压缩目录
解压缩
gzip -d 需要解压文件
gunzip 需要解压的文件
gunzip -r 需要解压的目录
3.bz2(不能压缩目录)
bzip2 要压缩的文件 //压缩为.bz2格式,不保留源文件
bzip2 -k 源文件 //压缩之后保留源文件
解压
bzip2 -d 需解压的文件 //-k保留压缩的文件
bunzip2 需解压的文件 //-k 保留压缩的文件
4.打包和解打包命令
.tar.gz的压缩格式
压缩多个文件 tar -zcvf /tmp/test.tar.gz jp abc.cfg
//将jp和abc.cfg两个文件同时压缩到指定目录
tar -ztvf test.tar.gz //查看压缩包 不解压
压缩
tar -jcvf 压缩包名.tar.bz2 源文件
-j 压缩为.tar.bz2格式 (包括了将目录打包的过程)
解压缩
tar -jxvf 压缩包名.tar.bz2
-x 解压缩.tar.bz2格式
tar -jxvf 1.movie.tar.bz2 -C /tmp
//指定解压缩位置
GREP命令(在每个 FILE 或是标准输入中查找 PATTERN)
'^#' ^代表行首 #代表行尾 整体代表空行 dmesg | grep -n --color=auto -A3 -B2 'eth' // -n 显示行号 将grep挑选出的关键字颜色标出 显示-A3关键字后3行 -B2显示关键字前2行 搜索含有关键字'eth'的行 grep -n 'the' grep2.txt //显示含有the的行 grep -n -v 'the' grep2.txt //显示不含有the的行 grep -n -i 'the' grep2.txt //显示含有 the(大小写都包括)的行 grep -n 't[ae]st' grep2.txt //显示含有 tast 或则test的行 grep -n '[^g]oo' grep2.txt //显示oo前面不含g的 grep -n '[^a-zA-Z]ww' grep2.txt //显示ww前面不含字母的 grep -n '0-9' grep2.txt //显示含有数字的一行 grep -n '^the' grep2.txt //显示行首含有the的行 grep -n '^a-z' grep2.txt //显示行首小写字母开头 grep -n '^[^a-zA-Z]' grep2.txt //显示行首不要是字母开头 cat /etc/fstab | grep -n '^[^#]' //显示不要注释的行[^#]代表行首是注释 '^ '中的^表示不是 grep -n '.$' grep2.txt //显示行尾以 . 结尾的行 grep -n '^$' grep2.txt //显示空行 grep -n -v '^$' grep2.txt | grep -v '^#' //输出结果不包含空白行和注释行 grep -n 'g.*g' grep2.txt //输出显示g.....g的行 *表示显示0到无数个前面的一个字符 egrep -n 'go+d' grep.txt //god good gooood +重复一个或一个以上字符 egrep -n 'go?d' grep.txt //god gd 重复一个或0个字符 egrep -n 'gd|good' grep.txt // gd或good cat sed.txt | sed '2,5d' //删除2到5行 cat sed.txt | sed '2a drink tea' //在第2行之后加上 drink tea cat sed.txt | sed '2i drink tea' //在第2行之前加上 drink tea cat sed.txt | sed'2,5c line2 to 5 has been replacd' //将第2行到第5行内容用line2 to 5 has been replacd取代 cat sed.txt | sed -n '5,7p' //仅列出第5行到第7行的内容 printf '%s %s %s %s %s ' $(cat grep.txt) // %s不固定字符串,字符串间用tab分隔符处理 awk字段处理 cat grep.txt | awk '{print $1 " " $3}' //截取grep.txt的第一列和第三列变量并用制表符隔开 cat /etc/passwd | awk '{FS=":"}$3<10{print $1 " " $3}' //以冒号 ":" 作为字段分隔 截取满足第三个变量小于10的条件的行 输出第一个和第三个变量并用制表符隔开
chmod改变档案权限命令
1 chmod 770 1.sh // -rwxrwx--- 2 chmod u=rwx,g=rwx,a=--- 1.sh 3 chmod u+w 1.sh //给1.sh 所有者增加修改权限 4 chmod g-w 1.sh //给1.sh 属组去除修改权限 5 chmod u+w,g+x //给1.sh 所有者增加修改权限 给属主增加执行权限 6 chmod a+w 1.sh //给所有身份增加修改权限 7 8 mkdir -p /home/bird/testing/test1 9 rmdir -p /home/bird/testing/test1 //只能删除空目录 10 rm -r /home //递归删除目录 11 cp -s bashrc bashrc_slink // -s符号链接 12 cp -l bashrc bahsrc_slink //-l 实体链接 13 mv bashrc mvtest //重命名 14 mv bashrc1 bashrc2 mvtest2 //同时复制两个档案到mvtest2目录下 15 more //查看 /字符串 只能向下搜寻字符串 16 less // /字符串 向下搜寻字符串 ?字符串 向上搜寻字符串 17 ls -l /etc/man.config //modification time内容数据变更时时间更新 18 ls -l --time=ctime /etc/man.config //status time 权限属性变更时时间更新(目前时间) 19 ls -l --time=atime /etc/man.config //access time 内容被读取时时间更新 20 touch //建立空档案 更改已经建立档案时间(modificaiton time) 21 22 新建的档案预设权限666(无执行权限 因为档案不需要执行) 23 新建的目录预设权限777 24 umask //新建一档案或者目录默认扣掉的分值 25 0022 所以默认新建档案是444 -rw-r--r-- 新建默认目录是755 drwxr-xr-x 26 umask 002//设置拿掉的是档案和目录的其他人的write权限 27 有助于文档安全 28 chattr +i NAU1 29 //chattr修改隐藏属性 不能被写入和删除,不能改名,设定链接 30 chattr -i NAU1 31 //去除隐藏属性 32 chattr +a NAU1 33 //档案只能增加数据 不能删除也不能修改数据 34 lsattr //查询隐藏属性 35 36 SUID权限 37 • SUID 权限仅对二迚制程序(binary program)有效; 38 • 执行者对亍该程序需要具有 x 癿可执行权限; 39 • 本权限仅在执行该程序癿过程中有效 (run-time); 40 • 执行者将具有该程序拥有者 (owner) 癿权限。 41 42 -rwsr-xr-x 1 root root 57972 2月 24 08:33 passwd 43 s特殊权限可让群组暂时获得所有者所拥有的所有权限 所以可以写 44 45 file NAU3 //查看档案格式 46 t@kali:~/Desktop# file NAU3 47 NAU3: HTML document, ASCII text
常用的其他命令
1 which -a 命令 2 //从PATH目录寻找所有可以找到的指令 3 4 whereis 5 //从档案数据库中查找指定指令 很快 6 -b 只找binary格式文件 7 -m 只找出跟指令有关的man说明文件 8 9 locate -i iPconfig 10 //搜寻已建立的数据库/var/lib/mlocate/(每天默认更新1次)里面的数据所能搜索到的 11 updatedb //可先更新数据库再locate查找命令 12 Locate后接的命令可不分大小写 并且所有包含命令的路径完整名称都会显示出来 13 14 find . -size +50k -a -size -60k //查找当前目录下大于50k而且小于60k的文件 15 find . -size +50k -a ! -size -60k //查找当前目录下大于50k且不小于60k的文件 16 find . -size -50k -o -size +60k 17 //查找当前目录下小于50k或则大于60k的文件 18 • /dev/sd[a-p][1-15]:为SCSI, SATA, USB, Flash随身碟等接口癿磁盘文件名 19 20 • /dev/hd[a-d][1-63]:为 IDE 接口癿磁盘文件名 21 22 扇区为最小物理存储单位 512字节 23 第一个扇区很重要:包括 24 1.MBR(master boot record),主要开机区占446字节 25 2.分割表(partition table),占64字节。 26 27 ctrl+L //清屏 28 /dev/ //硬件设备文件 29 ls -l //longlist详细信息显示 30 ls -l -h //人性化显示参数 KB 31 ls -a //显示隐藏文件(系统文件) 32 ls -l /etc //显示指定文件目录下的属性 33 ls -ld /etc/ //显示指定文件本身属性 34 ls -l 指定文件目录 35 ls -i //显示文件id号(每个文件都有一个id号,系统也是根据其选择) 36 -rw-r--r-- //文件格式用十位显示,能识别7种 37 常见三种文件类型(第一位显示) 38 - 普通文件 39 d 目录文件 40 l 软链接文件 41 42 剩下10位 43 rw- r-- r-- 44 u所有者 g所属组 o其他人 45 r读 w写 x执行 46 47 mkdir -p japan/canglaoshi 48 //递归建立目录 49 50 cd ~ //进入家目录 51 cd //进入家目录 52 cd - //进入上次目录 53 cd .. //进入上层目录
cut命令
cut 命令(针对行信息的选取命令) -b 提取一行里的第几个字节byte (一个英文和数字占一个字节,一个汉字占两个字节) who查看当前已登陆用户信息 [rocrocket@rocrocket programming]$ who rocrocket :0 2009-01-08 11:07 rocrocket pts/0 2009-01-08 11:23 (:0.0) rocrocket pts/1 2009-01-08 14:15 (:0.0) 如果我们想提取每一行的第3个字节,就这样: [rocrocket@rocrocket programming]$ who|cut -b 3 c c c 切勿汉字依旧设置 -b 3,汉字占两个字节如此设置会出现乱码 -c提取一行行里的第几个字符 (不是字符串) 下面例子你似曾相识,提取第3,第4,第5和第8个字符: [rocrocket@rocrocket programming]$ who|cut -c 3-5,8 croe croe croe 用-d设置间隔符,-f设置要提取的域 (下面间隔符设置为:) [rocrocket@rocrocket programming]$ cat /etc/passwd|head -n 5 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin [rocrocket@rocrocket programming]$ cat /etc/passwd|head -n 5|cut -d : -f 1 root bin daemon adm lp 设置间隔符为空格或者制表符,两个单引号之间需要空格 [rocrocket@rocrocket programming]$ cat tab_space.txt this is tab finish. this is several space finish [rocrocket@rocrocket programming]$ cat tab_space.txt |cut -d ' ' -f 1 this this
查看硬件时钟和软件时钟