1. 命令组成:
命令本身 参数 执行位置
2. 文件系统的树结构
-
linux有不同的分区sda1,sda2,但是只有一个文件系统树,在文件系统树的对应文件夹挂载分区。(挂载点)。
-
根目录不是root目录。
绝对路径:以斜杠/开头,从根目录往下一级一级走。
相对路径:相对于当前工作目录而产生的路径。
以“.”开头,一个点表示当前目录,两个点表示上一级目录。
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中一切的东西都是文件:文件,目录,甚至硬件都是文件。
三个重要文件:文件描述
- 0为标准输入文件stdin
- 1为标准输出文件stdout
- 2为标准错误输出文件stderr。后面两者不会输入到文件,而是在屏幕输出。
几个重定向的方式
输出重定向符:
把输出打印到文件中
执行语句+>+文件名
重定向符默认是先清空后输出的,如果要文件在后面添加输出则用“>>“
执行语句+>>+文件名
另一种连接方式:
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 .
网友评论