###Linux基础 - 2
点击查看Evernote原文。
#@author: gr
#@date: 2014-10-13
#@email: forgerui@gmail.com
一、Linux基础命令2
mount: 挂载U盘,虚拟镜像
一般形式:mount [-t vfstype] [-o options] device dir
-t vfstype表示类型,常用类型有:
光盘或光盘镜像:iso9660
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:ntfs
-o options主要用来描述设备或档案的挂载方式。常用的参数有:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备# 挂载windows文件系统/mnt目录下
mount -t ntfs /dev/sda1 /mnt
# 挂载光盘
mount -t iso9660 -o loop a.iso /mnt
umount: 卸载设备# 卸载到/mnt的设备
umount /mnt
find: 在目录中查找文件
一般形式:find path -name filename# 在当前文件下
find ./ -name 'test'
grep: 在文件中查找字符# 在a.txt中查找abc字符串
grep abc a.txt
# 利用管道查找文件内容
cat a.txt | grep abc
# 在当前目录的所有文件中查找abc字符串
grep abc -R ./
# 查找没有注释的行
grep -v "^#" a.txt

tar: 解压缩命令
Linux下打包和压缩是两个概念,可以使用tar进行打包,然后使用不同的压缩方式压缩。tar可以将这两个过程连接起来,调用压缩程序进行压缩。下面是其调用的对应关系:
gzip .gz zxvf
compress .Z Zxvf
bzip2 .bz2 jxvf
使用上面的对应关系,便可以进行文件的解压缩。# 解压test.tar.gz
tar zxvf test.tar.gz
# 把test目录打包,不压缩
tar cvf test.tar test/
# 把test目录打包压缩成.bz2的格式
tar jcvf test.tar.bz2 test/
top: 查看系统中的进程对cpu、内存等的占用情况。
up 5:37: 系统启动时间,5小时37分钟。
4 users: 4个用户
load average: 负载情况,第一位:表示最近1分钟平均负载; 第二位:表示最近5分钟平均负载; 第三位:表示最近15分钟平均负载。
# 查看cpu核心数
grep 'model name' /proc/cpuinfo | wc -l
单核如果load average = 1, 表明已经满载,如果是多核,应该除以核心数。我的0.7 / 4 = 0.17也还是特别高。
Task 224 total: 224个进程,222个休眠,1个running, 1个僵尸
CPU状态: 79.6 id 表示cpu有79.6是idle空闲的,越大越好
Mem状态:只生剩下367M内存了,看来我的程序跑的比较多。
SWP: 虚拟内存,大概8G左右,我已经使用了虚拟内存,看来我的内存确实有问题了,一般会使用完内存的时候,再用虚拟内存,将内容写到磁盘上。# 10秒刷新一次
top -d 10
# u选择用户程序
# q退出程序

ps: 显示当前的进程信息# 查看当前所有进程信息
ps aux
a显示终端上的所有进程,包括其他用户的进程。
u以用户为主的格式来显示程序状况。
x显示所有程序,不以终端机来区分。

kill: 杀死正在运行的进程
每个进程都有一个pid,可以使用kill命令去结束这个进程。# 删除pid为2440的进程
kill 2440
# -9 表示强制删除
kill -9 2440
history: 显示历史命令
历史命令存放在.bash_history中。
HISTFILESIZE定义了在.bash_history中保存命令的记录总数.默认大小为1000.
HISTSIZE定义了history命令输出的记录数.# 执行history中第789个命令
!789
# `!cmd` 执行上个histroy中最近的命令
!cat #执行最上次执行的cat命令
man: 用户帮助页
不可能记住每个命令的用法,这时可以使用man去查看帮助。如下list的man page:

