tar | grep | find | ssh | sed | awk | vim | diff | sort | export |
args | ls | pwd | cd | gzip | bzip2 | unzip | shutdown | ftp | crontab |
service | ps | free | top | df | kill | rm | cp | mv | cat |
mount | chmod | chown | passwd | mkdir | ifconfig | uname | whereis | whatis | locate |
man | tail | less | su | mysql | yum | rpm | ping | date | wget |
1.tar
参数说明:
参数 | 说明 |
---|---|
-c | 建立一个压缩文件的参数指令(create的意思) |
-x | 解开一个压缩文件的参数指令 |
-t | 查看tarfile里面的文件 |
-z | 是否同时具有gzip的属性?亦即是否需要用gzip压缩? |
-j | 是否同时具有bzip2的属性?亦即是否需要用bzip2压缩? |
-v | 压缩的过程中显示文件 |
-f | 使用文件名,要在f之后立即跟文件名,不能再有其它参数 |
-p | 使用源文件的原来属性 |
-P | 可以使用绝对路径来压缩 |
-N | 比后面接的日期还要新的才会被打包进新建的文件中 |
--exclude FILE | 在压缩过程中,不要将FILE打包 |
示例:
命令 | 说明 |
---|---|
tar -cvf /tmp/etc.tar /etc | 仅打包,不压缩 |
tar -zcvf /tmp/etc.tar.gz /etc | 打包后,以gzip压缩 |
tar -jcvf /tmp/etc.tar.bz2 /etc | 打包后,以bzip2压缩 |
tar -ztvf /tmp/etc.tar.gz | 查看etc.tar.gz内的文件,注意要以gzip格式压缩的文件; 查看时,要加上z参数,这个很重要; |
tar -zxvf /tmp/etc.tar.gz | 将etc.tar.gz解压在当前目录下,进入要解压到的目录,然后再解压 |
tar -zxvf /tmp/etc.tar.gz etc/passwd | 只将etc.tar.gz里的etc/passwd解开 |
tar -zxvpf /tmp/etc.tar.gz /etc | 将/etc/内的所有文件备份下来,并且保存其权限 |
tar -N "2005/06/01" -zcvf home.tar.gz /home | 在/home当中,比2005/06/01新的文件才备份 |
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc | 我要备份/home,/etc,但不要/home/dmtsai |
tar -cvf - /etc | tar -xvf - | 将/etc/打包后直接解开在/tmp底下,而不产生文件; 这个动作有点像是cp -r /etc /tmp; 要注意的地方在于输出档变成-,而输入档也变成-,又有一个|存在; 这分别代表standard output,standard input和管道命令。 |
2.grep
在文件中查找字符串(不区分大小写)
$ grep -i "the" demo_file
$ grep -A 3 -i "example" demo_text
$ grep -r "ramesh" *
3.find
查找指定文件名的文件(不区分大小写)
$ find -iname "MyProgram.c"
$ find -iname "MyProgram.c" -exec md5sum {} \;
$ find ~ -empty
4.ssh
登录到远程主机
$ ssh -l jsmith remotehost.example.com
$ ssh -v -l jsmith remotehost.example.com
$ ssh -V
5.sed
当你将Dos系统中的文件复制到Unix/Linux后,这个文件每行都会以\r\n结尾,sed可以轻易将其转换为Unix格式的文件,使用\n结尾的文件
$ sed 's/.$//' filename
$ sed -n '1!G; h; p' filename
$ sed '/./=' thegeekstuff.txt | sed 'N; s/\n/ /'
6.awk
删除重复行
$ awk '!($0 in array) { array[$0]; print}' temp
$ awk -F ':' '$3=$4' /etc/passwd
$ awk '{print $2,$5;}' employee.txt
7.vim
打开文件并跳到第10行
$ vim +10 filename.txt
$ vim +/search-term filename.txt
$ vim -R /etc/passwd
8.diff
比较的时候忽略空白符
$ diff -w name_list.txt name_list_new.txt
9.sort
以升序对文件内容排序
$ sort names.txt
$ sort -r names.txt
$ sort -t: -k 3n /etc/passwd | more
10.export
输出跟字符串oracle匹配的环境变量
$ export | grep ORCALE
declare -x ORACLE_BASE="/u01/app/oracle"
declare -x ORACLE_HOME="u01/app/oracle/product/10.2.0"
declare -x ORACLE_SID="med"
declare -x ORACLE_TERM="xterm"
$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0
11.xargs
将所有图片文件拷贝到外部驱动器
$ ls *.jpg | xargs -nl -i cp {} /external-hard-drive/directory
$ find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz
$ cat url-list.txt | xargs wget -c
12.ls
以易读的方式显示文件大小(显示为MB,GB...)
$ ls -lh
-rw-r----- 1 ramesh team-dev 8.9M Jun 12 15:27 arch-linux.txt.gz
$ ls -ltr
$ ls -F
13.pwd
输出当前工作目录
14.cd
cd -可以在最近工作的两个目录间切换
使用shopt -s cdspell可以设置自动对cd命令进行拼写检查
15.gzip
创建一个*.gz的压缩文件
$ gzip test.txt
$ gzip -d test.txt.gz
$ gzip -l *.gz
compressed uncompressed ratio uncompressed_name
23709 97975 75.8% asp-patch-rpms.txt
16.bzip2
创建*.bz2压缩文件
$ bzip2 test.txt
$ bzip2 -d test.txt.bz2
17.uzip
解压*.zip文件
$ unzip test.zip
$ unzip -l jasper.zip
18.shutdown
关闭系统立即关机
$ shutdown -h now
$ shutdown -h +10
$ shutdown -r now
$ shutdown -Fr now
19.ftp
ftp命令和sftp命令的用法基本相似。连接ftp服务器并下载多个文件
$ ftp IP/hostname
ftp> mget *.html
ftp> mls *.html -
/ftptest/features.html
/ftptest/index.html
20.crontab
查看某个用户的crontab入口
$ crontab -u john -l
$ */10 **** /home/ramesh/check-disk-space
21.service
service命令用户运行System V init脚本,这些脚本一般位于/etc/init.d文件夹下,这个命令可以直接运行这个文件夹里面的脚本,而不用加上路径
查看服务状态
$ service ssh status
$ service --status-all
$ service ssh restart
22.ps
ps命令用来显示正在运行中的进程的信息,ps命令有很多选项,这里只列出了几个
查看当前正在运行的所有进程
$ ps -ef | more
$ ps -efH | more
23.free
这个命令用于显示系统当前内存的使用情况,包括已用内存、可用内存和交换内存的情况。默认情况下,free会以字节为单位输出内存的使用量
$ free
$ free -g
$ free -t
24.top
top命令会显示当前系统中占用资源最多的一些进程(默认以CPU占用率排序)如果你想改变排序方式,可以在结果列表中点击O(大写字母O)会显示所有可用于排序的列,这个时候你就可以选择你想排序的列
$ top
$ O
$ top -u oracle
25.df
显示文件系统的磁盘使用情况,默认情况下df -k将以字节为单位输出磁盘的使用量
$ df -k
$ df -h
$ df -T
26.kill
kill用于终止一个进程。一般我们会先用ps -ef查找某个进程得到它的进程号,然后再使用kill -9进程号终止该进程。你还可以使用killall、pkill、xkill来终止进程
$ ps -ef | grep vim
$ kill -9 process_num
27.rm
删除文件前先确认
$ rm -i filename.txt
$ rm -i file*
$ rm -r example
28.cp
拷贝文件1到文件2,并保持文件的权限、属主和时间戳
$ cp -p file1 file2
$ cp -i file1 file2
29.mv
将文件名file1重命名为file2,如果file2存在则提示是否覆盖
$ mv -i file1 file2
-v会输出重命名的过程,当文件名中包含通配符时,这个选项会非常方便
$ mv -v file1 file2
30.cat
你可以一次查看多个文件的内容,下面的命令会先打印file1的内容,然后打印file2的内容
$ cat file1 file2
$ cat -n /etc/logrotate.conf
31.mount
如果你要挂载一个文件系统,需要先创建一个目录,然后将这个文件系统挂载到这个目录上
$ mkdir /u01
$ mount /dev/sdb1 /u01
/dev/sdb1 /u01 ext2 defaults 0 2
32.chmod
chmod用于改变文件和目录的权限
给指定文件的属主和属组所有权限(包括读、写、执行)
$ chmod ug+rwx file.txt
$ chmod g-rwx file.txt
$ chmod -R ug+rwx file.txt
33.chown
chown用于改变文件属主和属组
同时将某个文件的属主改为oracle,属组改为db
$ chown oracle:dba dbora.sh
$ chown -R oracle:dba /home/oracle
34.passwd
passwd用于在命令行修改密码,使用这个命令会要求你先输入旧密码,然后输入新密码
$ passwd
$ passwd USERNAME
$ passwd -d USERNAME
35.mkdir
在home目录下创建一个名为temp的目录
$ mkdir ~/temp
$ mkdir -p dir1/dir2/dir3/dir4/
36.ifconfig
ifconfig用于查看和配置Linux系统的网络接口
查看所有网络接口及其状态
$ ifconfig -a
$ ifconfig eth0 up
$ ifconfig eth0 down
37.uname
uname可以显示一些重要的系统信息,例如内核名称、主机名、内核版本号、处理器类型之类的信息
$ uname -a
38.whereis
当你不知道某个命令的位置时可以使用whereis命令,下面使用whereis查找ls的位置
$ whereis ls
$ whereis -u -B /tmp -f lsmk
39.whatis
whatis显示某个命令的描述信息
$ whatis ls
40.locate
locate命名可以显示某个指定文件(或一组文件)的路径,它会使用updatedb创建的数据库
下面的命令会显示系统中所有包含crontab字符串的文件
$ locate crontab
41.man
显示某个命令的man页面
$ man crontab
$ man SECTION-NUMBER commandname
- 用户命令
- 系统调用
- c库函数
- 设备与网络接口
- 文件格式
- 游戏与屏保
- 环境、表、宏
- 系统管理员命令和后台运行命令
$ whatis crontab
$ man 5 crontab
42.tail
$ tail filename.txt
$ tail -n N filename.txt
$ tail -f log-file
43.less
$ less huge-log-file.log
$ CTRL+F - forward one window
$ CTRL +B - backward one window
44.su
$ su - USERNAME
$ su - raj -c 'ls'
$ su -s 'SHELLNAME' USERNAME
45.mysql
$ mysql -u root -p -h 192.168.1.2
$ mysql -u root -p
46.yum
$ yum install httpd
$ yum update httpd
$ yum remove httpd
47.rpm
$ rpm -ivh httpd-2.2.3-22.0.1.e15.i386.rpm
rpm -uvh httpd-2.2.3-22.0.1.e15.i386.rpm
$ rpm -ev httpd
48.ping
$ ping -c 5 gmail.com
49.date
$ date -s "01/31/2010 23:59:53"
$ hwclock - systohc
$ hwclock --systohc - utc
50.wget
$ wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
$ wget -0 taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701