Linux常用指令

Posted 野渡书生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用指令相关的知识,希望对你有一定的参考价值。

 

命令提示符

技术分享

 

man——命令手册

(需要查看具体参数的使用时,输入/-r即可查看-r的作用,查找下一处:n,退出:q)

指令—ls(list)

1、 ls -l (竖着排列)

显示:文件/目录+权限+文件大小+创建人+所有人+实际占的大小+创建时间+名字(google确认)

——竖着排列,通过列举的文件信息可以知道哪些是文件哪些是目录

最右边是目录或文件的名字,最左边以d开头的都是目录,以-开头的都是文件,后边的是权限。

2、ls -a(列举隐藏文件)

 

指令—cd

cd /dev——绝对路径  de / + cd dev ——相对路径

 

cd - 回到原来的那个路径

cd ./** 当前路径(也可以使用cd **,结果一样)

—cd ../.. 回到上两层路径

Tab命令——一次敲击自动补齐,两次敲击查看备选项

 

指令—pwd

显示当前路径

指令—mkdir

创建一个目录

区分:touch指令作用是创建文本,不是创建文件夹。

指令—rmdir

删除目录

注意:删除目录的指令为rmdir,删除文件的指令为rm。

注意:

删除的时候要在当前目录的上一层删除,并且只能删除为空的文件,否则报错。

技术分享

实际当中,我们用的删除指令为:

rm -r(r/R是指recursive,递归迭代的意思,即递归删除,这样就能删除文件内的所有内容了):

技术分享

这样做通常会让你多次确认是否删除文件,比较麻烦,可以采用下面的做法:

(rm -tf,force强制删除):

技术分享

这也是最常用的方法,除了可删除目录外还可以删除文件。

技术分享

注:touch创建文件  mkdir创建目录

(在ls列举出文件详细信息时,-开头的表示文件,d开头表示目录)

-r表示递归的意思,应用很广泛

复制操作

技术分享

注意:

文件和目录的复制操作是不一样的:可以直接进行文件的cp操作,但是如果执行目录cp则会报错“略过目录d1”,可以使用递归的方法对目录下的文件进行复制,既可以通过cp -r执行目录的复制。

move操作

技术分享

注:上述操作的意思是将当前目录下的dd1移动到目的绝对路径或相对路径之中。

在执行move指令时必须进入需要操作的目录才可以,否则会报错。

技术分享

(原来的状态)

技术分享

注意:如果这里不进入d2目录中就会无法完成move操作,只有进入具体的目录之后才可以。

vi操作

(即文本编辑器,比windows下的notepad好用,vim与其用法类似。很重要)

技术分享

注:如果文件有直接进入编辑,如果没有则会创建。

1. Vi两种模式

命令模式(进入后默认的模式),编辑模式(可以敲击a-append,添加;i-insert,插入等)

2.Vi退出

esc—:qw(w-存盘,q-退出,q!-不存盘退出)

3.查看文件内容

more test.txt

4.删除

——dd 删除一行

——dw 删除一个单词

5.插入

——o  在下面插入一行

——O  在上面插入一行

cat与tac指令

技术分享

注:正序与逆序

指令more是指查看某一文件的全部内容

head指令(可以带参数)

技术分享

注:取前面3行(刚好把数据截取掉)

tell操作(可以附加参数)

Tell取倒数第几行。

如果对于log等较大的文件进行操作,想读取最后的一些数据时,可以使用head或tell操作,而不应该用more指令全盘列举。

注:清屏 ——clear

find操作(功能极其强大)

可以按照文件的名称、日期、大小等查找。

whereis操作

其后一般跟指令,比如 whereis ls(列举出命令的位置以及帮助文档)

环境变量

dos环境下:cmd——echo %path% 或 echo %classpath%

Linux:echo $PATH(要大写)

技术分享

注:Windows中的分隔符与Linux不同,这里是:(冒号),而不是;(分号)。

ln链接指令

技术分享

注:这里是硬链接(默认)。

链接与复制是不同的,源文件修改后链接内容会随着改变,而复制的则不会。

验证方法:vi打开已经创建链接的文件——修改源文件——查看复制的文件和链接的文件内容是否改变。

软连接

软连接相当于windows中的快捷方式,硬链接相当于复制以后再建立链接。

可以通过删除源文件验证软链接与硬链接两者区别:

技术分享

注:红颜色表示链接消失,前面的小写字母l表示链接

技术分享

注:软连接在删除源文件后出错,硬链接由于复制了一份源文件,所以不会报错。

添加用户

1. 指令:adduser或useradd

技术分享

注:home目录:不同用户在这里都有一个主目录(每添加一个用户就会多一个主目录)

2. 密码:passwd 用户名(test)

技术分享

注:输入密码的时候不出现*,这与windows中不一样,退格键也是一个字符,因此敲错了必须重新敲。

 

3. /etc目录

技术分享

注:这里存储的不是密码,而是所有的用户,文件的最后一行是我们新添加的用户。

技术分享

注: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就启动了这个程序

以上是关于Linux常用指令的主要内容,如果未能解决你的问题,请参考以下文章

Linux常用指令

Linux常用指令

Linux常用指令

Linux常用指令大全详解

Linux常用指令

xshell-常用指令汇总 linux 常用指令