基本linux命令的使用方法及实例,总结一些常用的命令:
一.创建文件和目录命令:mkdir touch(vim用得较多)
1)mdkir创建一个目录,创建多目录格式mkdir –p a/{a,b/{c},d/{e,f/{g,f}}}-v 显示创建信息 , -p 可创建不存在的目录 -m 设定权限<模式> (类似 chmod)
- [zhouguangfeng@localhost linux]$ ls
- [zhouguangfeng@localhost linux]$ mkdir -p home/{libs/,bin/,usr/{local/{bin,sbin},bin,sbin},etc/{network,lcd}}
- [zhouguangfeng@localhost linux]$ tree home/
- home/
- |-- bin
- |-- etc
- | |-- lcd
- | `-- network
- |-- libs
- `-- usr
- |-- bin
- |-- local
- | |-- bin
- | `-- sbin
- `-- sbin
- 11 directories, 0 files
- [zhouguangfeng@localhost linux]$
- [zhouguangfeng@localhost linux]$ ls
- home test tkkk.sh
- [zhouguangfeng@localhost linux]$ mkdir -pv -m 777 my_test/bin
- mkdir: created directory `my_test'
- mkdir: created directory `my_test/bin'
- [zhouguangfeng@localhost linux]$ tree my_test/
- my_test/
- `-- bin
- 1 directory, 0 files
- [zhouguangfeng@localhost linux]$
2)touch创建文件,但是多用vim创建并且直接编辑二.文件或目录权限:umask,chomd,chown,1)umask(文件默认权限),写入/etc/profile ~/.bash_profile 使umask生效创建普通文件默认是644 也就是: -rw-r--r-- 1 root root 0 May15 20:04 test
自已有读写(rw),同组人员有读(r),其它有读(r) 默认umask 为022
文件:666 - 022 = 644
目录:777 - 022 = 755
如果改了umask 011 的指令,则生成的文件目录权限就变成:
文件:666 - 011 = 655
目录:777 - 011 = 766 2)chomn只改变文件或目录的属主和属组,而chmod可改变文件或目录的访问权限和文件或目录的属主和属组这里指说明chmod命令。语法:chmod [who] [+ | - |=] [mode]文件名
命令中各选项的含义为:
操作对象who是下述字母中的任一个或者它们的组合:
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。操作符号可以是:+ 添加某个权限。- 取消某个权限。= 赋予给定权限并取消其他所有权限(如果有的话)。
设置 mode 所表示的权限可用下述字母的任意组合:r 可读。w 可写。x 可执行。
- [zhouguangfeng@localhost linux]$ ll
- total 4
- drwxrwxr-x 6 zhouguangfeng zhouguangfeng 4096 Apr 28 03:01 home
- -rw-rw-r-- 1 zhouguangfeng zhouguangfeng 0 Apr 28 03:05 test
- [zhouguangfeng@localhost linux]$ cp test t
- [zhouguangfeng@localhost linux]$ ls
- home t test
- [zhouguangfeng@localhost linux]$ ll
- total 4
- drwxrwxr-x 6 zhouguangfeng zhouguangfeng 4096 Apr 28 03:01 home
- -rw-rw-r-- 1 zhouguangfeng zhouguangfeng 0 Apr 28 03:33 t
- -rw-rw-r-- 1 zhouguangfeng zhouguangfeng 0 Apr 28 03:05 test
- [zhouguangfeng@localhost linux]$ chmod 777 test
- [zhouguangfeng@localhost linux]$ ll
- total 4
- drwxrwxr-x 6 zhouguangfeng zhouguangfeng 4096 Apr 28 03:01 home
- -rw-rw-r-- 1 zhouguangfeng zhouguangfeng 0 Apr 28 03:33 t
- -rwxrwxrwx 1 zhouguangfeng zhouguangfeng 0 Apr 28 03:05 test
- [zhouguangfeng@localhost linux]$ chmod a+x t
- [zhouguangfeng@localhost linux]$ ll
- total 4
- drwxrwxr-x 6 zhouguangfeng zhouguangfeng 4096 Apr 28 03:01 home
- -rwxrwxr-x 1 zhouguangfeng zhouguangfeng 0 Apr 28 03:33 t
- -rwxrwxrwx 1 zhouguangfeng zhouguangfeng 0 Apr 28 03:05 test
- [zhouguangfeng@localhost linux]$ chmod a-x t
- [zhouguangfeng@localhost linux]$ ll
- total 4
- drwxrwxr-x 6 zhouguangfeng zhouguangfeng 4096 Apr 28 03:01 home
- -rw-rw-r-- 1 zhouguangfeng zhouguangfeng 0 Apr 28 03:33 t
- -rwxrwxrwx 1 zhouguangfeng zhouguangfeng 0 Apr 28 03:05 test
- [zhouguangfeng@localhost linux]$
三.目录切换,删除,移动,复制,查看和文件编辑(vim已发表博客说明)1)cd:目录切换(补充两个文件目录“.”代表当前目录 “..”代表上级目录)“cd~”表示进入用户home目录 “cd -” 切换到上回历史目录 “cd .” 切换到该目录 “cd ..” 切换逻辑上一目录2)pwd 显示当前路径
- [zhouguangfeng@localhost linux]$ ls
- home t test
- [zhouguangfeng@localhost linux]$ cd home/
- [zhouguangfeng@localhost home]$ ls
- bin etc libs usr
- [zhouguangfeng@localhost home]$ cd ..
- [zhouguangfeng@localhost linux]$ ls
- home t test
- [zhouguangfeng@localhost linux]$ cd -
- /home/zhouguangfeng/mywork/linux/home
- [zhouguangfeng@localhost home]$ ls
- bin etc libs usr
- [zhouguangfeng@localhost home]$
- [zhouguangfeng@localhost linux]$ ls
- home t test
- [zhouguangfeng@localhost linux]$ pwd
- /home/zhouguangfeng/mywork/linux
- [zhouguangfeng@localhost linux]$
3)rm: 删除一个空目录或文件,加”-r” 删除非空目录文件,加“-f”如要删目录不存在,不显示错误 4)mv: 移动文件和目录(mv 源 目标) 或者重命名(mv 原名 修改名) 5)cp: 复制文件或目录(cp 源 目标)6) basename/dirname: basename:从给定的包含绝对路径名的文件名中,除掉目录部分或者除掉某个后缀,返回文件名 dirname:从给定的包含绝对路径名的文件名中,除掉文件名,返回路径部分
- [zhouguangfeng@localhost linux]$ ls
- home t test
- [zhouguangfeng@localhost linux]$ rm t
- [zhouguangfeng@localhost linux]$ ls
- home test
- [zhouguangfeng@localhost linux]$ mv test tkkk
- [zhouguangfeng@localhost linux]$ ls
- home tkkk
- [zhouguangfeng@localhost linux]$ cp tkkk test
- [zhouguangfeng@localhost linux]$ ls
- home test tkkk
- [zhouguangfeng@localhost linux]$ rm -r cc
- rm: cannot remove `cc': No such file or directory(显示出错)
- [zhouguangfeng@localhost linux]$ rm -rf cc(不显示出错)
- [zhouguangfeng@localhost linux]$
- [zhouguangfeng@localhost linux]$ dirname ~/mywork/script/add.sh
- /home/zhouguangfeng/mywork/script
- [zhouguangfeng@localhost linux]$ basename ~/mywork/script/add.sh
- add.sh
- [zhouguangfeng@localhost linux]$
7) cat: 显示一个文件的内容(不可跟目录文件) 8)more/less: 文件显示内容太多,显示满屏后即停止 more不支持后退,空格向下一页,enter向下一行 less支持前后翻,上下翻动用方向键或k,j或pageup,pagedown 9)head/tail:显示文字的前面几行(head –n -10 [文件名])/后面几行(tail –n -10 [文件名]) 四.文件或查看和搜索 1)ls : -l 查看文件详情 -a查看所有文件,包括隐藏 格式ls [-al] [路径] 没有路径表示当前 ll : 查看当前目录详情,不包含隐藏文件 2)find格式:find <指定目录><指定条件> <指定动作>3)locate命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locate命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或刚更名的,可能会找不到,在内定值中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab) 第一次在执行update後再使用locate寻找档案常会失败,此时就要执行slocate ˉu该命令(也可执行updatedb指令,其效果相同)来更新slocate数据库,该命令会在/usr/sbin下产生slocate执行档,再由locate到此数据库寻找所要找的资料。 所以在locate之前最好先 sudo updatedb 4)whereis命令只能用于程序名的搜索,此不累赘,自己man。 5)which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用 which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
- [zhouguangfeng@localhost linux]$ ls
- home test tkkk
- [zhouguangfeng@localhost linux]$ pwd
- /home/zhouguangfeng/mywork/linux
- [zhouguangfeng@localhost linux]$ find /home/zhouguangfeng/mywork/linux/home/
- /home/zhouguangfeng/mywork/linux/home/
- /home/zhouguangfeng/mywork/linux/home/bin
- /home/zhouguangfeng/mywork/linux/home/etc
- /home/zhouguangfeng/mywork/linux/home/etc/network
- /home/zhouguangfeng/mywork/linux/home/etc/lcd
- /home/zhouguangfeng/mywork/linux/home/usr
- /home/zhouguangfeng/mywork/linux/home/usr/bin
- /home/zhouguangfeng/mywork/linux/home/usr/local
- /home/zhouguangfeng/mywork/linux/home/usr/local/bin
- /home/zhouguangfeng/mywork/linux/home/usr/local/sbin
- /home/zhouguangfeng/mywork/linux/home/usr/sbin
- /home/zhouguangfeng/mywork/linux/home/libs
- [zhouguangfeng@localhost linux]$
- [zhouguangfeng@localhost linux]$ which -h
- /usr/bin/which: invalid option -- 'h'
- Usage: /usr/bin/which [options] [--] COMMAND [...]
- Write the full path of COMMAND(s) to standard output.
- --version, -[vV] Print version and exit successfully.
- --help, Print this help and exit successfully.
- --skip-dot Skip directories in PATH that start with a dot.
- --skip-tilde Skip directories in PATH that start with a tilde.
- --show-dot Don't expand a dot to current directory in output.
- --show-tilde Output a tilde for HOME directory for non-root.
- --tty-only Stop processing options on the right if not on tty.
- --all, -a Print all matches in PATH, not just the first
- --read-alias, -i Read list of aliases from stdin.
- --skip-alias Ignore option --read-alias; don't read stdin.
- --read-functions Read shell functions from stdin.
- --skip-functions Ignore option --read-functions; don't read stdin.
- Recommended use is to write the output of (alias; declare -f) to standard
- input, so that which can show aliases and shell functions. See which(1) for
- examples.
- If the options --read-alias and/or --read-functions are specified then the
- output can be a full alias or function definition, optionally followed by
- the full path of each command used inside of those.
- Report bugs to <which-bugs@gnu.org>.
- [zhouguangfeng@localhost linux]$ which ls
- alias ls='ls --color=auto'
- /bin/ls
- [zhouguangfeng@localhost linux]$
6)type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。五.cat,grep,cut的组合使用,按指定格式查找,剪切,显示 cut命令:按格式剪切(有兴趣可搜下awk命令,功能更加强大) cut -b list [-n] [file ...] cut -c list [file ...] cut -f list [-d delim][-s][file ...] 上面的-b、-c、-f分别表示字节、字符、字段(即byte、character、field); *list表示-b、-c、-f操作范围,-n常常表示具体数字; *file表示的自然是要操作的文本文件的名称; *delim(英文全写:delimiter)表示分隔符,默认情况下为TAB; *-s表示不包括那些不含分隔符的行(这样有利于去掉注释和标题) grep命令: 该linux下的行过滤工具,有查找的功能,这里不详解。 目标是在test文件里,查找出并打印“hello world!”
- [zhouguangfeng@localhost bin]$ type cd
- cd is a shell builtin //(系统会提示,cd是shell的自带命令(build-in))
- [zhouguangfeng@localhost bin]$ type grep
- grep is /bin/grep //系统会提示,grep是一个外部命令,并显示该命令的路径。
- [zhouguangfeng@localhost bin]$ type -p grep
- /bin/grep //加上-p参数后,就相当于which命令。
- [zhouguangfeng@localhost bin]$ which grep
- /bin/grep
- [zhouguangfeng@localhost bin]$
六.一些其他命令 1)date - print or set the system date and time
- [zhouguangfeng@localhost linux]$ ls
- home test tkkk
- [zhouguangfeng@localhost linux]$ cat test
- jfkdsljfska
- ckasdfdsvdvdsfv
- 123456:hello world!.jdajdkslajdsa
- cksdfdsvdvdsfv
- cksdfdsvdvdsfv
- cksdfdsvdvdsfv
- [zhouguangfeng@localhost linux]$ cat test | grep 123456
- 123456:hello world!.jdajdkslajdsa
- [zhouguangfeng@localhost linux]$ cat test | grep 123456 | cut -f2 -d ":"
- hello world!.jdajdkslajdsa
- (“-f”指定区域 ,“-d”指定分割符, “2”代表第二个区域 , “|”为管道,改变数据流向)
- [zhouguangfeng@localhost linux]$ cat test | grep 123456 | cut -f2 -d ":" | cut -f1 -d ".
- hello world!(成功)
- [zhouguangfeng@localhost linux]$
设置时间:date [-s <字符串>][-u][MMDDhhmmCCYYss] 或者date [--help][--version]
显示时间:
date [-d <字符串>][-u][+%H%I%K%l%M%P%r%s%S%T%X%Z%a%A%b%B%c%d%D%j%m%U%w%x%y%Y%n%t]
补充说明:第一种语法可用来显示系统日期或时间,以%为开头的参数为格式参数,可指定日期或时间的显示格式。
第二种语法可用来设置系统日期与时间。只有管理员才有设置日期与时间的权限。
若不加任何参数,date会显示目前的日期与时间。
参 数:(此处显示格式很多,一般很少用到,记录以备不时之需)%H 小时(以00-23来表示)。
%I 小时(以01-12来表示)。
%K 小时(以0-23来表示)。
%P AM或PM。
%l 小时(以0-12来表示)。
%M 分钟(以00-59来表示)。
%r 时间(含时分秒,小时以12小时AM/PM来表示)。
%S 秒(以本地的惯用法来表示)。
%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
%T 时间(含时分秒,小时以24小时制来表示)。
%X 时间(以本地的惯用法来表示)。
%Z 市区。
%a 星期的缩写。
%A 星期的完整名称。%b 月份英文名的缩写。
%B 月份的完整英文名称。
%c 日期与时间。只输入date指令也会显示同样的结果。
%d 日期(以01-31来表示)。
%D 日期(含年月日)。
%j 该年中的第几天。
%m 月份(以01-12来表示)。
%U 该年中的周数。
%w 该周的天数,0代表周日,1代表周一,异词类推。
%x 日期(以本地的惯用法来表示)。
%y 年份(以00-99来表示)。
%Y 年份(以四位数来表示)。
%n 在显示时,插入新的一行。
%t 在显示时,插入tab。
MM 月份(必要)。
DD 日期(必要)。
hh 小时(必要)。
mm 分钟(必要)。CC 年份的前两位数(选择性)。
YY 年份的后两位数(选择性)。
ss 秒(选择性)。
-d<字符串> 显示字符串所指的日期与时间。字符串前后必须加上单引号。
-s<字符串> 根据字符串来设置日期与时间。字符串前后必须加上单引号。
-u 显示GMT。
--help 在线帮助。
--version 显示版本信息。请看下面的实例:
- [zhouguangfeng@localhost script]$ date
- Mon Apr 28 17:12:40 EDT 2014
- [zhouguangfeng@localhost script]$ sudo date -s '2014-04-28 17:13:00'
- Mon Apr 28 17:13:00 EDT 2014
- [zhouguangfeng@localhost script]$ date
- Mon Apr 28 17:13:01 EDT 2014
- [zhouguangfeng@localhost script]$
2)od: 用户通常使用od命令查看特殊格式的文件内容。通过指定该命令的不同选项可以以十进制(-d)、八进制(-o)、十六进制(-x) 和ASCII码(-c)来显示文件。 3) ln: 创建连接,硬链接和软连接 [ln –s 源目标] 软连接 没有-s即硬链接 软链接ln –s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间 硬链接ln ** **,无-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。4)expr: 求表达式的值,如 expr $a + $b
- [zhouguangfeng@localhost linux]$ ls
- home test tkkk.sh
- [zhouguangfeng@localhost linux]$ cd home/bin/
- [zhouguangfeng@localhost bin]$ ln -s ~/mywork/linux/test .
- [zhouguangfeng@localhost bin]$ ll
- total 0
- lrwxrwxrwx 1 zhouguangfeng zhouguangfeng 37 Apr 28 18:04 test -> /home/zhouguangfeng/mywork/linux/test
- [zhouguangfeng@localhost bin]$
5)dmesg 功能说明:显示开机信息。
- [zhouguangfeng@localhost bin]$ export a=1
- [zhouguangfeng@localhost bin]$ echo $a
- 1
- [zhouguangfeng@localhost bin]$ export b=1
- [zhouguangfeng@localhost bin]$ echo $b
- 1
- [zhouguangfeng@localhost bin]$ expr $a + $b
- 2
- [zhouguangfeng@localhost bin]$
语 法:dmesg [-cn][-s <缓冲区大小>]
补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
参 数:
-c 显示信息后,清除ring buffer中的内容。
-s <缓冲区大小> 预设置为8196,刚好等于ring buffer的大小。
-n 设置记录信息的层级。 6)df - report file system disk space usage 检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。 语法:df [选项]
说明:linux中df命令可显示所有文件系统对i节点和磁盘块的使用情况。
说明:linux中df命令各个选项的含义如下:
-a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
-k 以k字节为单位显示。
-i 显示i节点信息,而不是磁盘块。
-t 显示各指定类型的文件系统的磁盘空间使用情况。
-x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
-T 显示文件系统类型。 7)echo - display a line of text 功能说明:显示文字。 语 法:echo [-ne][字符串] 补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。 参 数: -n 不要在最后自动换行 -e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出 8)tar命令 转载http://blog.****.net/bobshute/article/details/4044728 tar用法实例 tar命令
tar 文件是几个文件和(或)目录在一个文件中的集合。这是创建备份和归档的佳径。
tar 使用的选项有:
-c — 创建一个新归档。
-f — 当与 -c 选项一起使用时,创建的 tar 文件使用该选项指定的文件名;当与 -x 选项
一起使用时,则解除该选项指定的归档。
-t — 显示包括在 tar 文件中的文件列表。
-v — 显示文件的归档进度。
-x — 从归档中抽取文件。
-z — 使用 gzip 来压缩 tar 文件。
-j — 使用 bzip2 来压缩 tar 文件。
要创建一个 tar 文件,键入:
tar -cvf filename.tar directory/file
可以使用 tar 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:
tar -cvf filename.tar /home/mine/work /home/mine/school
上面的命令把 /home/mine 目录下的 work 和 school 子目录内的所有文件都放入当前
目录中一个叫做 filename.tar 的新文件里。
要列出 tar 文件的内容,键入:
tar -tvf filename.tar
要抽取 tar 文件的内容,键入
tar -xvf filename.tar
这个命令不会删除 tar 文件,但是它会把被解除归档的内容
复制到当前的工作目录下,并保留归档文件所使用的任何
目录结构。譬如,如果这个 tar 文件中包含一个叫做
bar.txt 的文件,而这个文件包含在 foo/ 目录中,那么,
抽取归档文件将会导致在你当前的工作目录中创建
foo/ 目录,该目录中包含 bar.txt 文件
tar 默认不压缩文件。
要创建一个使用 tar 和 bzip 来归档压缩的文件,使用 -j 选项:
tar -cjvf filename.tbz file
以上命令创建了一个归档文件,然后将其压缩为 filename.tbz 文件。如果你使用 bunzip2 命令为 filename.tbz 文件解压,filename.tbz 文件会被删除,继之以 filename.tar 文件。
你还可以用一个命令来扩展并解除归档 bzip tar 文件:
tar -xjvf filename.tbz
要创建一个用 tar 和 gzip 归档并压缩的文件,使用 -z 选项:
tar -czvf filename.tgz file
这个命令创建归档文件 filename.tar,然后把它压缩为 filename.tgz 文件(文件 filename.tar 不被保留)。
如果你使用 gunzip 命令来给 filename.tgz 文件解压,filename.tgz 文件会被删除,并被
替换为 filename.tar。
你可以用单个命令来扩展 gzip tar 文件:
tar -xzvf filename.tgz
一. tar
1.压缩一组文件为tar.gz后缀。
# tar cvf backup.tar /etc
#gzip -q backup.tar
或
# tar cvfz backup.tar.gz /etc/
tar zxvf XXXX.tar.gz
tar jxvf XXXX tar.bz2
2.释放一个后缀为tar.gz的文件。
#gunzip backup.tar.gz
#tar xvf backup.tar
或
# tar xvfz backup.tar.gz
3.用一个命令完成压缩
#tar cvf - /etc/ | gzip -qc > backup.tar.gz
4.用一个命令完成释放
# gunzip -c backup.tar.gz | tar xvf -
5.如何解开tar.Z的文件?
# tar xvfz backup.tar.Z
或
# uncompress backup.tar.Z
#tar xvf backup.tar
6.如何解开.tgz文件?
#gunzip backup.tgz
7.如何压缩和解压缩.bz2的包?
#bzip2 /etc/smb.conf
这将压缩文件smb.conf成smb.conf.bz2
#bunzip2 /etc/smb.conf.bz2
这将在当前目录下还原smb.conf.bz2为smb.conf
注: .bz2压缩格式不是很常用,你可以man bzip2
tar解压:
tar -xjf *.tar.bz2 tar -xzf *.tar.gz tar -xf *.tar bunzip2 -d *.bz2 gunzip -d *.gz unzip *.zip tar -xzf *.tgz tar -xjf *.tbz2 7z x *.7z