百度、google都能搜得到,但是很杂。这里记录下我记不清的,但是又比较常用的一些linux命令用法。
mount
挂载设备命令,一般挂载存储设备就用这个了(硬盘、U盘等)。
mount [-t vfstype] [-o options] device dir
其中:
- -t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:
- 光盘或光盘镜像:iso9660
- DOS fat16文件系统:msdos
- Windows 9x fat32文件系统:vfat (一般U盘的是这种文件系统)
- Windows NT ntfs文件系统:ntfs
- Mount Windows文件网络共享:smbfs
- UNIX(LINUX) 文件网络共享:nfs
- -o options 主要用来描述设备或档案的挂接方式。常用的参数有:
- loop:用来把一个文件当成硬盘分区挂接上系统
- ro:采用只读方式挂接设备
- rw:采用读写方式挂接设备
- iocharset:指定访问文件系统所用字符集
- device 要挂接(mount)的设备。
- dir设备在系统上的挂接点(mount point)。
具体的可以去看 man mount 。在挂载 samba 的时候如果说啥 mount 格式错误,一般是没有装 smbfs , apt-get install 装一个就好。
查看电脑上的文件系统:fdisk -l 或 more /proc/partitions (一般要有root权限)。一般的用法是:
// /mnt/windows 必须存在 // 用完了卸载用 sudo umount /mnt/windows sudo mount -t ntfs /dev/sda1 /mnt/windows // 挂载 samba 网络设备(以 192.168.0.8 为例) sudo mount -t smbfs -o username=****,password="****" 192.168.0.8:/xx /mnt/samba
要想在一开机就让linux自己挂载某个硬盘分区可以这样:编辑/etc/fstab,加入以下一行:
/dev/sda1 /mnt/windows ntfs defaults 0 0
卸载命令是:umount
find
查找文件命令。常用的形式: find path -type f -name filename -depth 。- path: 路径,一般当前路径可以用 "." 表示。
- -type:查找的文件类型,f 表示普通文件。其他的可以看 man find。
- -name:查找文件的名字,可以用正则表达式(不过我基本上只会用*而已)。
- -depth:表示递归查找(查找子目录),好像可以设置深度的,具体的看 man 吧。
grep
查找文件内容命令。常用的形式: grep -Irn findstrings filenames。- I:表示忽略小写。
- r: 表示查找子目录。
- n:表示显示行号。
- v:这个表示方向查找,就是显示不包含查找内容的文件。例如 grep -Irn xx . | grep -v svn 就可以不去查找可恶的svn目录下的的东西。
- findstrings:要查找的字符串,同样支持正则表达式。
- filenames:要查找的文件。
sed
流编辑器,功能十分强大,但是我目前就会用它的一点点功能而已,简单的说它能将输入文件一行一行的做处理。这样它和 grep , find 配合起来做替换的话,就十分方便了。常用形式:sed 's/old/new/g' -i files 。- 's':这个是替换命令,和vim的替换命令差不多。
- -i:将输出写入原文件,也就是修改原文件的内容;如果不加的话就会输出到标准输出(一般是终端)。
- files:输入的文件,可以是多个。
这里与 grep 配合一个就可以在一个工程项目里做全局的替换了:(在工程的根目录弄)
# grep -r old * | sed 's/old/new/g' -i
apt-get install
从网上下载并安装软件包。用法很简单,一般就是 sudo apt-get install xx ,但是一般会记不住包的名字。可以使用 aptitude search 关键字 (apt-cache search xx)来搜索。软件源可以修改 /etc/apt/source.list (不过一般用图形界面比较方便点),然后使用 sudo apt-get update 来更新。还有 apt-get install xx 的下载包的缓存地址在 /var/cache/apt/archives 里,这里其实可以备份起来,下次重装系统的时候就不用再重新下载了。aptitude dist-upgrade xx 可以单独更新某个包。
chmod 和 chown
chmod 是修改文件权限的,例如添加所属组的读写权限、添加其它用户的读写权限等。chown 是修改文件的拥有者,拥有者对该文件拥有所有权限。
可以 chmod 777 file 的形式来修改某个文件的权限,但是一般数字不太好记,可以使用 chmod -R g+rw file 的形式来改(其中 -R 代表递归,g+rw 代表给 file 所属组的人添加读写权限,其他 a+rw 代表所有人,o+rw 代表其他组的人)。
mkswap, swapon
用来创建和挂载swap分区(linux下的虚拟内存),一般在板子上开发时,可以拿U盘做swap分区(事先要格式化成swap分区格式的)。一般用法是: mkswap /dev/sda 创建swap分区(假设/dev/sda是你的U盘),然后 swapon /dev/sda 挂载上就可以了。然后可以用 free 查看结果。
删除不需要的内核
- dpkg --get-selections | grep linux :可以查看自己安装了多少内核。用 uname -a 可以看到自己目前用的是哪个内核。
- 然后用 apt-get remove xxxx 就可以把自己不要的内核删掉(删掉后会自动把 grub 中对应的启动项目也删掉)。
- 不过某些时候 grub 会检测到一些没有办法启动的启动项目,这个时候可以修改 grub 的菜单文件把无用的项目去掉:
- grub1(ubuntu 9.10 之前):/boot/grub/menu.lst
- grub2(ubuntu 10.04 之后): /boot/grub/grub.cfg
patch
linux打补丁命令。由 vim diff 等工具生成的 .patch 文件可由该命令对源代码打补丁。一般形式为: patch -p0 < xx.patch 。p0 代表是源代码目标的第几层(文件夹深度),0就代表是根目录。一般是把 .patch 文件复制到源代码包的根目录,然后用上面的形式进行打补丁。更多的用 man patch 自己看吧。
ftp
用 ftp 上传东西的时候,如果发的不是文本文件,在上传之前要使用 binary 命令,转化为二进制传输模式,否则上传后的文件可能无法正常使用。
解压 rpm 包
rpm 包可以使用 rpm -i 直接安装,也可以使用 rpm2cpio xxx.rpm | cpio -div 进行解压。
修改用户权限
- useradd
- usermod
usermod -a -G group1 user1就可以将 user1 添加到 group1 组中。具体的用法可以看 man。其中
// 可以看到有哪些组, 组里有哪些用户 cat /ect/groups // 可以看到用户的一些信息 cat /ect/passwd
- chgrp
修改用户密码
passwd user 可以修改指定用户的登陆密码,当然如果修改别的用户要有 root 权限。