ctrl+shift+(+/=) 其实就是ctrl+“+” 放大终端界面字体;
ctrl+- 缩小终端字体;
tab 自动补全(注意,Linux是区分字母大小写的) ,双击tab的话,会根据你输入的首字母进行匹配查看有哪些内容;
ctrl+c 开启一行,重新输入命令;
2.1 格式
command -options parameter
command :命令名字;
-options :选项,可用来对命令进行控制,也可以省略
parameter:传给命令的参数,可以是0,一个,多个;
2.2 两种方式查看命令帮助信息
command --help
说明:显示command命令的帮助信息;
man command
查看命令的使用手册,使用q退出这个帮助信息;
3.1查看文件夹下的文件:
序号 | 命令 | 对应英文 | 作用 |
01 | ls | list | 列出文件夹下的所有的文件 |
02 | pwd | print work dirctiory | 查看当前所在目录 |
03 | cd xxx | change dirctiory | 切换目录 |
04 | touch xxx | touch | 摸一下就创建了一个文件 |
05 | mkdir xxx | make directory | 创建目录 |
06 | rm xxx | remove | 删除指定的文件名 |
07 | clear | clear | 清屏 |
查看所有的文件 -a 就是all的意思;
-a 也能查看隐藏文件(.开头的文件)
. 表示当前目录
.. 表示上级目录 例如:cd .. 切换到上级目录
显示文件的详细信息,例如:
-rwxrw-rw- 1 zq zq 22940380 Oct 19 07:47 sougou.deb
-h和-l配合使用,人性化的显示文件大小;
-rwxrw-rw- 1 zq zq 22M Oct 19 07:47 sougou.deb
就可以看到文件的大小22M;
如果文件中的文件特别多是就要使用通配符了
* 可以代码任意字符
? 问号,可以代表一字符,用法和*是一样的;
ls -a* 列出以a开头的所有文件;
ls -*b 列出所有已b结尾的所有文件;
ls -*c* 列出所有中包含c的文件;
命令 | 说明 |
cd | 切换到当前用户的主目录(/home/用户目录) |
cd ~ | 切换到当前用户的主目录(/home/用户目录) |
cd . | 保持当前目录不变 |
cd .. | 切换到上级目录 |
cd - | 在最近的两个目录中来回切换 |
cd ~/xxx | 快速的切换到了home/xxx目录 |
如果文件不存在的话,就会创建一个空白的文件;
如果文件存在的话,会修改一下文件的最后修改信息;
创建目录
mkdir aa 会创建一个aa文件夹
mkdir -p 创建多级文件夹
mkdir -p aa/bb/cc/dd 创建多级文件夹;
ps:在同一目录下,文件夹和文件名字是不能相同的;
rm是直接从磁盘中干掉的,是不能恢复的;不进回收站(只能干掉文件,不能干掉文件夹)
rm -r 可以删除多级目录(包含文件和文件夹)
rm -f 强制删除,忽略错误,不提示;
查看目录层级关系
使用tree ~ 查看home下的目录结构
tree -d 只显示文件夹,不显示文件;
cp 就死copy的简写
cp 路径/文件名 路径 就可以拷贝文件了; 即使文件存在也是直接覆盖的;
cp -i 复制文件的时候会检查是否文件存在,会有提示需要覆盖吗?
cp -r 复制目录;
mv就是move的缩写
mv xxx1 xxx2 将xxx1移动到xxx2中;
但是在移动的时候可能会存在文件的覆盖,和要加一个 -i 进行提示,有没有文件覆盖;
mv命令也可以重名明一个文件或者文件目录,把aaa 命名为bbb;
zq@ubuntu:~/Desktop$ mv ./aaa ./bbb
zq@ubuntu:~/Desktop$ mv ./aaa.txt ./bbb.txt
7.1 cat concatenate的缩写 查看文件内容,一次加载完成
7.2 more 查看文件内容,内容过多,分次显示;
cat 命令的扩展:
cat -b 输出行号,不会输出空行的行号;
cat -n 所以行的行号(包括空行)
7.3 grep搜索文本内容:在文件11.txt中搜索hello字符串
grep hello 11.txt
显示hello内容的行号:
grep -n hello 11.txt
显示不包含hello内容的行:
grep -v hello 11.txt
忽略大小写搜索:
grep -i hello 11.txt grep -i "hello python" 11.txt
模式搜索:
行首匹配:^
例如:搜索以f为行首的:grep ^f 11.txt
显示行号:grep -n ^f 11.txt
行尾匹配:$
例如:以k结尾的行 grep k$ 11.txt
显示行号:grep -n k$ 11.txt
echo 会在终端中显示参数 指定的文字,通常会和重定向联合使用
例如:zq@ubuntu:~/Desktop$ echo helloPython > log.txt
Linux允许将命令执行的结果 重定向 到一个文件中;
将本该输出显示在终端上的内容 输出追加到指定的文件中;如果文件不存在会创建,存在会覆盖;
如果使用>>不会覆盖而是追加;
例如:zq@ubuntu:~/Desktop$ ls -lh > log.txt
> 表示输出,会覆盖文件的原有的内容
>> 表示追加,会将内容追加到已经有的内容的末尾;
shutdown 默认一分钟后关机
shutdown now 立刻关机
shutdown -c 取消关机
shutdown -r 重启电脑(在实际开发中都是重启,没有关机,不然谁帮你启动电脑啊)
shutdown -r now 立刻重启电脑
直接在终端输入ifconfig
也可以通过管道过滤下ip信息: ifconfig | grep inet
ps:127.0.0.1 被称为本地回环/回环地址,一般用来测试本机网卡是否正常;
检测到目标主机是否连接正常;
ping xxx
测试下本地网卡是否正常 ping 127.0.0.1
ps:Linux终端程序中想要终止一个程序,绝大多数可以使用ctrl+c;
在Linux中ssh是一个非常常用的工具,通过ssh客户端可以连接到运行了ssh服务器的远程机器上;
SSH 全名:Secure shell (SSH) 协议连接到远程计算机的软件程序;
ssh -p port username@ip
username 是远程计算机上的用户名;
ip为远程机器的ip/域名
port 是SSH Server监听的端口号,如果不指定,就默认的是22;
例如:ssh -p 22 [email protected]
在Ubuntu或者mac的电脑中默认是安装了SSH客户端的;所以可以直接使用ssh命令
但是在windows系统上就要安装相应的客户端软件了,例如xshell、putty
xshell的官方下载地址:http://www.xshellcn.com/
全名:secure copy ,是一个在Linux下用来进行远程拷贝文件的命令
地址格式基本和ssh基本相同user@ip,只不过在指定端口的时候 大写的 -P 而不是小写的;
ps:scp 是在mac系统中可以这样和Linux进行文件交互;
在windows中药使用xftp软件进行和Linux文件的交互;
硬连接数:有多少中方式可以访问文件或者文件夹,
比如下面的01.py 文件 只能通过绝对或者相对路径进行访问(相对路径在实际原理也是转换成了绝对路径的);
在比如 aaa文件夹 的硬连接数是3: 可以通过绝对路径访问,通过cd . 的方式访问当前目录;在aaa下还有一个a文件夹,可以通过a ..的方式返回到上级目录;所以是3种方式;如果在aaa文件夹下在建立一个b文件夹的话,连接数就成了4了;
去掉可读权限
chmod -r aa.py
去掉可写权限
chmod -w aa.py
去掉可读可写权限
chmod -rw aa.py
添加权限就是把-改成+就可以了
添加可以执行权限,文件就变成了绿色;
chmod +x aa.py
目录的权限修改,创建一个目录的时候默认都是有可执行权限的;不然的话文件夹没办法访问;更改权限和文件的修改权限的命令是一样的;
root账户:就是超级用户,是具有所有的权限的;如果误删除了系统文件可能会崩溃,一般是不推荐使用root用户登录的;
但是有时候要切换到超级用户权限的时候:可以在命令前加一个sudo 以root的身份执行命令了;
添加组
sudo groupadd dev
删除组
sudo groupdel dev
通过查看系统group文件查看有没有组信息,在文件的最后一样是否有组信息;
cat /etc/group
需求:建议一个文件夹,建立一个组,把文件夹放管理权限添加到新建的组中;
1.mkdir 文件夹名字
2.sudo groupadd 组名
3.cat /etc/group 查看组是否添加成功了;
4.chgrp -R 组名 文件夹名
sudo useradd -m -g dev zq 常见一个zq的用户
sudo passwd zq 给zq这个用户设置密码;
userdel -r zq 删除这个用户;
查看用户信息:
id 用户名
[zq@localhost home]$ id zq
uid=1000(zq) gid=1000(zq) 组=1000(zq),10(wheel)
这个信息是保存在etc/passwd文件中的;
who
查看当前所有的用户登录了系统;
whoami
查看当前登录的用户名;
查看文件的位置;
which python 输出/usr/bin/python
ls -l /usr/bin/python
lrwxrwxrwx. 1 root root 7 11月 16 19:33 /usr/bin/python -> python2
13.1 时间和日期;
1.系统时间
date
2.日期
cal 查看日历,-y 可以查看一年的日历;
13.2 查看磁盘的信息;
df -h 显示磁盘的剩余空间
du -h 目录 查看目录的占用空间大小
其中-h 是以人性化的显示占用大小;
查找文件
find 路径 -name "*.py"
省略路径的话就是当前文件夹下、
find -name "*.txt"
find -name "*1*"
find -name "1*"
相当于windows中的桌面的快捷方式;
软连接中没有-s就是硬的;
在liunx中文件数据和文件名是分开存储的,
硬连接相当于给文件数据有引用了一个名字,删除原来的名字对文件数据不影响;
软连接则是连接到的文件的名字,删除了文件的名字后,就无法访问文件数据了;(删除文件名字,其实数据也已经删除了,因为没有引用指向数据了。系统会将数据源也一并删除掉);
一般不会建立硬连接的;
18.1 打包:
tar -cvf 打包.tar 被打包的文件名,只负责打包,不负责压缩;
例如:tar -cvf 1.tar a.py b.py c.py
解包:tar -xvf 1.tar 默认是当前路径;
解包:tar -xvf 1.tar -c 目标路径
18.2 压缩:
使用gzip来进行压缩,加一个z就可以了
例如:tar -zcvf 1.tar *.py
解包:tar -zxvf 1.tar
解包:tar -zxvf 1.tar -c 目标路径
上传文件:两步走
sudo su
rz -b
下载文件:两步走
sudo su
sz -b 文件名
解决办法:
1、执行命令: yum whatprovides libstdc++.so.6
然后会提示哪个安装包有这个库文件如下:
[root@localhost ~]# yum whatprovides libstdc++.so.6
Loaded plugins: aliases, changelog, downloadonly, fastestmirror, kabi, presto, refresh-packagekit, security, tmprepo, verify,
: versionlock
Loading support for CentOS kernel ABI
Loading mirror speeds from cached hostfile
* base: centos.ustc.edu.cn
* centosplus: centos.ustc.edu.cn
* contrib: centos.ustc.edu.cn
* extras: centos.ustc.edu.cn
* updates: centos.ustc.edu.cn
libstdc++-4.4.7-3.el6.i686 : GNU Standard C++ Library
Repo : base
Matched from:
Other : libstdc++.so.6
2、然后执行:
yum install libstdc++-4.4.7-3.el6.i686
搞定!