首页 > 代码库 > Linux学习笔记

Linux学习笔记

  • linux 启动
cat /etc/inittab
id:3:initdefault:  字符启动
startx 切换X窗口启动
id:5:initdefault: X窗口启动

  • windows hosts:
%SystemRoot%\system32\drivers\etc\

  • linux jdk:
export JAVA_HOME=/usr/java/jdk1.6.0_27
export JAVA_BIN=/usr/java/jdk1.6.0_27/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
  • ctags+vim
vim:
安装vim:sudo apt-get install vim;
Esc键 --左上角那个键 (普通模式), 输入冒号 (命令行模式),wq --w(write) 写入, q(quit)退出,!(感叹号) 强制
i 进行插入 
(3)Vim分屏启动:
使用大写的O参数来垂直分屏。 
vim -On file1 file2 ...?使用小写的o参数来水平分屏。 
vim -on file1 file2 ...注释: n是数字,表示分成几个屏。

启动Vim后进行分屏
水平分屏。 
:split垂直分屏。 
:vsplit关闭分屏
关闭当前窗口。 
Ctrl+W c关闭当前窗口,如果只剩最后一个了,则退出Vim。 
Ctrl+W q分屏
上下分割当前打开的文件。 
Ctrl+W s?上下分割,并打开一个新的文件。 
:sp filename?左右分割当前打开的文件。 
Ctrl+W v?左右分割,并打开一个新的文件。 
:vsp filename移动光标
Vi中的光标键是h, j, k, l,要在各个屏间切换,只需要先按一下Ctrl+W

把光标移到右边的屏。 
Ctrl+W l 把光标移到左边的屏中。 
Ctrl+W h 把光标移到上边的屏中。 
Ctrl+W k 把光标移到下边的屏中。 
Ctrl+W j 把光标移到下一个的屏中。. 
Ctrl+W w移动分屏
这个功能还是使用了Vim的光标键,只不过都是大写。当然了,如果你的分屏很乱很复杂的话,这个功能可能会出现一些非常奇怪的症状。

向右移动。 
Ctrl+W L向左移动 
Ctrl+W H向上移动 
Ctrl+W K向下移动 
Ctrl+W J屏幕尺寸
下面是改变尺寸的一些操作,主要是高度,对于宽度你可以使用Ctrl+W <或是>,但这可能需要最新的版本才支持。

让所有的屏都有一样的高度。 
Ctrl+W =?增加高度。 
Ctrl+W +?减少高度。 
Ctrl+W -

(4)常用命令
处于普通模式下进行:
j: 移动到下一行,k:移动到上一行,l:向右移动,h:向左移动
dd:剪切当前行 ,10dd:剪切从当前行后面10行
yy:复制当前行 ,10yy复制从当前行后面10行
p: 粘贴到当前行的下一行
o: 在当前行的下一行插入
r: 替换当前字符

fx:移动光标到当前行的下一个 x 处。很明显,x 可以是任意一个字母,而且你可以使用 ; 来重复你的上一个 f 命令。
tx:和上面的命令类似,但是是移动到 x 的左边一个位置。(这真的很有用)
Fx:和 fx 类似,不过是往回找。
w:光标往前移动一个词。
b:光标往后移动一个词。
0:移动光标到当前行首。
^:移动光标到当前行的第一个字母位置。
$:移动光标到行尾。
):移动光标到下一个句子。
( :移动光标到上一个句子。

<Ctrl+F>:向下移动一屏。
<Ctrl+B>:向上移动一屏。
G:到文件尾
numG:移动光标到指定的行(num)。(比如 10G 就是到第 10 行)
gg:到文件首
H:移动光标到屏幕上面
M:移动光标到屏幕中间
L:移动光标到屏幕下面
*:读取光标处的字符串,并且移动光标到它再次出现的地方。
#:和上面的类似,但是是往反方向寻找。
/text:从当前光标处开始搜索字符串 text,并且到达 text 出现的地方。必须使用回车来开始这个搜索命令。如果想重复上次的搜索的话,按 n。
?text:和上面类似,但是是反方向。
ma:在当前光标的位置标记一个书签,名字为 a。书签名只能是小写字母。你看不见书签的存在,但它确实已经在那里了。
`a:到书签 a 处。注意这个不是单引号,它一般位于大部分键盘的 1 的左边。
`.:到你上次编辑文件的地方。这个命令很有用,而且你不用自己去标记它。

i:在当前字符的左边插入
I:在当前行首插入
a:在当前字符的右边插入
A:在当前行尾插入
o:在当前行下面插入一个新行
O:在当前行上面插入一个新行
c{motion}:删除 motion 命令跨过的字符,并且进入插入模式。比如:c$,这将会删除从光标位置到行尾的字符并且进入插入模式。ct!,
这会删除从光标位置到下一个叹号(但不包括),然后进入插入模式。被删除的字符被存在了剪贴板里面,并且可以再粘贴出来。
d{motion}:和上面差不多,但是不进入插入模式。

ctags:
1)首先,需要安装 ctags,在终端里输入以下命令来安装 ctags
apt-get install ctags
2)接下来,需要在 linux-2.6.30.4 主目录下递归地创建 tag 标记
cd linux-2.6.30.4 切换到内核主目录下
ctags -R
为内核里的所有函数递归地创建标记,此过程需要几分钟
3)做完以上两步之后,以后就可以直接使用 ctags 帮助我们搜索内核函数了
cd linux-2.6.30.4 必须在内核主目录下才能使用 ctags
vim 打开 vim,在 vim 里输入 ctags 命令即可实现函数查找
命令 说明
:ta function
查看名为 function 的函数
:tnext
查看下一个
:tfirst
查看搜到的第一个
:ts function
查看名为 function 的函数,如果有多个则列表
Ctrl+] 进入光标所在的函数或结构体定义
Ctrl+o 返回到上一次的位置
gf
进入到光标所在的文件
表 4.4.1 查看内核函数的操作
例如,要查找 platform_device 的结构体定义,过程如下:
1)在 linux-2.6.30.4 目录下,打开 vim ” ,按下 :”进入命令行模式,输入:ts platform_device
2)按下回车后,可以看到搜到了两个结果,第 1 个结果是我们想要查找的,输入数字 1,然后回车
3)接下来就可以看到 platform_device 结构体的定义了
  • linux查看当前文件夹大小:
        du -sh . 
  • Linux设置定时任务:
