Linux命令

2017-10-21  本文已影响20人  不知名小号

1. 命令组成:

命令本身 参数 执行位置

2. 文件系统的树结构

绝对路径:以斜杠/开头,从根目录往下一级一级走。

相对路径:相对于当前工作目录而产生的路径。

以“.”开头,一个点表示当前目录,两个点表示上一级目录。
pwd打印当前目录
cd改变当前工作目录。
cd -:返回上一个当前目录
*cd *:去根目录
cd ..:到上级目录

3.文件系统的操作指令:

常用指令

在linux系统中,一切都是文件

拷贝copy:cp file dir

移动move:mv file1 file2

重命名:rename:mv(与移动相同)

删除:remove

参数-r表示对目录进行操作
例如:删除一个文件夹:rm -r <目录>

创建文件:touch a.txt

创建目录:mkdri dir

查看文件:cat file

查看文件类型:file a.txt

查看当前目录下的文件:ls
ls的参数-a:显示隐藏文件

mkdir和touch创建的文件或文件夹前加“.”表示创建隐藏的文件或文件夹。

less 分页查看文件

通配符

<输入>+*:自动补全对应的文件名

打包和压缩

解压

unzip <文件名>

打包

zip -r <文件名> <相应的目录>

tar.gz解压

tar zxvf ***.tat.gz

tar.gz压缩

tar zcvf ***.tar.gz

tar.bz2解压

tar jxvf ***.tar.bz2

tar.bz2压缩

tar jcvf ***.tar.bz2

4. 重定向

三个重要的文件

在linux中一切的东西都是文件:文件,目录,甚至硬件都是文件。

三个重要文件:文件描述

几个重定向的方式

输出重定向符:

把输出打印到文件中
执行语句+>+文件名
重定向符默认是先清空后输出的,如果要文件在后面添加输出则用“>>“
执行语句+>>+文件名
另一种连接方式:
cat file1 file2会连续输file1和file2,所以只需要把结果给file就好了
cat file1 file2>file

错误输出重定向

默认情况错误输出不能重定向到文件中,如果非要加,则:
错误语句 2>文件名
2代表标准错误输出文件stderr

标准输入重定向

执行语句+<+文件名

管道符:“|”

作用

将一个命令的输出作为另一个命令的输入

cat files.txt|uniq
uniq是去除重复命令,上面语句的意思是将cat语句的输出结果去重之后输出。
cat files.txt|grep txt
grep代表查找,意思就是只输出txt的文件名。
cat file.txt|sort
将输出结果进行排序

5. 文件权限

r读权限,w写权限,x执行权限
ls -l 文件名查看文件的权限
对于目录来说,写权限代表我们能够创建删除重命名里面的文件。
对于目录回来说,执行权限代表能够cd它。

chmod

'chmod 110110110 a.txt'
每三位数以此代表用户 群组 游客的权限,三位数中的每位数代表读权限,写权限,执行权限。
chmod 666 a.txt
将每个三位数转化成对应的八进制
'chmod u+x a.txt'

6. linux进程

获取进程号

PID=Process ID
'ps'查看进程
‘ps aux’查看当前所有进程情况

后台执行

执行命令+&(回车)后台执行程序
Ctrl+Z暂停进程+bg后台运行
‘fg’回到前台

kill命令

kill -9 PID强制退出进程

7. linux搜索

locate

locate +字符打印出所有含有输入字符的文件。并定位到目录

find

find+目录显示对应目录下的所有文件
'find +目录+|grep ***'显示所有对应目录下包含****的文件
只想看到文件:后面加-type f
只想看到目录:后面加-type d

find . -type f -exec grep -ni hello '{}' ';' -print

8. 网络操作

ssh 用户名@网址连接服务器
在本地及其上运行ssh-keygen
在主目录上打开.ssh,cd ~/.ssh
执行ls就会看到id_rsa id_rsa.pub
有.pub后缀的是公钥,另一个是私钥。把.pub放到/home/peter/.ssh/authorized_keys
命令:ssh-copy-id 用户名@地址然后一路回车
这样子以后再ssh就不用输入密码啦。

9. 安装软件

手动安装

把可执行文件链接到PATH中

ln -s 可执行文件目录 ~/bin/链接名字
以后只要输入链接名字就能执行文件了。

安装软件的三个步骤:

在源代码文件夹里执行
./confirm
make
sudo make install

deb包

dpkg -i ***.deb安装deb包
dpkg -l 列出系统上所有安装过的deb包

软件仓库安装

sudo apt-get install 软件名安装仓库中的软件

软件卸载

sudo apt-get remove 软件名删除软件
sudo apt-get purge 软件名 连配置文件一起删除

shell编程

指定解析器

#! /usr/bin/env bash指定解析器为bash

位置参数

$0 $1 $2分别代表程序名和第1第2个参数
$#代表一共有多少个参数
例:

#! /usr/bin/bash
Number of arguments:$#
The program name is:$0
The first argument is:$1

脚本中的语句不在当前shell执行
如果要在当前shell执行,就
source **.sh

for循环

用脚本给文件加上.txt后缀
在rename.sh中

#! /usr/bin/bash
cd $1
for file in a b c
do
  mv $file $file.txt
done

执行

touch a b c
./rename.sh .

其中“.”是参数,表示当前目录
但是这样,要是文件名不是abc,那我们的脚本就失效了。
键盘左上角,esc键下方有一个“`”符,在脚本中用“ `”扩起来的语句执行的结果可以当作脚本语句使用
可以把rename.sh改成如下

#! /usr/bin/bash

cd $1
echo I am in `pwd`

for file in `ls`
do
  mv $file $file.txt
done

执行的时候参数也是一个目录
./rename.sh .

上一篇下一篇

猜你喜欢

热点阅读