
本文共 15872 字,大约阅读时间需要 52 分钟。
文章目录
声明
此次笔记仅为了复习一下linux基本常用命令,大佬请忽略这篇博客
常用linux命令的基本使用
命令 | 作用 | 对应英文 |
---|---|---|
ls | 查看当前文件夹下的内容 | list |
pwd | 查看当前所在文件夹 | print work directory |
cd [目录名] | 切换文件夹 | change directory |
touch [文件名] | 如果文件不存在,新建文件 | touch |
mkdir [目录名] | 创建目录 | make directory |
rm [文件名] | 删除指定的文件名 | remove |
clear | 清屏 | clear |
小技巧:
ctrl + shift + = 放大终端窗口的字体显示
ctrl + - 缩小终端窗口的字体显示
–help
command --help
man
man command
使用man时的操作键:
操作键 | 功能 |
---|---|
空格键 | 显示手册页的下一屏 |
Enter键 | 一次滚动手册页的下一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
/word | 搜索word字符串 |
终端实用技巧
自动补全
在敲出文件/目录/命令 的前几个字母之后,按下tab键
- 如果输出的没有歧义,系统会自动补全
- 如果还存在其它 文件/目录/命令,再按一下tab键,系统会提示可能存在的命令
曾经使用过的命令
- 按 ↑/↓光标键可以在曾经使用过的命令之间来回切换
- 如果想要退出选择,并且不想执行当前选中的命令,可以按
ctrl + c
linux下文件和目录的特点:
- linux文件或者目录名称最长可以有256个字符
- 以
.
开头的文件为隐藏文件,需要用-a
参数才能显示 .
代表当前目录..
代表上一级目录
ls
常用选项:
参数 | 含义 |
---|---|
-a | 显示指定目录下所所有子目录与文件,包括隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合-l 以人性化显示文件大小 |
这里的参数可以合在一起写,也就是说
ls -h -l
和
ls -hl
表达意思一样
计算机中文件大小的表示方式(科普)
单位 | 英文 | 含义 |
---|---|---|
字节 | B(Byte) | 在计算机中作为一个数字单元,一般为8位二进制数 |
千 | K(Kibibyte) | 1KB=1024B,千字节(1024=210) |
兆 | M(Mebibyte) | 1MB=1024KB,百万字节 |
千兆 | G(Gigabyte) | 1GB=1024MB,十亿字节,千兆字节 |
太 | T(Terabyte) | 1TB=1024GB,万亿字节,太字节 |
拍 | P(Petabyte) | 1PB=1024TB,千万亿字节,拍字节 |
艾 | E(Exabyte) | 1EB=1024PB,百亿亿字节,艾字节 |
泽 | Z(Zettabyte) | 1ZB=1024EB,十万亿亿字节,泽字节 |
尧 | Y(Yottabyte) | 1YB=1024ZB,一亿亿亿字节,尧字节 |
ls通配符的使用
通配符 | 含义 |
---|---|
* | 代表任意个数个字符 |
? | 代表任意一个字符,至少一个 |
[ ] | 表示可以匹配字符组中的任意一个 |
[abc] | 匹配abc中的任意一个 |
[a-f] | 匹配从a到f范围内的任意一个 |
cd
注意:linux所有的目录和文件名都是大小写敏感的
命令 | 含义 |
---|---|
cd | 切换到当前用户的主目录(/home/用户目录) |
cd ~ | 切换到当前用户的主目录 (/home/用户目录) |
cd . | 保持在当前目录不变 |
cd .. | 切换到上级目录 |
cd - | 可以在最近两次工作目录来回切换 |
注意:~表示家目录(/home/用户目录)
touch
创建文件或修改文件时间
如果文件不存在,可以创建一个空白文件
如果文件存在,可以修改文件的末次修改日期
mkdir
创建一个新的目录
选项 | 含义 |
---|---|
-p | 可以递归创建目录 |
新建目录的名称,不能与当前目录中已有的目录或文件同名
(linux同一目录下,文件名和目录名不能相同)
rm
删除文件或目录
使用rm命令要小心,因为文件删除后不能恢复
选项 | 含义 |
---|---|
-f | 强制删除,忽略不存在的文件,无需提示 |
-r | 递归地删除目录下的内容,删除文件夹时必须加此参数 |
rm可以和通配符使用
rm *1.txtem -r *
切记,不要在根目录下面玩这个,否则系统就没了
rm -rf *
拷贝和移动文件
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | tree[目录名] | tree | 以树状图列出文件目录结构 |
02 | cp 源文件 目标文件 | copy | 复制文件或者目录 |
03 | mv 源文件 目标文件 | move | 移动文件或者目录/文件或者目录重名名 |
tree
tree命令可以以树状图列出文件目录结构
选项 | 含义 |
---|---|
-d | 只显示目录 |
cp
cp命令的功能是将给出的文件或目录 复制到另一个文件或目录中,相当于dos下的copy 命令
选项 | 含义 |
---|---|
-f | 已经存在的目标文件直接覆盖,不会提示 |
-i | 覆盖文件前提示 |
-r | 若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目录文件必须为一个目录名 |
cp 源文件路径 复制文件路径
cp 123.txt ./helloworld.txt
源文件名是123.txt,拷贝后的文件名是helloworld.txt
cp ../123.txt .
源文件名是123.txt,拷贝后的文件名是123.txt(如果文件名不想发生变化,那么只需要指定目标目录即可),这个文件拷贝是在当前目录下
cp -i ../123.txt .
接下来如果要覆盖的话,只需输入y,反之n
如果拷贝一个文件夹的话,那么需要带一个-r 的选项,这个选项和rm删除一个文件夹时是一样的
cp -r ../yuancheng .
mv
mv 命令可以用来移动文件或目录,也可以给文件或目录重命名
选项 | 含义 |
---|---|
-i | 覆盖文件前提示 |
mv ../yuancheng/01.re .
利用mv修改文件名
mv 01.re 02.re
查看文件内容
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | cat 文件名 | concatenate | 查看文件内容,创建文件,文件合并,追加文件内容等功能 |
02 | more 文件名 | more | 分屏显示文件内容 |
03 | grep 搜索文本文件名 | grep | 搜索文本文件内容 |
cat
cat命令可以用来查看文件内容,创建文件,文件合并,追加文件内容等功能
cat会一次显示所有的内容,适合查看内容较少的文本文件
选项 | 含义 |
---|---|
-b | 对非空输出行编号 |
-n | 对输出的所有行编号 |
linux中还有一个nl的命令和cat -b的效果等价
more
more命令可以用于分屏显示文件内容,每次只显示一页内容
适合于查看内容较多的文本文件
使用more的操作键
操作键 | 功能 |
---|---|
空格键 | 显示手册的下一屏 |
Enter键 | 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
/word | 搜索word字符 |
grep
linux系统中grep命令是一种强大的文本搜索工具
grep允许对文本文件进行模式查找,所谓模式查找,又被称为正则表达式,
选项 | 含义 |
---|---|
-n | 显示匹配行及行号 |
-v | 显示不包括匹配文本的所有行(相当于求反) |
-i | 忽略大小写 |
常用的两种模式查找
参数 | 含义 |
---|---|
^a | 行首,搜寻以a 开头的行 |
ke$ | 行尾,搜寻以ke结束的行 |
grep main 123.txt
grep -n main 123.txt
显示所有不包含main 的行
grep -v main 123.txt
grep -vn main 123.txt
grep -n ^i 123.txt
grep -n d$ 123.txt
grep -n l$ 123.txt
其他
echo 文字内容
- echo会在终端中显示参数指定的文字,通常会和重定向联合使用
重定向>和>>
- linux允许将命令执行结果重定向到一个文件
- 将本应显示在终端上的内容 输出/追加 到指定文件中
其中
- >表示输出,会覆盖文件原有的内容
- >>表示追加,会将内容追加到已有文件的末尾
管道|
- linux允许将一个命令的输出,可以通过管道作为另一个命令的输入
- 可以理解为生活中的管子,管子的一头塞东西进去,另一头取出来,这里|的左右分为两端,左端塞东西(读),右端取东西(写)
常用的管道命令有:
- more:分屏显示内容
- grep:在命令执行结果的基础上查询指定的文本
echo "hello world"touch a.txtcat a
ak666@ubuntu:~$ ls -lh > aak666@ubuntu:~$ cat atotal 92K-rw-rw-r-- 1 ak666 ak666 494 Mar 26 01:02 123.txt-rw-rw-r-- 1 ak666 ak666 0 Mar 26 01:22 a-rw-rw-r-- 1 ak666 ak666 0 Mar 26 01:20 a.txtdrwxr-xr-x 3 ak666 ak666 4.0K Mar 25 23:40 Desktopdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Documentsdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Downloads-rwxrw-rw- 1 ak666 ak666 37K Dec 13 2018 easyCpp-rw-r--r-- 1 ak666 ak666 8.8K Oct 10 07:09 examples.desktopdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Musicdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Picturesdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Publicdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Templatesdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Videosdrwxr-xr-x 9 ak666 ak666 4.0K Oct 1 2019 vmware-tools-distribak666@ubuntu:~$ ls -lh >>aak666@ubuntu:~$ cat atotal 92K-rw-rw-r-- 1 ak666 ak666 494 Mar 26 01:02 123.txt-rw-rw-r-- 1 ak666 ak666 0 Mar 26 01:22 a-rw-rw-r-- 1 ak666 ak666 0 Mar 26 01:20 a.txtdrwxr-xr-x 3 ak666 ak666 4.0K Mar 25 23:40 Desktopdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Documentsdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Downloads-rwxrw-rw- 1 ak666 ak666 37K Dec 13 2018 easyCpp-rw-r--r-- 1 ak666 ak666 8.8K Oct 10 07:09 examples.desktopdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Musicdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Picturesdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Publicdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Templatesdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Videosdrwxr-xr-x 9 ak666 ak666 4.0K Oct 1 2019 vmware-tools-distribtotal 96K-rw-rw-r-- 1 ak666 ak666 494 Mar 26 01:02 123.txt-rw-rw-r-- 1 ak666 ak666 741 Mar 26 01:22 a-rw-rw-r-- 1 ak666 ak666 0 Mar 26 01:20 a.txtdrwxr-xr-x 3 ak666 ak666 4.0K Mar 25 23:40 Desktopdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Documentsdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Downloads-rwxrw-rw- 1 ak666 ak666 37K Dec 13 2018 easyCpp-rw-r--r-- 1 ak666 ak666 8.8K Oct 10 07:09 examples.desktopdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Musicdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Picturesdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Publicdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Templatesdrwxr-xr-x 2 ak666 ak666 4.0K Oct 10 07:31 Videosdrwxr-xr-x 9 ak666 ak666 4.0K Oct 1 2019 vmware-tools-distrib
注意
echo命令可以用来创建文件,并且在创建文件时,就可以指定文件的内容;而touch只能创建一个空文件
ak666@ubuntu:~$ rm aak666@ubuntu:~$ echo hello > aak666@ubuntu:~$ cat ahello
ls -lha ~
ls -lha ~|more
ls -lha ~|grep do
远程管理常用命令
关机重启
shutdown
shutdown命令可以安全关闭或者重新启动系统
选项 | 含义 |
---|---|
-r | 重新启动 |
重新启动操作系统,其中now表示现在:
shutdown -r now
立刻关机,其中now表示现在:
shutdown now
系统在今天的20:25会关机
shutdown 20:25
系统再过十分钟后自动关机
shutdown +10
取消之前的关机计划
shutdown -c
注意:
- 不指定选项和参数时,默认表示1分钟之后关闭电脑
- 远程维护服务器时,最好不要关闭系统,而应该重新启动系统
查看或配置网卡信息
ipconfigping
127.0.0.1是本地回环/环回地址,一般用来测试网卡是否正常工作的
远程登录或复制文件
sshscp
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | ssh 用户@ip | secure shell | 关机/重新启动 |
02 | scp 用户名@ip:文件名或路径 用户名@ip:文件名或路径 | secure copy | 远程复制文件 |
SSH基础(重点)
在linux 中SSH是非常常用的工具,通过SSH客户端我们可以直接连接到运行SSH服务器的远程机器上
- SSH客户端是一种使用Secure Shell(SSH)协议连接到远程计算机的软件程序
- SSH是目前可靠,专为远程登录会话和其他网络服务提供安全性的协议
- 利用SSH协议可以有效防止远程管理过程中的信息泄露
- 通过SHH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗
- SSH的另一项优点是传输的数据可以是经过压缩的,所以可以加快传输的速度
Ubuntu和Mac的操作系统不管是在客户端还是在服务器上,都是默认安装的,只有在Windows操作系统中需要单独安装SSH软件
域名和端口号
域名:
- 由一串用点分隔的名字组成,例如:www.baidu.com
- 是ip地址的别名,方便用户记忆
端口号
- ip地址:通过ip地址找到网络上的计算机
- 端口号:通过端口号可以找到计算机上运行的应用程序
- SSH服务器的默认端口号是22,如果是默认端口,在连接的时候,可以省略
常见服务端口号列表:
服务 | 端口号 |
---|---|
SSH服务器 | 22 |
Web服务器 | 80 |
HTTPS | 443 |
FTP服务器 | 21 |
SSH客户端的简单使用
ssh [-p port] user@remote
- user是在远程机器上的用户名,如果不指定的话默认为当前用户
- remote是远程机器的地址,可以是ip/域名,或者是后面会提到的别名
- port是SSH Server监听的端口,如果不指定,就为默认值22
提示:
- 使用exit退出当前用户的登录
注意:
- ssh这个终端命令只能在linux或者unix系统下使用
- 如果在Windows系统中,可以安装PuTTY或者XShell客户端软件即可
提示:
- 在工作中,SSH服务器的端口号很可能不是22,如果遇到这种情况就需要使用-p选项,指定正确的端口号,否则无法正常连接到服务器
SSH连接实际操作过程
SCP(掌握)
- scp就是secure copy,在linux下用来远程拷贝文件的命令
- 它的地址格式与ssh基本相同,需要注意的是,在指定端口时用的是大写的-P而不是小写的
把本地当前目录下的01.py文件 复制到远程 家目录下的 Desktop/01.py
注意:‘:’后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp -P port 01.py user@remote:Desktop/01.py
把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下 的 01.py
scp -P port user@remote:Desktop/01.py 01.py
加上-r选项可以传送文件夹
把当前目录下的demo文件夹复制到 远程 家目录 下的Desktop
scp -r demo user@remote:Desktop
把远程 家目录下的Desktop 复制到 当前目录下的demo文件夹
scp -r user@remote:Desktop demo
选项 | 含义 |
---|---|
-r | 若给出的源文件是目录文件,则scp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 |
-P | 若远程SSH服务器端口号不是22,则需要使用大写字母-P选项指定端口 |
注意:
SSH和SCP的区别就是端口号参数这里,前者是-p,后者是-P
注意
- scp这个终端命令只能在linux或者unix系统下使用
- 如果在Windows系统中,可以安装PuTTY,使用pscp命令行工具或者安装FileZilla使用FTP进行文件传输
FileZilla
官方网站:
FileZilla
在传输文件时,使用的是FTP服务而不是SSH服务,因此端口号应该设置为21
配置别名:
每次都输入 ssh -p port user@remote
,时间久了会麻烦,特别是当user,remote和port都得输入,而且还不好记忆,而配置别名可以让我们近一步偷懒,譬如用:ssh 别名 代替上面的一长串,那么就在~/.ssh/config (config文件需要自己创建)里面追加以下内容:
Host 别名 HostName ip地址 USer 用户名 Port 端口(一般为22)
保存之后,既可以用ssh 别名实现远程登录,scp同样可以使用
scp实现文件夹拷贝
scp -r 用户端所需要拷贝的文件夹 别名:服务端文件存放地址
举个例子
scp -r ~/Desktop myserver:Desktop/demo
用户端Desktop文件夹拷贝到远程服务器的demo文件夹下
ls -l扩展
ls -l可以查看文件夹下面文件的详细信息,从左到右依次是:
- 权限,第一个字符如果是d表示目录,紧接着就是权限(拥有者权限,组权限,其它用户权限,RWX)
- 硬链接数,通俗地讲,就是有多少种方式可以访问到当前目录/文件(文件的硬链接数一般是1,而目录的硬链接数取决于它有多少个子目录)
- 拥有者,家目录下 文件/目录的拥有者通常都是当前用户
- 组,linux中,很多时候,会出现组名和用户名相同的情况
- 大小
- 时间
- 名称
文件权限示例:
目录 | 拥有者权限 | 拥有者权限 | 拥有者权限 | 组权限 | 组权限 | 组权限 | 其它用户权限 | 其它用户权限 | 其它用户权限 |
---|---|---|---|---|---|---|---|---|---|
- | r | w | x | r | w | x | r | w | x |
文件权限示例:
目录 | 拥有者权限 | 拥有者权限 | 拥有者权限 | 组权限 | 组权限 | 组权限 | 其它用户权限 | 其它用户权限 | 其它用户权限 |
---|---|---|---|---|---|---|---|---|---|
d | r | w | x | r | w | x | r | w | x |
注意:如果要有在目录下面执行终端命令,就必须要有可执行权限;对于目录而言,可读权限就是阅读目录内容,可写权限,就是修改目录内容
超级用户
- linux系统中的root账号通常用于系统的维护和管理,对操作系统的所有资源具有所有访问权限
- 在大多数版本的linux中,都不推荐直接使用root账号登录系统
- 在linux安装过程中,系统会自动创建一个用户账号,而这个默认的用户就称为“标准用户”
sudo
- su是substitute user 的缩写,表示使用另一个用户的身份
- sudo用来以其它身份来执行命令,预设的身份为root
- 用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码
组管理
提示:创建组/删除组的终端命令都需要通过sudo执行
命令 | 作用 |
---|---|
groupadd 组名 | 添加组 |
groupdel 组名 | 删除组 |
cat /etc/group | 确认组信息 |
chgrp 组名 文件/目录名 | 修改文件/目录的所属组 |
提示:
- 组信息保存在/etc/group中
- /etc目录是用来专门保存系统配置信息的目录
- 在实际应用中,可以预先针对组设置好权限,然后将不同的用户添加到对应的组中,从而不用依次为每一个用户设置权限
用户管理 终端命令
创建用户/设置密码/删除用户
命令 | 作用 | 说明 |
---|---|---|
useradd -m -g 组新建用户名 | 添加用户名 | -m自动建立用户家目录;-g指定用户所在的组,否则会建立一个和同名的组 |
passwd 用户名 | 设置用户密码 | 如果是普通用户,直接用passwd可以修改自己的账户密码 |
userdel -r 用户名 | 删除用户 | -r 选项会自动删除用户家目录 |
cat /etc/passwd/grep 用户名 | 确认用户信息 | 新建用户后,用户信息会保存在/etc/passwd文件中 |
- 创建用户时,如果忘记添加-m选项指定新用户的家目录------最简单的方法就是删除用户,重新创建
- 创建用户时,默认会创建一个和用户组同名的组名
- 用户信息保存在/etc/passwd文件中
useradd
创建biaobiao用户并且自动建立用户家目录:
查看家目录:
设置biaobiao密码:
远程登录biaobiao试试:
userdel
biaobiao@ubuntu:/$ sudo userdel -r biao[sudo] password for biaobiao: userdel: biao mail spool (/var/mail/biao) not foundbiaobiao@ubuntu:/$ ls /homeak666 biaobiao
查看用户信息
命令 | 用户 |
---|---|
id [用户名] | 查看用户UID和GID信息 |
who | 查看当前所有登录的用户列表 |
whoami | 查看当前登录用户的账户名 |
passwd文件
/etc/passwd文件存放的是用户的信息,由6个分号组成的7个信息,分别是
- 用户名
- 密码(x,表示加密的密码)
- UID(用户标识)
- GID(组标识)
- 用户全名或本地账号
- 家目录
- 登录使用的Shell,就是登录命令之后,使用的终端命令,Ubuntu默认是dash(注意是dash,并非bash)
usermod
- usermod可以用来设置用户的主组/附加组和登录shell,命令格式如下:
- 主组:通常在新建用户时,在etc/passwd 的第4列GID对应的组
- 附加组:在etc/group中最后一列表示该组的用户列表,用于指定用户的附加权限
提示:设置了用户的附加组之后,需要重新启动才能生效
(注意:主组是新建用户时指定的,新建用户后很少改变它的主组)
修改用户的主组(passwd中的GID):usermod -g 组 用户名修改用户的附加组:usermod -G 组 用户名修改用户登录 Shell:usermod -s /bin/bash
注意:默认使用useradd添加的用户是没有权限使用sudo以root执行命令的,可以使用以下命令,将用户添加到sudo附加组中:
新创建的用户,对比下方而言并没有其它附加组
usermod -G sudo 附加组
验证:
然后登录后,再次尝试sudo权限命令
把dash改为bash
如下,这就是biaobiao
用户的dash
界面,
更改为bash之后
sudo usermod -s /bin/bash biaobiao
然后重新连接之后:
变得和Ubuntu
那里的一模一样
which(重要)
提示:
- /etc/passwd 是用于保存用户信息的文件
- /usr/bin/passwd是用于修改用户密码的程序
ls -l /usr/bin/passwd
这里的拥有者权限有S位,看成x即可,也就是可执行(可读可写)
-l /etc/passwd
这里的拥有者权限不可执行(可读可写,也就是为了保存用户信息的)
which命令可以查看执行命令所在位置,如:
$ls -l /usr/bin/passwd-rwsr-xr-x 1 root root 54256 Mar 26 2019 /usr/bin/passwdak666@ubuntu / Sat Mar 27 07:18 forstart$ls -l /etc/passwd-rw-r--r-- 1 root root 2835 Mar 27 06:42 /etc/passwdak666@ubuntu / Sat Mar 27 07:20 forstart$which ls/bin/lsak666@ubuntu / Sat Mar 27 07:25 forstart$ls -l /bin/ls-rwxr-xr-x 1 root root 126584 Mar 2 2017 /bin/lsak666@ubuntu / Sat Mar 27 07:25 forstart$which useradd/usr/sbin/useraddak666@ubuntu / Sat Mar 27 07:25 forstart$ls -l /usr/sbin/useradd-rwxr-xr-x 1 root root 121568 Mar 26 2019 /usr/sbin/useraddak666@ubuntu / Sat Mar 27 07:25 forstart$which passwd/usr/bin/passwdak666@ubuntu / Sat Mar 27 07:26 forstart$ls -l /usr/bin/passwd-rwsr-xr-x 1 root root 54256 Mar 26 2019 /usr/bin/passwdak666@ubuntu / Sat Mar 27 07:26 forstart
bin和sbin:
- 在linux中,绝大多数可执行文件都是保存在/bin,/sbin,/usr/bin,/usr/sbin
/bin
(binary)是二进制执行文件目录,主要用于具体应用/sbin
(system binary)是系统管理员专用的二进制代码存放目录,主要用于系统管理/usr/bin
(user commands for applications)后期安装的一些软件/usr/sbin
(super user commands for applications)超级用户的一些管理程序
注意:
- cd这个终端命令是内置在系统内核中的,没有独立的文件,因此用which无法找到cd命令的位置
切换用户
命令 | 作用 | 说明 |
---|---|---|
su -用户名 | 切换用户,并且切换目录 | 可以切换到用户家目录,否则位置保持不变 |
exit | 退出当前登录账户 |
- su不接用户名,可以切换到root,但是不推荐使用,因为不安全
- exit退出,返回之前用户状态;如果是第一个用户的话,那么就会直接退出Shell(如下图:)
-号
-的作用证明:(注意这里的- 和用户名之间,需要有空格)
没有-号
修改文件权限
命令 | 作用 |
---|---|
chown | 修改拥有者 |
chgrp | 修改组 |
chomd | 修改权限 |
命令格式:
修改文件|目录的拥有者
chown 用户名 文件名|目录名
递归修改文件|目录的组
chgrp -R 组名 文件名|目录名
递归修改文件权限
chomd -R 755 文件名|目录名
chomd 在设置权限时,可以简单地使用三个数字分别对应 拥有者/组和其他用户的权限
(以下命令)直接修改文件|目录的 读|写|执行 权限,但是不能精确到拥有者|组|其他:
chomd +/-rwx 文件名|目录名
系统信息相关命令
时间和日期
命令 | 作用 |
---|---|
date | 查看系统时间 |
cal | calendar查看日历,-y选项可以查看一年的日历 |
磁盘命令
命令 | 作用 |
---|---|
df -h | disk free 显示磁盘剩余空间 |
du -h [目录] | disk usage 显示目录下的文件大小 |
du
命令
显示当前目录下的文件大小,最后一个是当前目录下的所有子目录以及文件大小总和
选项说明
参数 | 含义 |
---|---|
-h | 以人性化的方式显示文件大小 |
进程信息
所谓进程,通俗地说就是当前正在执行的一个程序
命令 | 作用 |
---|---|
ps aux | process status 查看进程的详细状况 |
top | 动态显示运行中的进程并且排序 |
kill [-9]进程代号 | 终止指定代号的进程,-9表示强行终止 |
- ps默认只会显示当前用户通过终端启动的应用程序
ps
ps a
ps au
top
ps选项说明功能
选项 | 含义 |
---|---|
a | 显示终端上的所有进程,包括其他用户的进程 |
u | 显示进程的详细状态 |
x | 显示没有控制终端的进程 |
提示:使用kill命令时,最好只终止由当前用户开启的进程,而不要终止root身份开启的进程,否则可能导致程序崩溃
- 要退出top可以直接输入q
其它命令
查看文件
find命令功能非常强大,通常用来在特定的目录下 搜索符合条件的文件
命令 | 功能 |
---|---|
find [路径] -name “*.py” | 查找指定路径下扩展名是.py的文件,包括子目录 |
- 如果省略路径,则在当前目录下查找
- 之前学习的通配符,在使用find 命令时可以同时使用
1.搜索桌面目录下,文件名包含1的文件
find -name "*1*"
2.搜索桌面目录下,文件名包含.txt的文件
find -name "*.txt"
3.搜索桌面目录下,以数字1开头的文件
find -name "1*"
软链接
命令 | 作用 |
---|---|
ln -s 被链接的源文件的链接文件 | 监理文件的软链接,用通俗的方式讲类似Windows下的快捷方式 |
注意:
- 没有-s选项建立的是一个硬链接文件
- 两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接
- 源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能正常使用
打包和压缩
打包压缩是日常工作中备份文件的一种方式
在不同操作系统中,常用的打包压缩方式是不同的:
- Windows常用rar
- Mac常用zip
- Linux常用tar.gz
打包/解包
tar是linux最常用的备份工具,此命令可以把一系列文件打包到一个大文件中,也可以把一个打包的大文件恢复成一系列文件
tar 的命令格式如下:
- 打包文件
tar -cvf 打包文件.tar 被打包的文件/路径
- 解包文件
tar -xvf 打包文件.tar
- tar选项说明
选项 | 说明 |
---|---|
c | 生成档案文件,创建打包文件 |
x | 解开档案文件 |
v | 列出归档解档的详细过程,显示进度 |
f | 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后 |
注意:f选项必须放在后面,其它选项顺序可以随意
tar -cvf py.tar 123.py 456.py 789.py
ak666@ubuntu /home/ak666/Desktop Sat Mar 27 20:47 forstart$touch 123.pyak666@ubuntu /home/ak666/Desktop Sat Mar 27 20:47 forstart$touch 456.pyak666@ubuntu /home/ak666/Desktop Sat Mar 27 20:48 forstart$touch 789.pyak666@ubuntu /home/ak666/Desktop Sat Mar 27 20:48 forstart$tar -cvf py.tar 123.py 456.py 789.py123.py456.py789.py
$mv py.tar /home/ak666/Desktop/tarak666@ubuntu /home/ak666/Desktop Sat Mar 27 20:52 forstart$cd tarak666@ubuntu /home/ak666/Desktop/tar Sat Mar 27 20:52 forstart$tar -xvf py.tar123.py456.py789.py
压缩/解压缩
gzip
- tar与gzip命令结合可以使用实现文件 打包和压缩
- tar只负责打包文件,但不压缩
- 用gzip压缩tar打包后的问价你,其扩展名一般用xxx.tar.gz
在linux中,最常见的压缩文件格式就是xxx.tar.gz - 在tar命令中有一个选项-z可以调用gzip,从而可以方便实现压缩和解压缩的功能
- 命令格式如下:
压缩文件:tar -zxvf 打包文件.tar.gz 被压缩的文件/路径解压缩文件tar -zxvf 打包文件.tar.gz解压缩到指定路径tar -zxvf 打包文件.tar.gz -C 目标路径
选项 | 含义 |
---|---|
-C | 解压缩到指定目录,注意:要解压缩的目录必须存在 |
ak666@ubuntu /home/ak666/Desktop Sat Mar 27 21:09 forstart$tar -zcvf py.tar.gz *.py123.py456.py789.pyak666@ubuntu /home/ak666/Desktop Sat Mar 27 21:09 forstart$tar -cvf py.tar *.py123.py456.py789.pyak666@ubuntu /home/ak666/Desktop Sat Mar 27 21:10 forstart$ls -ltotal 16-rw-rw-r-- 1 ak666 ak666 0 Mar 27 21:09 123.py-rw-rw-r-- 1 ak666 ak666 0 Mar 27 21:09 456.py-rw-rw-r-- 1 ak666 ak666 0 Mar 27 21:09 789.py-rw-rw-r-- 1 ak666 ak666 10240 Mar 27 21:10 py.tar-rw-rw-r-- 1 ak666 ak666 139 Mar 27 21:09 py.tar.gz
打包且压缩:
tar -zcvf py.tar.gz *.py
打包:
tar -cvf py.tar *.py
bzip2(two)
- tar与bzip2命令结合可以使用实现文件 打包和压缩(用法和gzip一样)
- tar只负责打包文件,但不压缩
- 用bzip2 压缩tar打包后的文件,其扩展名一般用xxx.tar.bz2
- 在tar命令中有一个选项-j可以调用
bzip2
,从而可以方便的实现压缩和解压缩的功能 - 命令格式如下:
压缩文件:tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径……解压缩文件tar -jxvf 打包文件.tar.bz2
$tar -jcvf bz2.tar.bz2 *py123.py456.py789.pyak666@ubuntu /home/ak666/Desktop Sat Mar 27 21:18 forstart$ls -ltotal 20-rw-rw-r-- 1 ak666 ak666 0 Mar 27 21:09 123.py-rw-rw-r-- 1 ak666 ak666 0 Mar 27 21:09 456.py-rw-rw-r-- 1 ak666 ak666 0 Mar 27 21:09 789.py-rw-rw-r-- 1 ak666 ak666 145 Mar 27 21:18 bz2.tar.bz2-rw-rw-r-- 1 ak666 ak666 10240 Mar 27 21:10 py.tar-rw-rw-r-- 1 ak666 ak666 139 Mar 27 21:09 py.tar.gz
软件安装
通过apt安装/卸载软件
- apt是Advanced Packageing Tool, 是linux下的一款安装包管理工具
- 可以在终端中方便的 安装/卸载/更新软件包
安装软件sudo apt install 软件包卸载软件sudo apt remove 软件包更新已安装的包sudo apt upgrade
配置软件源
- 如果希望在Ubuntu中安装软件,更加快速,可以通过设置镜像源,选择一个访问网速更快的服务器,来提供软件下载/安装服务
- 提示:更换服务器之后,需要一个相对比较长时间的更新过程,需要耐心等待。更新完成后,再安装软件都会从新设置的服务器下载软件了
所谓镜像源,就是所有服务器的内容是相同的(镜像),但是根据所在位置不同,国内服务器通常速度会更快一些
发表评论
最新留言
关于作者