1) 在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2)直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务
    10 13 25 9 * root rm -rf /mnt/fb           --m h dom mon dow user  command   分  小时  日  月  星期  用户  命令 
  • 查看库是否编译正确
ldd –r lib.so  //动态库
nm libfirst.a | more  //静态库
  • 查看端口状态  
     netstat -apn | grep 端口号
     lsof -i | grep 端口号
     二、用端口扫描器nmap来检查哪些端口正在监听网络
     判定哪些端口在监听来自网络上的 TCP 连接是:
     nmap -sT -O localhost
  • 查看文件尾部
     tail –f filename
  • linux下抓tcpdump包
     tcpdump -s0 -vvvX host 218.17.157.74 and port 9015
  • 查看core文件依赖
     file core.110
  • 浅析Linux下core文件
ulimit -a    --查看core熟悉
ulimit -c 1024 --设置core产生大小
ulimit -c unlimited  --设置core文件产生不受限制
  • 查看文件系统大小
     df -h   查看分区块大小
     du -h --max-depth=1 [文件夹名称]   查看指定文件夹大小
  • 查看磁盘的使用情况
      df -h
          文件系统              容量  已用 可用 已用% 挂载点
     /dev/sda1              18G  6.9G  9.7G  42% /
             tmpfs                 442M     0  442M   0% /dev/shm
     fdisk -l       能列出机器中所有磁盘的个数,也能列出所有磁盘分区情况
     cat /proc/partitions      查看目前机器中的所有磁盘及分区情况
  • 查看内存大小
参数:free [-m|g]按MB,GB显示内存
  • 查看cpu
      cat /proc/cpuinfo
     只看cpu数量   grep "model name" /proc/cpuinfo | wc -l
     只核心数量      grep ‘core id‘ /proc/cpuinfo | sort -u | wc -l
     只看线程数据   grep ‘processor‘ /proc/cpuinfo | sort -u | wc -l
  • 查看系统内存
      cat /proc/meminfo
  • 查看每个进程的情况
     ps -ef 
  • 查看负载
      w
      uptime

  • 查看磁盘io负载:
     iostat -x 1 10
  • 查看实时内存使用情况
     top
  • 查看文件夹大小
du -h --max-depth=0  [dir] 
du -sh [dir]
  • 查看程序的各段大小
   size ./test
   text    data     bss     dec     hex filename
   1252     292       8    1552     610 ./test
  • linux 给文件夹的所有子文件夹授权
chmod -R 777 /var/home/userid/cc
  • Linux下设置快捷方式:
          alias bin="cd $SCS_ROOT/bin"
  • linux联机下拷贝文件命令:
          scp username@host:path/filename .
  • 解压与压缩(bz2文件压缩率比较好)
*.tar.bz2文件命令,解压:tar -jxvf *.tar.bz2 , 压缩:tar -jcvf *.tar.bz2 文件夹名称
*.tar.gz文件命令, 解压:tar -xvf *.tar.gz 压缩:tar -cvf *.tar.gz 文件夹名称
*.zip文件命令,解压:unzip 文件名称, 压缩:zip *.zip 文件夹名称
  • RPM安装包:
rpm -qa | grep tcp
rpm -ivh test.rpm      安装
rpm -Uvh test.rpm      升级
  • 启用ubuntu root 用户
      sudo passwd root
  • 输入结束符
      EOF        ctrl +d
  • 常用命令查看cpu
   cat /proc/cpuinfo
  • 常用命令查看内存
   cat /proc/meminfo
  • 常用命令查看cpu是32位还是64位
   getconf LONG_BIT
  • 常用命令查看当前linux的版本
      cat /etc/redhat-release
  • 常用命令查看内核版本
   uname -a
  • 常用命令查看当前时间
     date

Linux学习笔记