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常用指令的主要内容,如果未能解决你的问题,请参考以下文章