Linux命令到此为止,实际上还有许多Linux命令,包括一些文本处理的命令,可以参见博客《Linux基本文本处理》,此外可以了解Sed《Sed基础入门》, AWK等工具。
二、编辑器
掌握Linux下基本的文本编辑器,增强在纯文本下编程的能力。这里主要使用主流的VIM。
初识VIM
vim是vi的improved版本。它是一个优秀的文本编辑器(神器)。刚开始使用vim可能感觉不习惯,但时间长了以后,你会喜欢上它的。它避免了频繁在鼠标与键盘之间切换,提高效率。可以安装自己的插件,打造自己的IDE环境。VIM的三种模式
变通模式:在普通模式下,可以进行光标移动,h,j,k,l分别表示左,下,上,右,当然也可以使用上下左右键,但不建议这么做。
插入模式:普通模式按i键便进入插入模式,插入模式可以输入删除文本。
命令行模式:又称尾行模式,可以执行一些命令。打开一个文件
vi a.txti插入模式,使用<ESC>键返回普通模式。使用:wq保存退出。普通模式中的操作
# 普通模式下的命令
• yy: 复制当前光标所在行
• [n]yy: n为数字,复制当前光标开始的n行
• 0: 光标移至行首
• $: 光标移至行尾
• n$: 光标移至第n行的行尾
• p: 粘贴复制的内容到光标所在行
• dd: 删除当前光标所在行
• [n]dd: 删除当前光标所在行开始的n行
• /name: 查找光标之后的名为“name”的字符串
• G: 光标移动到文件尾(注意是大写)
• u: 取消前一个动作(注意是小写)
• *: 向下查找光标处的单词
尾行模式:
• :w 保存
• :q 退出vi(系统会提示保存修改)
• :q! 强行退出(对修改不做保存)
• :wq 保存后退出
• :w [filename] 另存为filename的文件
• :set nu 显示行号
• :set nonu 取消行号
三、进一步使用Shell
配置环境变量
我们在Windows下可能也配置过一些环境变量,以方便让程序打到可运行的程序,同样,在Linux下有时也需要配置环境变量。
一般可以在/etc/bashrc和/etc/profile中可以配置所有用户的变量,在/.bashrc和/.profile中可以配置自己用户的环境变量。
环境变量使用export表示全局变量。# 配置texlive环境
PATH=/usr/local/texlive/2013/bin/x86_64-linux:$PATH; export PATH
MANPATH=/usr/local/texlive/2013/texmf-dist/doc/man:$MANPATH; export MANPATH
INFOPATH=/usr/local/texlive/2013/texmf-dist/doc/info:$INFOPATH; export INFOPATH
# 配置history相当变量
export HISTSIZE=1000000
export HISTFILESIZE=1000000
# 配置Java环境变量
export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH
重定向
Linux有三种常见重定向,即如下:# STDIN 0 标准输入
# STDOUT 1 标准输出
# STDERR 2 标准错误 # 把当前目录文件列表输出到mylist.txt
ls -al > mylist.txt
# 标准错误输出到err_file.txt中
myprogram 2> err_file.txt
# 标准输入
wc -l < /etc/passwd
如果需要进一步学习重定向,请看《Linux输入输出重定向》。
管道
Shell提供管道命令"|"将命令前后衔接在一起。把前一个命令的结果提供给后一个程序当作参数# 查找/etc/passwd中gr字符串
cat /etc/passwd | grep gr
# 以排序查看当前目录(不包含子目录)的磁盘占用情况
du -S | sort -n
命令替换
一般形式:cmd1 `cmd2`,这里的`符号是Tab键上方的键。echo `date`
g++ test.cpp -o test `pkg-config --libs --cflags opencv`
命令聚合
# 顺序执行
$ cmd1; cmd2
# 当cmd1执行成功时运行cmd2
$ cmd1 && cmd2
# 当cmd1执行失败时运行cmd2
$ cmd1 || cmd2
四、Shell脚本编程
这里就不说了,大家如果想学的话,可以自己学习o_)。
###Linux基础 - 2的更多相关文章
- Linux基础练习题(二)
Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...
- 大数据每日干货第四天(linux基础之一目录结构与常用命令)
为了和qq空间同步,也写的第四天,前面几天明天会发布,本来打算把每天学的东西记录下来,通过朋友给的建议要发的话稍微系统化下,从大数据需要的linux基础,到离线数据分析包括hadoop. ...
- Linux课程实践一:Linux基础实践(SSH)
一.SSH服务 1. 安装SSH (1)查看是否已经安装过ssh服务 rpm -qa |grep ssh (2)进行安装 sudo apt-get install openssh-server Ubu ...
- 还是不想改报告,伊阿忆啊哟-Linux基础继续
hi 虽然今天是最最美好的周六(前不着工作日后不着工作日),但老子还要来改报告,但额就是不想改,你拿我有啥办法啊... 争取完结Linux基础 一.Linux常用命令(三) 4.帮助命令 4.1 帮助 ...
- 原来今天是感恩节-Linux基础继续&MySQL和PHP
hi 原来今天是感恩节.虽然一直没有过这个节日的习惯,但仅仅是听到感恩的消息,都能想到一幅幅画面.愿大家安好! 下午开题会议还是有所收获,悄悄的,就变向那个不喜欢自己的人了. 一.Linux基础(二) ...
- 买错的电影票,含着泪也得看-LAMP搭建&Linux基础
hi 没说过,上周五室友过生请客,在龙湖里吃嗨了喝爽了,回去的路上侃侃而谈.说好的这周一起去看年内最后的大片,火星救援的,谁知道老子眼神不好,买错了电影的时间...把周六的约定提前到了今儿个下午,ma ...
- Linux基础3(文件权限)
文件权限 1.普通权限 (登陆用户对文件或目录的读写执行的权限) 普通权限对管理员用户无效 文件和目录 都有4中类型的用户u 所有者 : 文件.目录的创建者g 所属组 : 文件.目录属于的用户组o 其 ...
- Linux课程实践一:Linux基础实践(基础操作)
一.软件源维护 1. 基本操作 (1)查看源列表 sudo vim /etc/apt/sources.list deb:二进制软件安装包 deb-src:源码包 (2)备份软件源列表 sudo cp ...
- 实践一:Linux基础实践
一.Linux基础实践 1.1 1. 掌握软件源的维护方法,配置系统使用软件源镜像.掌握通过软件源来查找,安装,卸载,更新软件的方法. 这部分内容在许多学长学姐的报告里都有很详细的讲解,我在此就不赘述 ...
- Linux基础精华
Linux基础精华 (继续跟新中...) 常用命令: Linux shell 环境 让你提升命令行效 率的 Bash 快捷键 [完整版] 设置你自己的liux alias Linux的Find使用 L ...
随机推荐
- 将Sublime Text 2搭建成一个好用的IDE
将Sublime Text 2搭建成一个好用的IDE 说起编辑器,可能大部分人要推荐的是Vim和Emacs,本人用过Vim,功能确实强大,但是不是很习惯,之前一直有朋友推荐SUblime Text 2 ...
- 使用Redis bitmaps进行快速、简单、实时统计
原文:Fast, easy, realtime metrics using Redis bitmaps (http://blog.getspool.com/2011/11/29/fast-easy-r ...
- LDO稳压器工作原理
LDO稳压器工作原理 随着便携式设备(电池供电)在过去十年间的快速增长,像原来的业界标准 LM340 和LM317 这样的稳压器件已经无法满足新的需要.这些稳压器使用NPN 达林顿管,在本文中称其为N ...
- HDU2177:取(2堆)石子游戏(威佐夫博弈)
Problem Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同 ...
- 淘宝IP地址查询
官方网址:http://ip.taobao.com/index.php 相关文章: http://www.cnblogs.com/zetee/p/3482085.html http://www.cnb ...
- cocos2d-x sprite触摸处理
转自:http://www.cnblogs.com/lancidie/archive/2013/04/01/2993890.html 我们常常需要判断用户的点击操作是否落于某个sprite之上,进而让 ...
- UITableview 中获取非选中的cell
实现效果如图: 在cell中有一个button,选中cell改变button的选择状态 yes,选中另外一个cell,别的cell中的button选择状态变成false. //获取当前可显示的cell ...
- samba 问题Windows能看到文件夹但是不能打开
问题同上,查看防火墙等等各种方法都试过了没能解决,最后问题太弱智了. 设置共享的目录在root下,root是神圣不可侵犯的,怎么能在这个下面呢
- BZOJ 1878: [SDOI2009]HH的项链 离线树状数组
1878: [SDOI2009]HH的项链 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...
- ORACLE 毫秒与日期的相互转换
毫秒转换为日期 SELECT TO_CHAR(1406538765000 / (1000 * 60 * 60 * 24) + TO_DATE('1970-01-01 08:00:00', 'YYYY- ...