the linux Command Line 学习笔记--mysql命令行导入sql文件到指定数据库的方法

原创 2013年12月31日 15:47:12


中英文资料:http://billie66.github.io/TLCL/book/chap01.html


the graphical user interface (GUI) 图形界面

The Command Line 命令行

Linux 是以 Unix 家族的操作系统为模型写成的。

第二章 什么是 Shell:
bash 是 shell 的一种,来自于 GNU 项目。“bash”是“Bourne Again SHell”的首字母缩写,
所指的是这样一个事实,bash 是 sh 的增强版,sh 是最初 Unix 的 shell 程序,
由 Steve Bourne 写成。

KDE 用的是 konsole 程序, 而 GNOME 则使用 gnome-terminal。 
还有其他一些终端仿真器可供 Linux 使用,但基本上,它们都是为了完成同样的事情,
让我们能访问 shell

[me@linuxbox ~]$

“$" 普通用户

a pound sign (“#”),提示符的最后一个字符是“#”, 而不是“$”, 那么这个终端会话就有超级用户权限

命令历史
查看以往的输入的命令,向上箭头

显示系统当前时间和日期

[root@AY130410135131135089 ~]# date
Tue Nov 26 23:38:14 CST 2013

默认显示当前月份的日历
[root@AY130410135131135089 ~]# cal
    November 2013   
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

查看磁盘剩余空间(free space on your disk drives)的数量,输入 df:
[root@AY130410135131135089 ~]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/xvda1            20469760   7366592  13103168  36% /
tmpfs                  1960828         0   1960828   0% /dev/shm

同样地,显示空闲内存的数量(the amount of free memory),输入命令 free。
[root@AY130410135131135089 ~]# free
             total       used       free     shared    buffers     cached
Mem:       3921656    2141516    1780140          0        656     168692
-/+ buffers/cache:    1972168    1949488
Swap:       490488       2348     488140

结束终端会话,也即退出终端
[root@AY130410135131135089 ~]# exit
logout

第三章:
pwd - 打印当前所在目录的名称
cd  - 改变目录
ls  - 打印目录的内容

[root@AY130410135131135089 ~]# pwd
/root

Understanding The File System Tree理解文件系统树
文件系统中的第一级目录称为根目录

The Current Working Directory当前工作目录
[root@AY130410135131135089 ~]# pwd
/root

Listing The Contents Of A Directory列出目录内容
[root@AY130410135131135089 usr]# ls
bin  etc  games  include  lib  lib64  libexec  local  sbin  share  src  tmp

Changing The Current Working Directory更改当前工作目录
从根目录(用开头的“/”表示)开始,有一个叫 “usr” 的 目录包含了目录 “bin”。
[root@AY130410135131135089 local]# cd /usr/bin/


符号 ”.” 指的是工作目录,”..” 指的是工作目录的父目录。
经常使用 cd .. 返回上级目录
cd ..
cd ../../..


cd               更改工作目录到主目录。
cd -             更改工作目录到先前的工作目录。

cd ~user_name    更改工作目录到用户主目录。例如, cd ~bob 会更改工作目录到用户“bob”的主目录


第四章:

ls 有一些我们常用的参数, 比如我们要知道当前目录的所有内容, 包括隐藏文件夹和文件和所有属性, 例
[root@AY130410135131135089 logs]# ls
boot2013-06.log

使用 ls 命令的“-l”选项,则结果以长模式输出:
[root@AY130410135131135089 logs]# ls -l
total 8
-rw-rw-rw- 1 root root 5975 Jun 15 17:34 boot2013-06.log

显示隐藏文件:
[root@AY130410135131135089 logs]# ls -a
.  ..  boot2013-06.log

命令 选项 参数
command -options arguments
下面这个例子,ls 命令有两个选项, “l” 选项产生长格式输出,“t”选项按文件修改时间的先后来排序。
[me@linuxbox ~]$ ls -lt

确定一个文件什么文件类型我们用 file, 使用方法如下
[root@AY130410135131135089 logs]# file boot2013-06.log 
boot2013-06.log: ASCII text

[root@AY130410135131135089 assets]# file world.swf 
world.swf: Macromedia Flash data (compressed), version 10

用 less 浏览文件内容
[me@linuxbox ~]$ less /etc/passwd
TODO 表 4-3: less 命令 需要截图哦。

小提示:记得复制和粘贴技巧!如果你正在使用鼠标,双击文件名,来复制它,然后按下鼠标中键(右键),粘贴文件名到命令行中。

Symbolic Links符号链接
Hard Links硬链接 TODO


第五章:操作文件和目录

cp — 复制文件和目录
mv — 移动/重命名文件和目录
mkdir — 创建目录
rm — 删除文件和目录

ln — 创建硬链接和符号链接 TODO没搞懂 和Window快捷键的区别联系 点击打开链接

cp — 复制文件和目录

      cp [options] source dest
      cp [options] source... directory

jiangge@localhost:~$ cp item1 item2    # 把item复制到directory目录

jiangge@localhost:~$ cp file1 file2    # 复制file1到file2

jiangge@localhost:~$ cp -i file1 file2 # 复制过程中如果有这个文件提示是否覆盖

jiangge@localhost:~$ cp dir1/* dir2    # 复制目录下所有文件或目录到目标目录

jiangge@localhost:~$ cp -r dir1 dir2   # 递归复制

mkdir — 创建目录
jiangge@localhost:~$ mkdir dir

jiangge@localhost:~$ mkdir dir1 dir2 dir3      # 创建多个文件夹

jiangge@localhost:~$ mkdir -p /dir1/dir2/dir3  # 递归创建文件夹


mv — 移动/重命名文件和目录
jiangge@localhost:~$ mv file1 file2     # 重命名

jiangge@localhost:~$ mv -i file1 file2   # 如果存在提示是否写入

jiangge@localhost:~$ mv file1 file2 dir1# 移动 file1 file2 至 dir1

jiangge@localhost:~$ mv dir1 dir2        # 移动 dir1 至 dir2


rm — 删除文件和目录
jiangge@localhost:~$ rm file1

jiangge@localhost:~$ rm file1 dir1

jiangge@localhost:~$ rm -r dir1 #删除文件夹, 递归删除

jiangge@localhost:~$ rm -rf dir1 强制删除


表5-3:通配符范例
模式	匹配对象
*	所有文件
g*	文件名以“g”开头的文件
b*.txt	以"b"开头,中间有零个或任意多个字符,并以".txt"结尾的文件
Data???	以“Data”开头,其后紧接着3个字符的文件
[abc]*	文件名以"a","b",或"c"开头的文件
BACKUP.[0-9][0-9][0-9]	以"BACKUP."开头,并紧接着3个数字的文件
[[:upper:]]*	以大写字母开头的文件
[![:digit:]]*	不以数字开头的文件
*[[:lower:]123]	文件名以小写字母结尾,或以 “1”,“2”,或 “3” 结尾的文件

表5-4:cp 选项
选项	意义
-a, --archive	复制文件和目录,以及它们的属性,包括所有权和权限。 通常,复本具有用户所操作文件的默认属性。
-i, --interactive	在重写已存在文件之前,提示用户确认。如果这个选项不指定, cp 命令会默认重写文件。
-r, --recursive	递归地复制目录及目录中的内容。当复制目录时, 需要这个选项(或者-a 选项)。
-u, --update	当把文件从一个目录复制到另一个目录时,仅复制 目标目录中不存在的文件,或者是文件内容新于目标目录中已经存在的文件。
-v, --verbose	显示翔实的命令操作信息
表 5—5: cp 实例
命令	运行结果
cp file1 file2	复制文件 file1内容到文件 file2。如果 file2已经存在,file2的内容会被 file1的 内容重写。如果 file2不存在,则会创建 file2。
cp -i file1 file2	这条命令和上面的命令一样,除了如果文件 file2存在的话,在文件 file2被重写之前, 会提示用户确认信息。
cp file1 file2 dir1	复制文件 file1和文件 file2到目录 dir1。目录 dir1必须存在。
cp dir1/* dir2	使用一个通配符,在目录 dir1中的所有文件都被复制到目录 dir2中。 dir2必须已经存在。
cp -r dir1 dir2	复制目录 dir1中的内容到目录 dir2。如果目录 dir2不存在, 创建目录 dir2,操作完成后,目录 dir2中的内容和 dir1中的一样。 如果目录 dir2存在,则目录 dir1(和目录中的内容)将会被复制到 dir2中。


第六章:点击打开链接

type    - 解读一个命令
which   - 显示哪些是可执行程序,which 确定一个可执行程序的位置
man     - 显示命令手册
apropos - 显示一个合适的命令列表
info    - 显示一个命令信息
whatis  - 显示非常简短的描述一个命令
alias   - 为命令创建一个别名

[shijiangge@localhost test]$ type type
type is a shell builtin
[shijiangge@localhost test]$ type ls
ls is aliased to `ls --color=tty'
[shijiangge@localhost test]$ type cp
cp is hashed (/bin/cp)
[shijiangge@localhost test]$ which ls #which确定一个可执行程序的位置
alias ls='ls --color=tty'
/bin/ls
[shijiangge@localhost test]$ whichvim
/usr/bin/vim


help 获得帮助信息, 在每个shell命令的后面加上--help参数, 如

[shijiangge@localhost test]$ ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort.
[shijiangge@localhost test]$ help cd
cd: cd [-L|-P] [dir]
       Change the current directory to DIR.  The variable $HOME is the
       default DIR. 

注意表示法:出现在命令语法说明中的方括号,表示可选的项目。一个竖杠字符 表示互斥选项。在上面 cd 命令的例子中:
cd [-L|-P] [dir]

这种表示法说明,cd 命令可能有一个”-L”选项或者”-P”选项,进一步,可能有参数”dir”。


man  获得命令指南

[shijiangge@localhost test]$ man ls


whatis  显示一个简短的描述

[shijiangge@localhost test]$ whatis ls
ls                   (1)  - list directory contents
ls                   (1p)  - list directory contents
[shijiangge@localhost test]$ whatis vim
vim                  (1)  - Vi IMproved, a programmers text editor


用别名(alias)创建你自己的命令

shijiangge@localhost:~$ type test
test is a shell builtin

shijiangge@localhost:~$ type foo
/bin/bash: line 0: type: foo: not found      # 什么都没有

shijiangge@localhost:~$ alias foo='cd /usr; ls; cd -'

shijiangge@localhost:~$ alias name='string'

shijiangge@localhost:~$ alias                         # 创建de自定义命令都打印出来
alias foo='cd /usr; ls; cd -'
alias name='string'

shijiangge@localhost:~$ foo
bin include lib local man sbin share src
/home/shijiangge

shijiangge@localhost:~$ type foo
foo is aliased to 'cd /usr; ls; cd -'

shijiangge@localhost:~$ unalias foo                   # 销毁foo

shijiangge@localhost:~$ alias                         # 只剩下name了
alia name='string'

shijiangge@localhost:~$ type foo                      # 什么都没有
/bin/bash: foo: command not found

shijiangge@localhost:~$ unalias name                  # 销毁name


=================================================

这堂课,我们来介绍可能是命令行最酷的特性。它叫做 I/O 重定向。”I/O”代表输入/输出, 
通过这个工具,你可以重定向命令的输入输出,命令的输入来自文件,而输出也存到文件。
也可以把多个命令连接起来组成一个强大的命令管道。为了炫耀这个工具,我们将叙述 以下命令:


  • cat - 连接文件
  • sort - 排序文本行
  • uniq - 报道或省略重复行
  • grep - 打印匹配行
  • wc - 打印文件中换行符,字,和字节个数
  • head - 输出文件第一部分
  • tail - 输出文件最后一部分

I/O 重定向允许我们来重定义标准输出送到哪里。重定向标准输出到另一个文件除了屏幕,
我们使用 “>” 重定向符,其后跟着文件名。为什么我们要这样做呢?
因为有时候把一个命令的运行结果存储到 一个文件很有用处。
例如,我们可以告诉 shell 把 ls 命令的运行结果输送到文件 ls-output.txt 中去, 由文件代替屏幕。

[shijiangge@localhost ~]$ ls -l /usr/bin >ls-output.txt

怎样才能把重定向结果追加到文件内容后面,而不是从开头重写文件?为了这个目的, 我们使用”»“重定向符,像这样:
[shijiangge@localhost ~]$ ls -l /usr/bin>>ls-output.txt


重定向标准错误缺乏专用的重定向操作符。重定向标准错误,我们必须参考它的文件描述符。 
一个程序可以在几个编号的文件流中的任一个上产生输出。然而我们必须把这些文件流的前三个看作标准输入,输出和错误,
shell 内部参考它们为文件描述符0,1和2,各自地。shell 提供 了一种表示法来重定向文件,使用文件描述符。
因为标准错误和文件描述符2一样,我们用这种 表示法来重定向标准错误:
[shijiangge@localhost ~]$ ls -l /bin/usr 2> ls-error.txt


使用 &> 来重定向标准输出错误到文件 ls-output.txt:

[shijiangge@localhost ~]$ ls -l /bin/usr &> ls-output.txt

[shijiangge@localhost ~]$cat HelloWorld.java


cat  的 -n 参数会自动加上行号:

$ cat -n /etc/logrotate.conf
    1	/var/log/btmp {
    2	    missingok
    3	    monthly
    4	    create 0660 root utmp
    5	    rotate 1
    6	}

使用管道操作符”|”(竖杠),一个命令的 标准输出可以管道到另一个命令的标准输入:
[shijiangge@localhost ~]$ ls -l /usr/bin | less

管道线经常用来对数据完成复杂的操作。有可能会把几个命令放在一起组成一个管道线。 
通常,以这种方式使用的命令被称为过滤器。过滤器接受输入,以某种方式改变它,然后 输出它。
第一个我们想试验的过滤器是 sort。想象一下,我们想把目录/bin 和/usr/bin 中 的可执行程序都联合在一起,再把它们排序,然后浏览执行结果:
[shijiangge@localhost ~]$ls /bin /usr/bin |sort | less

uniq 命令经常和 sort 命令结合在一起使用。uniq 从标准输入或单个文件名参数接受数据有序 列表(详情查看 uniq 手册页),
默认情况下,从数据列表中删除任何重复行。所以,为了确信 我们的列表中不包含重复句子(这是说,出现在目录/bin 和/usr/bin 中重名的程序),
我们添加 uniq 到我们的管道线中:

[shijiangge@localhost ~]$ls /bin /usr/bin | sort | uniq | less

在这个例子中,我们使用 uniq 从 sort 命令的输出结果中,来删除任何重复行。如果我们想看到 重复的数据列表,让 uniq 命令带上”-d”选项,就像这样:

[shijiangge@localhost ~]$ls /bin /usr/bin | sort |uniq -d | less

wc命令:显示行数,单词数和字节数
[shijiangge@localhost ~]$ wc ls-output.txt
 1  7 40 ls-output.txt


正如我们先前的命令,如果 wc 不带命令行参数,它接受标准输入。”-l”选项限制命令输出只能 报道行数
添加 wc 到管道线来统计数据,是个很便利的方法。查看我们的有序列表中程序个数, 我们可以这样做:
[shijiangge@localhost ~]$ ls /bin /usr/bin | sort | uniq |wc -l
1871

grep 是个很强大的程序,用来找到文件中的匹配文本
比如说,我们想在我们的程序列表中,找到文件名中包含单词”zip”的所有文件。这样一个搜索, 可能让我们了解系统中的一些程序与文件压缩有关系。这样做:
[shijiangge@localhost ~]$ ls /bin /usr/bin | sort | uniq | grep zip

grep 有-对方便的选项:”-i”导致 grep忽略大小写当执行搜索时(通常,搜索是大小写 敏感的),”-v”选项会告诉 grep只打印不匹配的行。

head / tail -打印文件开头部分/结尾部分
默认情况下显示10行,通过”-n”选项来调整命令打印的行数

tail 有一个选项允许你实时的浏览文件。当观察日志文件的进展时,这很有用,因为 它们同时在被写入,
使用”-f”选项,tail 命令继续监测这个文件,当新的内容添加到文件后,它们会立即 出现在屏幕上。

[shijiangge@localhost ~]$head -n 5ls-output.txt

[shijiangge@localhost ~]$ tail -n 5 ls-output.txt

======================================

第8章:

(字符)展开--Expansion
echo - 显示一行文本
[shijiangge@localhost ~]$ echo this is a test
this is a test

[shijiangge@localhost ~]$ echo *
foo.txt HelloWorld.java ls-error.txt ls-output.txt test vimrc.zip

路径名展开:
[shijiangge@localhost ~]$echo *t
foo.txt ls-error.txt ls-output.txt test

[shijiangge@localhost ~]$ echo [[:upper:]]*
HelloWorld.java

[shijiangge@localhost ~]$ echo /usr/*/share
/usr/kerberos/share /usr/local/share

波浪线展开 Tilde Expansion:
[shijiangge@localhost ~]$echo ~
/home/shijiangge

算术表达式展开使用  $((expression))  这种格式:
[shijiangge@localhost ~]$ echo $((2 + 2))
4
[shijiangge@localhost ~]$ echo $(($((5**2)) * 3))
75
[shijiangge@localhost ~]$ echo $(((5**2) * 3))
75
[shijiangge@localhost ~]$ echo Five divided by two equals $((5/2))
Five divided by two equals 2
[shijiangge@localhost ~]$ echo with $((5%2)) left over.
with 1 left over.

花括号展开(Brace Expansion):
花括号展开模式可能包含一个开头部分叫做报头,一个结尾部分叫做附言。
花括号表达式本身可 能包含一个由逗号分开的字符串列表,或者一系列整数,或者单个的字符串。
[shijiangge@localhost ~]$ echo Front-{A,B,C}-Back
Front-A-Back Front-B-Back Front-C-Back

[shijiangge@localhost ~]$ echo Number_{1..5}
Number_1 Number_2 Number_3 Number_4 Number_5

[shijiangge@localhost ~]$ echo {Z..A}
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A

[shijiangge@localhost ~]$ echo a{A{1,2},B{3,4}}b #嵌套
aA1b aA2b aB3b aB4b


那么这对什么有好处呢?最普遍的应用是,创建一系列的文件或目录列表。
例如,如果我们是摄影师,有大量的相片。我们想把这些相片按年月先后组织起来。
首先,我们要创建一系列以数值”年-月”形式命名的目录。通过这种方式,目录名按照 年代顺序排列。
我们可以手动一个一个的创建目录列表,但是工作量太大了,并且还易于出错。所以呢:
[shijiangge@localhost ~]$ mkdir Pics
[shijiangge@localhost ~]$ cd Pics/
[shijiangge@localhost Pics]$ ll
total 0
[shijiangge@localhost Pics]$ mkdir {2007..2009}-0{1..9} {2007..2009}-{10..12}
[shijiangge@localhost Pics]$ ls
2007-01  2007-05  2007-09  2008-01  2008-05  2008-09  2009-01  2009-05  2009-09
2007-02  2007-06  2007-10  2008-02  2008-06  2008-10  2009-02  2009-06  2009-10
2007-03  2007-07  2007-11  2008-03  2008-07  2008-11  2009-03  2009-07  2009-11
2007-04  2007-08  2007-12  2008-04  2008-08  2008-12  2009-04  2009-08  2009-12

参数展开(Parameter Expansion):
[shijiangge@localhost Pics]$ echo $USER
shijiangge

命令替换(Command Substitution):
命令替换允许我们把一个命令的输出作为一个展开模式来使用:
[shijiangge@localhost Pics]$ echo $(ls)
2007-01 2007-02 2007-03 2007-04 2007-05 2007-06 2007-07 2007-08 2007-09 2007-10 2007-11 2007-12 2008                                                          -01 2008-02 2008-03 2008-04 2008-05 2008-06 2008-07 2008-08 2008-09 2008-10 2008-11 2008-12 2009-01                                                           2009-02 2009-03 2009-04 2009-05 2009-06 2009-07 2009-08 2009-09 2009-10 2009-11 2009-12

[shijiangge@localhost ~]$ ls -l $(which cp)
-rwxr-xr-x 1 root root 68136 Nov 28  2006 /bin/cp

[shijiangge@localhost ~]$ ls -l `which cp`
-rwxr-xr-x 1 root root 68136 Nov 28  2006 /bin/cp

[shijiangge@localhost ~]$ file $(ls /usr/bin/* | grep zip)
/usr/bin/bunzip2:      symbolic link to `bzip2'
/usr/bin/bzip2:        ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9                                                          , dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
/usr/bin/bzip2recover: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9
...
...

引用(Quoting)--单引号,双引号:
[shijiangge@localhost ~]$ echo this is a    test
this is a test
[shijiangge@localhost ~]$  echo "this is a           test" # 加双引号与不加双引号的区别看清楚没
this is a           test
[shijiangge@localhost ~]$  echo text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER
text /home/shijiangge/foo.txt /home/shijiangge/ls-error.txt /home/shijiangge/ls-output.txt a b foo 4     shijiangge
[shijiangge@localhost ~]$  echo "text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER"
text ~/*.txt {a,b} foo 4 shijiangge
[shijiangge@localhost ~]$ echo 'text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER'
text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER


[shijiangge@localhost ~]$ echo $(cal)
January 2014 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25    26 27 28 29 30 31
[shijiangge@localhost ~]$  echo "$(cal)"
   January 2014
Su Mo Tu We Th Fr Sa
 1  2  3  4
5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31


转义字符(Escaping Characters):
[shijiangge@localhost ~]$ echo "The balance for user $USER is: $5.00"
The balance for user shijiangge is: .00
[shijiangge@localhost ~]$ echo "The balance for user $USER is: \$5.00"
The balance for user shijiangge is: $5.00

=====================================================================================

第9章--shell 提供的键盘操作技巧

光标移动命令:

Key Action
Ctrl-a 移动到行首
Ctrl-e 移动到行尾
Ctrl-f 向右移动一个字符
Ctrl-b 向左移动一个字符
Alt-f 光标向前移动一个单词
Alt-b 光标向后移动一个单词
Ctrl-l 清屏, 作用和clear一样

文本编辑命令:

Key Action
Ctrl-d 删除字符到光标的位置
Ctrl-t 调换光标前一个字符
Alt-t 调换光标前一个单词
Alt-l 从光标位置开始转换成小写字母
Alt-u 从光标位置开始转换成大写字母

剪切和粘贴命令:

Key Action
Ctrl-k 从光标位置删除到行尾
Ctrl-u 从光标位置删除到行首
Alt-d 从光标位置删除一个单词
Alt-Backspace 从光标位置删除前一个字符
Ctrl-y 从kill-ring拽Ctrl-y文本,把它插入游标目前的位置

表9-4: 自动补全命令(Tab
按键 行动
Alt-? 显示可能的自动补全列表。在大多数系统中,你也可以完成这个通过按 两次 tab 键,这会更容易些。
Alt-* 插入所有可能的自动补全。当你想要使用多个可能的匹配项时,这个很有帮助。

history--查看历史命令:

[shijiangge@localhost ~]$ history | less

[shijiangge@localhost ~]$ history | grep /usr/bin

ecos@ubuntu:~$ history | grep /usr/bin
...
88 ls
...

ecos@ubuntu:~$ !88
ls
Desktop Documents Music Pictures Public Templates Videos
数字 “88” 是这个命令在历史列表中的行号。

表:历史命令:

Key Action
Ctrl-p 跳转到上一个历史动作
Ctrl-n 跳转到下一个历史动作
Alt - < 搬到开始(top)的历史列表
Alt - > 移动到结束(bottom)的历史列表,即当前命令行
Ctrl-r 反向增量搜索. 从目前搜索命令行不断的历史列表
Alt-p 反向搜索,non-incremental. 这把钥匙,在搜索字符串类型,按回车键在搜索被执行
Alt-n 搜索,non-incremental了.
Ctrl-o 完成当前的项目清单和历史前进到下一个. 这是方便的,如果你正试图re-execute一系列命令,历史列表

表:历史命令展开:

Sequence Action
!! 重复最后的命令
!number 重复历史列表对应的号码
!string 重复历史列表项中开始字符串的历史
!?string 重复历史列表项包含字符串的历史

我们要注意使用“!sting”和“!?srting”, 除非你绝对确定历史内容的列表条目

=============================================================================

第10章--权限

  • Secure Shell(缩写:SSH),即“安全壳协议”,一项计算机上的安全协议
阮一峰:SSH原理与运用(一):远程登录http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html

  • id     - 显示用户的身份
  • chmod  - 改变一个文件的模式
  • umask  - 指定在建立文件时预设默认的权限掩码(Set the default file permissions)
  • su     - 以另一个用户的身份来运行 shell
  • sudo   - 以另一个用户的身份来执行命令
  • chown  - 改变一个文件的所有者
  • chgrp  - 改变一个文件的所有权
  • passwd - 改变用户的密码

[shijiangge@localhost ~]$ less /etc/shadow
/etc/shadow: Permission denied
[shijiangge@localhost ~]$ id
uid=504(shijiangge) gid=504(shijiangge) groups=504(shijiangge) context=user_u:system_r:unconfined_t

chmod  - 改变一个文件的模式(权限)
[shijiangge@localhost ~]$ ls -l foo.txt
-rw-rw-r--1 shijiangge shijiangge 30 Jan 21 10:19 foo.txt
[shijiangge@localhost ~]$ chmod 600 foo.txt
[shijiangge@localhost ~]$ ls -l foo.txt
-rw-------1 shijiangge shijiangge 30 Jan 21 10:19 foo.txt

列表的前十个字符是文件的属性。这十个字符的第一个字符表明文件类型,剩下的九个字符,叫做文件模式,

代表着文件所有者,文件所有者,和其他人的读,写,执行权限。

八进制表示法:


通常只会用到一些常见的映射关系: 7 (rwx), 6 (rw-),5 (r-x), 4 (r–), and 0 (—)。


Attribute File Type
- 文件
d 目录
l 链接符号. 注意,而用符号链接,剩下的文件总是rwxrwxrwx属性”,都是虚构的. 真正的文件属性是这个符号链接指向档案
c 一个角色特别的文件. 这个文件类型是指一种装置,它处理数据作为一个流的字节,如终端或调制解调器
b 一块特别的文件. 这个文件类型是指一种装置, 如一个硬盘或cd - rom驱动

剩下的9个字符的文件属性,叫做文件模式,代表着
读、写、执行权限的文件的主人,这个文件的所有者
Owner Group World
rwx rwx rwx

权限属性

属性 文件 目录
r 允许文件被打开阅读 允许一个目录的内容显示如果执行属性也设置
w 允许文件写入,然而这个属性不允许文件改名或删除. 能够删除或重命名文件是由目录的属性 允许文件在一个目录被创造,删除,并重新命名为“如果执行属性也设置
x 允许文件将其视为一个程序和执行. 程序文件写在脚本语言也必须设置为可读可执行 允许一个目录进入,例如,cd目录
我们使用和八进制批注八进制数字来设置模式目的的权限.
由于每一位在一个八进制数字代表三个二进制数字,如图
Octal Binary File Mode
0 000 ---
1 001 --x
2 010 -w-
3 011 -wx
4 100 r--
5 101 r-x
6 110 rw-
7 111 rwx

常用的
7 (rwx), 6 (rw-), 5 (r-x), 4 (r--), and 0 (---)


chmod 命令也可以使用符号表示法:

==========================================

第11章--进程

通常,现在的操作系统都支持多任务,意味着操作系统(给用户)造成了一种假象,(让用户觉得) 它同时能够做多件事情,
事实上,它是快速地轮换执行这些任务的。Linux 内核通过使用进程,来 管理多任务。通过进程,Linux 安排不同的程序等待使用 CPU。
那么,什么是进程?请看阮一峰的这篇文章:TODO


  • ps – 报告当前进程快照(Report a snapshot of current processes)
  • top – 显示任务(Display tasks)
  • jobs – 列出活跃的任务(List active jobs)
  • bg – 把一个任务放到后台执行(Place a job in the background)
  • fg – 把一个任务放到前台执行(Place a job in the foreground)
  • kill – 给一个进程发送信号(Send a signal to a process)
  • killall – 杀死指定名字的进程(Kill processes by name)
  • shutdown – 关机或重启系统(Shutdown or reboot the system)


查看进程,最常使用地命令(有几个命令)是 ps。ps 程序有许多选项:

[shijiangge@localhost ~]$ ps

  PID TTY          TIME CMD

14414 pts/0    00:00:00 bash

14485 pts/0    00:00:00 ps

PID 为进程的ID号。
TTY 是 “Teletype” 的简写,是指进程的控制终端。这里,Unix 展示它的年龄。
TIME 字段表示 进程所消耗的 CPU 时间数量。


[shijiangge@localhost ~]$ ps x

  PID TTY      STAT   TIME COMMAND

14413 ?        S      0:00 sshd: shijiangge@pts/0

14414 pts/0    Ss     0:00 -bash

14492 pts/0    R+     0:00 ps x

加上 “x” 选项(注意没有开头的 “-” 字符),告诉 ps 命令,展示所有进程,不管它们由什么 终端(如果有的话)控制。
在 TTY 一栏中出现的 “?” ,表示没有控制终端。使用这个 “x” 选项,可以 看到我们所拥有的每个进程的信息。
STAT 是 “state” 的简写,它揭示了进程当前状态:




[shijiangge@localhost ~]$ ps aux

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root         1  0.0  0.0   2040   576 ?        Ss   Jan10   0:00 init [5]

root         2  0.0  0.0      0     0 ?        S    Jan10   0:00 [migration/0]

root         3  0.0  0.0      0     0 ?        SN   Jan10   0:00 [ksoftirqd/0]

表11-2: BSD 风格的 ps 命令列标题 #


ps 命令只是提供执行时刻的机器状态快照。 为了看到更多动态的信息,我们使用 top 命令
截图


top 程序连续显示系统进程更新的信息(默认情况下,每三分钟更新一次)。
top 显示结果由两部分组成: 最上面是系统概要,下面是进程列表,以 CPU 的使用率排序。
TODO:链接 表11-3: top 命令信息字段(top Information Fields) 点击打开链接




 kill 命令不是确切地“杀死”程序,而是给程序 发送信号。信号是操作系统与程序之间进行通信,所采用的几种方式中的一种。
 我们已经看到 信号,在使用 Ctrl-c 和 Ctrl-z 的过程中。当终端接受了其中一个按键组合后,它会给在前端运行 的程序发送一个信号。
 在使用 Ctrl-c 的情况下,会发送一个叫做 INT(中断)的信号;当使用 Ctrl-z 时,则发送一个叫做 TSTP(终端停止)的信号。
 程序,反过来,倾听信号的到来,当程序 接到信号之后,则做出响应。一个程序能够倾听和响应信号,这个事实允许一个程序做些事情, 
 比如,当程序接到一个终止信号时,它可以保存所做的工作。


ecos@ubuntu:~$ xlogo                        # 运行这条命令后弹出一个X的窗口
^C                                          # ctrl+c 结束任务

ecos@ubuntu:~$ xlogo &                      # 在后台运行中
[1] 3583

ecos@ubuntu:~$ jobs                         # 查看后台停止的任务
[1]+ Running                  xlogo &

ecos@ubuntu:~$ fg 1                         # 前台运行
xlogo
^Z                                          # ctl+z
[1]+  Stopped                 xlogo         # 停止任务放到后台

ecos@ubuntu:~$ bg 1                         # 后台运行
[1]+ xlogo &

ecos@ubuntu:~$ jobs                         # 有了吧
[1]+  Running                 xlogo &

ecos@ubuntu:~$ ps                           # 查看进程
  PID TTY          TIME CMD
 4270 ?        00:00:00 bash
 3583 ?        00:00:00 xlogo
 4271 ?        00:00:00 ps

ecos@ubuntu:~$ kill 3583                    # 干掉xlogo
[1]+  Terminated              xlogo

ecos@ubuntu:~$ ps                           # 检查下, 没有了
  PID TTY          TIME CMD
 4270 ?        00:00:00 bash
 4271 ?        00:00:00 ps
ecos@ubuntu:~$ jobs                         # 看看后台的任务
ecos@ubuntu:~$                              # 什么都没有


TODO第12章


=========================================

第十五章--软件包管理

一般而言,大多数发行版分别属于两大包管理技术阵营: Debian 的".deb",和红帽的".rpm"。
 也有一些重要的例外,比方说 Gentoo, Slackware,和 Foresight,但大多数会使用这两个基本系统中的一个。

Major Packaging System Families--主要的包管理系统家族

Packaging System Distributions (Partial Listing)
Debian Style (.deb) Debian, Ubuntu, Xandros, Linspire
Red Hat Style (.rpm) Fedora, CentOS, Red Hat Enterprise Linux, OpenSUSE, Mandriva, PCLinuxOS

表15-1: 主要的包管理系统家族
包管理系统 发行版 (部分列表)
Debian Style (.deb) Debian, Ubuntu, Xandros, Linspire
Red Hat Style (.rpm) Fedora, CentOS, Red Hat Enterprise Linux, OpenSUSE, Mandriva, PCLinuxOS


Packaging System Tools--包管理工具

Distributions Low-Level Tools High-Level Tools
Debian-Style dpkg apt-get aptitude
Fedora, Red Hat rpm yum
Enterprise Linux, CentOS . .

表15-2: 包管理工具
发行版 底层工具 上层工具
Debian-Style dpkg apt-get, aptitude
Fedora, Red Hat Enterprise Linux, CentOS rpm yum

Package Search Commands---软件包查找工具

Style Command(s)
Debian apt-get update apt-cache search search_string
Red Hat yum search search_string

表15-3: 软件包查找工具
风格 命令
Debian apt-get update

apt-cache search search_string

Red Hat yum search search_string


表15-4: 软件包安装命令
风格 命令
Debian apt-get update

apt-get install package\_name

Red Hat yum install package\_name

例子

# ubuntu
ecos@ubuntu:~$ apt-get install gvim     # 安装软件
ecos@ubuntu:~$ apt-get remove emacs     # 卸载软件

ecos@ubuntu:~$ apt-cache show emacs     # 查看在Debian-style系统对emacs的描述

# red hat
ecos@ubuntu:~$ rpm -U emacs-22.1-7.fc7-i386.rpm        # 更新现有的安装emacs版本
ecos@ubuntu:~$ rpm -qf /usr/bin/vim                    # 看看/usr/bin/vim安装信息

例如:从一个 apt 资源库来安装 emacs 文本编辑器:

apt-get update; apt-get install emacs

表15-6: 软件包删除命令
风格 命令
Debian apt-get remove package_name
Red Hat yum erase package_name

表15-9: 列出所安装的软件包命令
风格 命令
Debian dpkg --list
Red Hat rpm -qa

表15-10: 软件包状态命令
风格 命令
Debian dpkg --status package_name
Red Hat rpm -q package_name

例如:确定是否 Debian 风格的系统中安装了这个 emacs 软件包:

dpkg --status emacs
============================



==========================================


Lunix 调整时间,就是将服务器时间调快或调慢,线上一般不要调整时间,本地为了测试在调整服务器时间的。


date -s 07/09/2013
date -s 17:05:00 


==========================================
mysql命令行导入sql文件到指定数据库的方法


mysql命令行导入的方式。
以下是各步骤:

1、先将数据库通过ftp上传至服务器内
       或者使用 rz -y  进行上传

2、登陆mysql数据库:
      mysql -u root -p

3、选择数据库:

use mydbname;

4、导入文件:

[win下] source e:\newdb.sql;

[linux下] source /root/newdb.sql;

导入成功!

==============================================
再来一个导出的吧(不用在mysql命令行):
mysqldump -uroot -p dbname table1 table2 > foo.sql


mysqldump -uroot -p huo > /usr/local/jiangge/foo.sql



压缩:
zip -r webgames.zip webgames

===================================================
FTP--ftp 启动命令:
service vsftpd start

----------------------------------------------------------------------------------



参考:
1. http://billie66.github.io/TLCL/book/chap10.html
2. 学习笔记: http://www.ec-os.net/misc/linuxcommand.html
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MySQL Command Line[mysql命令行常用命令]

MySql下载地址:www.mysql.org 第一招、mysql服务的启动和停止 net stop mysql net start mysql 第二招、登陆mysql m...

LINUX命令行学习笔记

  • 2013-09-14 15:58
  • 89KB
  • 下载

mysql导入导出.sql文件备份还原数据库[mysql导入导出sql命令行]

步骤:一.MYSQL的命令行模式的设置:桌面->我的电脑->属性->环境变量->新建->PATH=";path/mysql/bin;"  其中path为MYSQL的安装路径。二.命令行进入MYSQL的...

MySQL命令行导入sql数据库

对以,没在windows的环境变量path中mysql安装路径的,把sql文件拷贝到C:\Windows\Temp文件下。这样mysql服务器有权限读取。 进入MySQL目录下的bin文件...

MySQL命令行导入sql数据库

本文介绍了MySQL命令行导入sql数据库。

命令行是你的至交好友 The Command Line is Your Best Friend

命令行是你的至交好友 英文原文:The Command Line is Your Best Friend 转载自:http://www.oschina.net/translate/the-com...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)