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 |
参数说明:javascript
参数 | 说明 |
---|---|
-c | 创建一个压缩文件的参数指令(create的意思) |
-x | 解开一个压缩文件的参数指令 |
-t | 查看tarfile里面的文件 |
-z | 是否同时具备gzip的属性?亦便是否须要用gzip压缩? |
-j | 是否同时具备bzip2的属性?亦便是否须要用bzip2压缩? |
-v | 压缩的过程当中显示文件 |
-f | 使用文件名,要在f以后当即跟文件名,不能再有其它参数 |
-p | 使用源文件的原来属性 |
-P | 可使用绝对路径来压缩 |
-N | 比后面接的日期还要新的才会被打包进新建的文件中 |
--exclude FILE | 在压缩过程当中,不要将FILE打包 |
示例:php
命令 | 说明 |
---|---|
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和管道命令。 |
在文件中查找字符串(不区分大小写)html
$ grep -i "the" demo_file
$ grep -A 3 -i "example" demo_text
$ grep -r "ramesh" *
查找指定文件名的文件(不区分大小写)java
$ find -iname "MyProgram.c"
$ find -iname "MyProgram.c" -exec md5sum {} \;
$ find ~ -empty
登陆到远程主机mysql
$ ssh -l jsmith remotehost.example.com
$ ssh -v -l jsmith remotehost.example.com
$ ssh -V
当你将Dos系统中的文件复制到Unix/Linux后,这个文件每行都会以\r\n结尾,sed能够轻易将其转换为Unix格式的文件,使用\n结尾的文件linux
$ sed 's/.$//' filename
$ sed -n '1!G; h; p' filename
$ sed '/./=' thegeekstuff.txt | sed 'N; s/\n/ /'
删除重复行ios
$ awk '!($0 in array) { array[$0]; print}' temp
$ awk -F ':' '$3=$4' /etc/passwd
$ awk '{print $2,$5;}' employee.txt
打开文件并跳到第10行sql
$ vim +10 filename.txt
$ vim +/search-term filename.txt
$ vim -R /etc/passwd
比较的时候忽略空白符shell
$ diff -w name_list.txt name_list_new.txt
以升序对文件内容排序数据库
$ sort names.txt
$ sort -r names.txt
$ sort -t: -k 3n /etc/passwd | more
输出跟字符串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
将全部图片文件拷贝到外部驱动器
$ 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
以易读的方式显示文件大小(显示为MB,GB...)
$ ls -lh -rw-r----- 1 ramesh team-dev 8.9M Jun 12 15:27 arch-linux.txt.gz
$ ls -ltr
$ ls -F
输出当前工做目录
cd -能够在最近工做的两个目录间切换
使用shopt -s cdspell能够设置自动对cd命令进行拼写检查
建立一个*.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
建立*.bz2压缩文件
$ bzip2 test.txt
$ bzip2 -d test.txt.bz2
解压*.zip文件
$ unzip test.zip
$ unzip -l jasper.zip
关闭系统当即关机
$ shutdown -h now
$ shutdown -h +10
$ shutdown -r now
$ shutdown -Fr now
ftp命令和sftp命令的用法基本类似。链接ftp服务器并下载多个文件
$ ftp IP/hostname ftp> mget *.html
ftp> mls *.html - /ftptest/features.html /ftptest/index.html
查看某个用户的crontab入口
$ crontab -u john -l
$ */10 **** /home/ramesh/check-disk-space
service命令用户运行System V init脚本,这些脚本通常位于/etc/init.d文件夹下,这个命令能够直接运行这个文件夹里面的脚本,而不用加上路径
查看服务状态
$ service ssh status
$ service --status-all
$ service ssh restart
ps命令用来显示正在运行中的进程的信息,ps命令有不少选项,这里只列出了几个
查看当前正在运行的全部进程
$ ps -ef | more
$ ps -efH | more
这个命令用于显示系统当前内存的使用状况,包括已用内存、可用内存和交换内存的状况。默认状况下,free会以字节为单位输出内存的使用量
$ free
$ free -g
$ free -t
top命令会显示当前系统中占用资源最多的一些进程(默认以CPU占用率排序)若是你想改变排序方式,能够在结果列表中点击O(大写字母O)会显示全部可用于排序的列,这个时候你就能够选择你想排序的列
$ top $ O
$ top -u oracle
显示文件系统的磁盘使用状况,默认状况下df -k将以字节为单位输出磁盘的使用量
$ df -k
$ df -h
$ df -T
kill用于终止一个进程。通常咱们会先用ps -ef查找某个进程获得它的进程号,而后再使用kill -9进程号终止该进程。你还可使用killall、pkill、xkill来终止进程
$ ps -ef | grep vim $ kill -9 process_num
删除文件前先确认
$ rm -i filename.txt
$ rm -i file*
$ rm -r example
拷贝文件1到文件2,并保持文件的权限、属主和时间戳
$ cp -p file1 file2
$ cp -i file1 file2
将文件名file1重命名为file2,若是file2存在则提示是否覆盖
$ mv -i file1 file2
-v会输出重命名的过程,当文件名中包含通配符时,这个选项会很是方便
$ mv -v file1 file2
你能够一次查看多个文件的内容,下面的命令会先打印file1的内容,而后打印file2的内容
$ cat file1 file2
$ cat -n /etc/logrotate.conf
若是你要挂载一个文件系统,须要先建立一个目录,而后将这个文件系统挂载到这个目录上
$ mkdir /u01 $ mount /dev/sdb1 /u01
/dev/sdb1 /u01 ext2 defaults 0 2
chmod用于改变文件和目录的权限
给指定文件的属主和属组全部权限(包括读、写、执行)
$ chmod ug+rwx file.txt
$ chmod g-rwx file.txt
$ chmod -R ug+rwx file.txt
chown用于改变文件属主和属组
同时将某个文件的属主改成oracle,属组改成db
$ chown oracle:dba dbora.sh
$ chown -R oracle:dba /home/oracle
passwd用于在命令行修改密码,使用这个命令会要求你先输入旧密码,而后输入新密码
$ passwd
$ passwd USERNAME
$ passwd -d USERNAME
在home目录下建立一个名为temp的目录
$ mkdir ~/temp
$ mkdir -p dir1/dir2/dir3/dir4/
ifconfig用于查看和配置Linux系统的网络接口
查看全部网络接口及其状态
$ ifconfig -a
$ ifconfig eth0 up $ ifconfig eth0 down
uname能够显示一些重要的系统信息,例如内核名称、主机名、内核版本号、处理器类型之类的信息
$ uname -a
当你不知道某个命令的位置时可使用whereis命令,下面使用whereis查找ls的位置
$ whereis ls
$ whereis -u -B /tmp -f lsmk
whatis显示某个命令的描述信息
$ whatis ls
locate命名能够显示某个指定文件(或一组文件)的路径,它会使用updatedb建立的数据库
下面的命令会显示系统中全部包含crontab字符串的文件
$ locate crontab
显示某个命令的man页面
$ man crontab
$ man SECTION-NUMBER commandname
$ whatis crontab $ man 5 crontab
$ tail filename.txt
$ tail -n N filename.txt
$ tail -f log-file
$ less huge-log-file.log
$ CTRL+F - forward one window $ CTRL +B - backward one window
$ su - USERNAME
$ su - raj -c 'ls'
$ su -s 'SHELLNAME' USERNAME
$ mysql -u root -p -h 192.168.1.2
$ mysql -u root -p
$ yum install httpd
$ yum update httpd
$ yum remove httpd
$ 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
$ ping -c 5 gmail.com
$ date -s "01/31/2010 23:59:53"
$ hwclock - systohc
$ hwclock --systohc - utc
$ 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