命令提示符linux
man——命令手册git
(须要查看具体参数的使用时,输入/-r便可查看-r的做用,查找下一处:n,退出:q)正则表达式
显示:文件/目录+权限+文件大小+建立人+全部人+实际占的大小+建立时间+名字(google确认)shell
——竖着排列,经过列举的文件信息能够知道哪些是文件哪些是目录数据库
最右边是目录或文件的名字,最左边以d开头的都是目录,以-开头的都是文件,后边的是权限。ubuntu
—cd - 回到原来的那个路径vim
—cd ./** 当前路径(也可使用cd **,结果同样)windows
—cd ../.. 回到上两层路径bash
Tab命令——一次敲击自动补齐,两次敲击查看备选项app
显示当前路径
建立一个目录
区分:touch指令做用是建立文本,不是建立文件夹。
删除目录
注意:删除目录的指令为rmdir,删除文件的指令为rm。
注意:
删除的时候要在当前目录的上一层删除,而且只能删除为空的文件,不然报错。
实际当中,咱们用的删除指令为:
rm -r(r/R是指recursive,递归迭代的意思,即递归删除,这样就能删除文件内的全部内容了):
这样作一般会让你屡次确认是否删除文件,比较麻烦,能够采用下面的作法:
(rm -tf,force强制删除):
这也是最经常使用的方法,除了可删除目录外还能够删除文件。
注:touch建立文件 mkdir建立目录
(在ls列举出文件详细信息时,-开头的表示文件,d开头表示目录)
-r表示递归的意思,应用很普遍
注意:
文件和目录的复制操做是不同的:能够直接进行文件的cp操做,可是若是执行目录cp则会报错“略过目录d1”,可使用递归的方法对目录下的文件进行复制,既能够经过cp -r执行目录的复制。
注:上述操做的意思是将当前目录下的dd1移动到目的绝对路径或相对路径之中。
在执行move指令时必须进入须要操做的目录才能够,不然会报错。
(原来的状态)
注意:若是这里不进入d2目录中就会没法完成move操做,只有进入具体的目录以后才能够。
vi操做
(即文本编辑器,比windows下的notepad好用,vim与其用法相似。很重要)
注:若是文件有直接进入编辑,若是没有则会建立。
命令模式(进入后默认的模式),编辑模式(能够敲击a-append,添加;i-insert,插入等)
2.Vi退出
esc—:qw(w-存盘,q-退出,q!-不存盘退出)
more test.txt
——dd 删除一行
——dw 删除一个单词
——o 在下面插入一行
——O 在上面插入一行
注:正序与逆序
指令more是指查看某一文件的所有内容
注:取前面3行(恰好把数据截取掉)
Tell取倒数第几行。
若是对于log等较大的文件进行操做,想读取最后的一些数据时,可使用head或tell操做,而不该该用more指令全盘列举。
注:清屏 ——clear
能够按照文件的名称、日期、大小等查找。
dos环境下:cmd——echo %path% 或 echo %classpath%
Linux:echo $PATH(要大写)
注:Windows中的分隔符与Linux不一样,这里是:(冒号),而不是;(分号)。
注:这里是硬连接(默认)。
连接与复制是不一样的,源文件修改后连接内容会随着改变,而复制的则不会。
验证方法:vi打开已经建立连接的文件——修改源文件——查看复制的文件和连接的文件内容是否改变。
软链接至关于windows中的快捷方式,硬连接至关于复制之后再创建连接。
能够经过删除源文件验证软连接与硬连接二者区别:
注:红颜色表示连接消失,前面的小写字母l表示连接
注:软链接在删除源文件后出错,硬连接因为复制了一份源文件,因此不会报错。
注:home目录:不一样用户在这里都有一个主目录(每添加一个用户就会多一个主目录)
注:输入密码的时候不出现*,这与windows中不同,退格键也是一个字符,所以敲错了必须从新敲。
注:这里存储的不是密码,而是全部的用户,文件的最后一行是咱们新添加的用户。
注:test——新添加的用户名,1001——用户组,1000——用户id号,/home/test——用户的主目录,/bin/bash——用户所用到的shell是bash
用户组的信息:more group
注:当添加的用户不知道属于哪一个用户组的时候,默认的用户组是与用户名相同的。
打包压缩
解压缩——unzip **
压缩——zip ** 文件名 目录
在自由软件基金会网站下载wget源码会碰见**.tra.gz/**.tar.gz2,具体操做:
解压(.gz)——tar zxvf 包名
压缩——tar zcvf 包名 目录
(x-解压缩,c-压缩comprise)
重定向——拐弯
输出保存到文件中——data >output.txt -- cat output.txt(这时输出没有打印到屏幕,而是输出到文件中)
若是:
data shit>output.txt
(这时会报错,由于shit文件不存在)
系统中有三个文件是一直打开的,系统为其分配了3个文件描述符。
0——stdin 1——stdout 2——stderr
注:默认状况下,输出信息不会写到磁盘,而是在屏幕显示。
输出重定向
好比在file1:hello,file2:world。须要输出hello world:
cat file1 >file
cat file2 >file
Cat file
这时并不会输出hello world,而是world,由于重定向符在定向以前会清空原来内容。
Ca file1>>file
这时会自动追加内容
Cat file1 file2
Cat file1 file2 >file
这样也能够。
重定向标准错误输出
一样,对于一个不存在的文件执行这样的操做,也会报错。
Ls shit 2 >out.txt
Cat out.txt
注:列举shit文件不存在,会报错,这时经过文件描述符2控制输出。
标准输入重定向
** < out.txt
从刚才的文件输入,用的很少,由于实际中咱们有管道:能够将前面输出做为后面的输入。
管道线
Cat file.txt | uniq
注:在file中有重复的,这样就能够不显示重复内容。
Cat file.txt | uniq | grep txt
注:只显示txt文件
Cat file.txt | uniq | grep txt | sort
注:排序
用户和文件权限
用户在本身主目录有写权限,其他地方没有该权限。
能够用sudo 指令,化做超级用户操做。
apt-get 必须使用sudo
权限:读、写、可执行
根据权限划分:owner,group,world
注:1表示硬连接的数目。第一个peter—owner,第二个peter——group,0——文件大小,后面是最后修改时间。
对于目录:
读权限——可以查看目录,不然不能查看。
写权限——对里面的文件有建立删除重命名
执行权限——能够进入该目录(其实默认的时候就能够进入目录)。
对于文件:
读权限——对于文件相似。
写权限——重命名、建立和删除操做与这个无关(有写权限,不必定可以进行重命名或删除操做,由于目录的权限可能不具有写权限)
执行权限——对于普通文件添加可执行权限没有什么实际意义。咱们利用vi新建一个脚本:
Vi a.sh(稍后敲小写i进入插入模式)
Echo hello!
存盘退出
试图执行: ./a.sh
权限被拒绝,须要增长权限。
Ls -l a.sh
查看权限
利用chmod +x a.sh能够成功执行。
总结:对于一个文件有执行权限能够运行。
利用八进制数的形式修改
如何在终端复制粘贴?
双击对象——ctrl+shift+C复制——ctrl+shift+V粘贴
打开程序
Firefox+Alt+Tab在各个进程之间切换——firefox此时占据了shell,咱们是没法执行其余操做的——比较好的方法是在shell中键入firefox &而不是firefox,这样程序后台运行——如今可使用Ctrl+Z使firefox暂停——程序没有响应——bg(即后台,firefox &效果同样)——fg回到前台——ctrl+c结束
程序不正常运行时,可使用kill -9 PID,正常运行时可使用kill -15 PID
还有一种状况,程序占用资源过多,桌面系统被拖死,咱们没法输入任何内容—ctrl+ALt+F1杀死进程,这样能够进入第一个控制台(linux中能够同时启动7个控制台)。
查找
locate——系统全局范围(ubuntu中支持正则表达式)
注:新建一个文件并不能直接经过该指令搜到,locate运行原理是在数据库中查找而不是遍历整个文件系统,updatedb会把文件系统更新到数据库中,可是updatedb天天才更新一次。咱们手动运行如下便可(须要超级用户权限)——sudo updatedb 文件
find——在一个目录中,若是输入.,则会查看当前目录下的全部文件,若是输入. |grep .txt则会输出txt文件。若是只看文件:find . -type f,只看目录:find . -type d。
还能够添加可执行的操做:
find . -type f -exec ls -l ‘{}’ ‘;’
在列举出的文本中添加内容
echo hello >a.txt
echo Hello >b.txt
字符串查找:
find . -type f -exec grep hello ‘{}’ ‘;’
输出:hello
打印匹配项所在的文件:
find . -type f -exec grep hello ‘{}’ ‘;’ -print
打印具体的行号:
find . -type f -exec grep -n hello ‘{}’ ‘;’ -print
忽略大小写:
find . -type f -exec grep -ni hello ‘{}’ ‘;’ -print
happygrep(能够在git上下载)
安装依赖的库——make获得二进制代码——ls显示happrgrep——为了使其成为系统能够找到的命令,能够将其转移到主目录的bin目录中——mv happygrep ~/bin——这样在命令行任意位置敲happygrep均可以实现对应功能(好比补齐)——若是以为名字太长,能够实现连接——ln -s happygrep XXX——这样敲击XXX就启动了这个程序