linux基本命令
1. APT(Advanced Packing Tool)
ubuntu中功能最强大的命令行软件包管理工具,用于获取、
安装、编译、卸载和查询一些软件包,以及检测软件信号关系。
工作原理:
/etc/apt/sources.list 文件
用来指定ubuntu的软件源服务器的地址的。
修改源:
查找你ubuntu对应版本的软件源服务器的地址列表。
如: ubuntu18.04
网上搜素: ubuntu18.04源
然后再把 /etc/apt/sources.list 的内容替换成你需要的源的地址即可!
例子:
sudo gedit /etc/apt/sources.list
几个常用的命令:
sudo apt-get update
下载更新软件包列表的信息,
如果只指定软件源服务器的地址,那么我们怎么知道,
服务器上有哪些软件? 可以通过 apt-get update这个
命令把服务器上面的最新的软件包列表信息下载到本地!
sudo apt-get install 要安装的软件包的名字
sudo apt-get remove 要卸载的软件包的名字
sudo apt-cache search 根据正则表达式检索软件包
如:
在ubuntu上面安装一个拼音输入法
sudo apt-cache search pinyin 检索本地有哪些拼音输入法的软件包
sudo apt-get install fcitx-googlepinyin
reboot 重启虚拟机
2. vi/vim
vi/vim是linux中最基本、最常用、功能最强大的命令行编辑器。
编辑器(用来写代码)
vim是vi的一个升级版本。
vi/vim有两种工作模式:
命令模式:
键盘所有的输入字符都当作是一个命令。
输入模式:
键盘所有的输入字符都当作是文本的字符。
两种模式之间切换:
命令模式 -> 输入模式:
i/I : insert 插入
i: 进入输入模式后,光标保持不动
I: 进入输入模式后,光标会移动到行首
a/A : append 追加
a: 进入输入模式后,光标往后移动一个字符
A: 进入输入模式后,光标移动到行尾
o/O : open 开路
进入到输入模式后,会新开辟一行
o: 在光标的下面,新开一行
O: 在光标的上面,新开一行
输入模式 -> 命令模式:
ESC
vi 退出命令:
:q
quit 不保存退出(文件内容没有修改)
:q!
quit 不保存退出,强制退出!!!
:w
write 保存文件(但不退出)
:w filename
把内容保存到“filename”指定的文件中去
"另存为"
:wq
write and quit 保存文件并且退出
:x
<=> :wq
快捷方式: 保存文件并且退出
ctrl + z
vi 删除与修改命令
x
删除光标所在字符
dd
delete
删除光标所在那一行
ndd
n表示数字
如: 1dd 2dd 3dd
删除光标及一下的n行
dd 和 ndd 是剪切
r
replace
替换光标所在的字符
r + 替换的单个字符
R
替换光标及后面的多个字符
到底可以替换多少个字符呢? 看大爷的心情!(直到您按ESC退出替换)
vi拷贝与粘贴命令:
dd/ndd 剪切
yy
yield
将当前行的内容拷贝到剪切板上去
nyy 复制n行
p
print
是将剪贴板中的内容粘贴到当前行的后面一行
P
是将剪贴板中的内容粘贴到当前行的前面一行
vi 撤销命令:
u <=> windows ctrl + z
undo 撤销
vi 搜索命令
/要搜索的内容
n
next 找下一个匹配的内容
N
Next 找上一个匹配的内容
vi 显示行号:
:set nu
vi/vim 配置文件:
.vimrc 文件名
~/.vimrc
若是需要修改此配置文件的内容,则必须sudo去打开
此文件!
如:
sudo vim ~/.vimrc
课后练习:
请大家根据自己的喜好,把自己ubuntu下面的
vim的配置文件更改为自己喜欢的风格。
3.文件系统相关命令
文件系统是什么?
文件系统是用来管理文件的一套组织方法或软件系统。
不同的文件系统,一般是有不同的文件格式,以及拥有不同的
管理方式。
文件组成部分:
文件属性 -> inode(i结点,索引结点)
文件名、文件类型、文件大小,修改时间==
inode 是唯一标识一个文件是否存在的!!!
文件内容
Linux文件系统树状结构:
linux下面文件组织方式是以 “根目录 /” 开始的,
“根目录 /”下面可以有其他的目录(文件夹)和文件,
目录下面也还可以有其他的目录,还可以有其他的文件
.......
以这种树的形状组织起来的,称之为树状结构。
绝对路径:
以“根目录 /”开始的路径,称之为绝对路径。
如果是绝对路径,那么你可以忽略当前的工作目录,
也可以找到你要找到的文件夹或文件。
相对路径:
不以“根目录 /”开始的路径,而是以当前的工作目录
开始的路径,称之为相对路径。
相对路径隐含了 到当前工作目录的绝对路径!!!
如: 当前工作目录为 hgfs/
/mnt/hgfs/ ../1.bmp
例子:假设当前的工作目录在 /home/
/home/china/1.c
通过绝对路径找到1.c => /home/china/1.c
通过相对路径找到1.c => china/1.c
当前目录绝对路径 + 目标文件的相对路径 = 目标文件的绝对路径
/home/ + china/1.c = /home/china/1.c
在每个目录都会自动生成两个如下的目录:
. => 目录,当前目录
如: ./1.c 表示当前目录下面的1.c的那个文件
1.c 表示当前目录下面的1.c的那个文件
.. => 目录,上一级目录
如: ../2.c 表示当前目录的上一级目录下面的2.c的那个文件
pwd
print working directory
显示当前的工作目录的绝对路径!
cd
change directory
切换路径
语法:
cd 要切换的路径
“要切换的路径” => 可以是相对路径,
也可以是绝对路径!
如: 假设当前目录是在 /home/
要切换到 /home/china/tftpboot/
绝对路径: cd /home/china/tftpboot/
相对路径: cd ./china/tftpboot/
cd 后面什么也不接
切换到用户的主目录(用户的家目录)下面去!
如:
cd
-> /home/china/
cd -
切换刚刚切换过来的那个目录下面去
ls
list 列举的意思
ls 用来列举一个目录下面所有的文件(包括文件夹)名
语法:
ls [options] 文件或文件名
options: 选项
-a all 列举出所有的文件名的信息,包含隐藏文件
-l 列举出文件的详细信息
文件或文件名:
如果省略,则ls列举当前目录下面的所有文件
----------------------------------------------------------
在linux下面,操作系统会为每一个用户,创建一个主目录,这个主目录
我们称之为用户的家目录(home目录),一般来说,你在家里,拥有一切
权限,so,一个用户在自己的home目录下面有删除、修改、创建等权限。
linux系统一般会为每个可以正常登录的用户,在/home下面创建一个
以用户名命名的目录。
如: china
/home/china/
---------------------------------------------------------
mkdir
make directory
创建一个目录(文件夹)
语法:
mkdir {-p} 要创建的目录名
-p :
parent 父亲,双亲
如果要创建的目录的上面某一级或者是多级路径不存在,
-p表示连同不存在的路径一并创建!
要创建的目录名:
绝对路径
相对路径
rmdir
remove directory
用来删除空目录
rm
删除文件或目录
语法:
rm [options] 目标文件名
目标文件名:既可以是普通文件,也可以是目录文件
options:
-r
recursive 递归
若要删除的对象是一个目录文件,则一定需要-r选项
-f
force 强制
非交互式的删除,不询问用户是否确定删除
如:
rm -rf parent/
cp
copy 拷贝
语法:
cp [options] 源文件 目标文件
源文件: 可以目录文件,也可以普通文件
目标文件 : 可以目录文件,也可以普通文件
options:
-r recursive 递归
-f force 强制
cp dir1 dir2
把目录dir1整体拷贝到目录dir2下面去
cp file1 file2
把文件file1的内容 拷贝到文件file2中去。
用file1的内容,替换掉file2的内容。
cp file1 dir2
把文件file1拷贝到目录dir2下面去。
cp dir1 file2
ERROR
mv
move 移动
语法:
mv 源文件 目标文件
源文件: 可以目录文件,也可以普通文件
目标文件 : 可以目录文件,也可以普通文件
mv file1 dir2
把文件file1移动到目录dir2下面去
mv dir1 dir2
dir2 存在
把目录dir1整体搬迁到目录dir2下面去
dir2 不存在
把目录dir1改名为dir2
mv dir1 file2
ERROR
mv file1 file2
把文件file1中的内容,移动到file2中去
改名
文件压缩和归档
归档文件: 将一组文件或目录保存在一个文件中。
“打包”
压缩文件: 将一组文件或目录压缩到一个文件中去。
tar
语法:
tar [options] tarfile filelist
options:
-x eXtract 释放一个归档文件(解压)
-c Create 创建一个归档文件(压缩)
-v View 显示归档或释放过程中的文件信息
-f File 指定归档文件的名字
-j 由tar生成归档文件,用bzip2压缩
-z 由tar生成归档文件,用gzip压缩
压缩命令:
tar -zcvf xxx.tar.gz(xxx.tgz) filelist
把filelist指定的文件列表中的文件 用(-z gzip)gzip
的压缩算法生成一个压缩文件 => xxx.tar.gz(xxx.tgz)
tar -jcvf xxx.tar.bz2 filelist
把filelist指定的文件列表中的文件 用(-j bzip2)bzip2
的压缩算法生成一个压缩文件 => xxx.tar.bz2
解压命令:
tar -xvf xxx.tar.gz(xxx.tar.bz2) {-C 路径}
{-C 路径} 可以省略,若省略就表示解压当前的目录下面
-C 路径 : 表示把解压后的文件列表,解压到指定的“路径”中去。
chmod
change mode 改变文件权限
文件权限对某个用户或某组用户来说
r: read
w: write
x: eXcute
每个文件都会针对三组不同的用户:
user : 文件所有者用户
group: 文件用户组内的用户,组用户
other: 其他用户
在描述一个文件的权限时候:
rwx rwx rwx
USER GROUP OTHER
ls -l
rw-rw-r--
这个文件, user 可读可写不可执行
group 可读可写不可执行
other 可读不可写不可执行
rwx 也可以看作是一组八进制的数据:
rwx => 111 => 7
rw- => 110 => 6
r-- => 100 => 4
0744 => rwxr--r--
chmod 语法:
(1) chmod 用户+/-rwx 文件名
用户:
u g o
a: all
如:
chmod u+x 1.txt
给文件1.txt的用户(user)加上一个可执行的权限(x)
chmod g-w 1.txt
给文件1.txt的组用户(group)减去一个可写的权限(w)
chmod go+r 1.txt
给文件1.txt的其他用户(other)和组用户(group)加上一个可读的权限(r)
chmod a+x 1.txt
chmod +x 1.txt
a:all 可以省略
给文件1.txt的所有用户(u,g,o)加上一个可执行的权限(x)
(2) chmod 权限的八进制描述 文件名
如:
chmod 666 1.txt
=> 110 110 110
=> rw-rw-rw-
touch
touch 用于创建一个新普通文件
如:
touch 1.c 1.txt 1.cpp
file 接文件名
用来判定一个文件的类型
在linux下面,文件扩展名 不等于 文件类型
链接文件:
文件属性 -> inode ,唯一标识一个文件存在与否
文件内容
硬链接:
ln file link_name
为文件file创建一个硬链接(link_name)
硬链接实际上为文件file创建了一个新的inode
软连接(符号链接):
software
ln -s file link_name
为一个文件file创建一个软链接(有点类似于windows下面的“快捷方式”)
软连接实际上并没有为file创建一个新的inode,
软链接指向目标文件,软连接文件本身保存的内容就是目标文件的路径名!
如何判断两个文件的内容是否一致?
通常做法:把两个文件的内容一一对比。
但是这种方法很不科学!!
软件 compare
"文件的DNA" : DNA是文件内容的ID,如果两个文件的DNA一致,
则说明这两个文件的内容是一致。
文件的DNA怎么获取或计算呢?
各家有家的算法。
如: md5 在论坛上,软件发布时经常使用。
md5sum 计算一个文件的MD5值,如果两个文件的md5sum是一致,
认为这两个文件的内容一致。
md5sum 文件名
stat 文件名
查看文件属性(inode)
4.基本系统命令
man -> "程序员手册"
manual 手册/文档/使用说明
linux会为每个命令或系统函数或者标准库函数,写一个文档,
不同的文档,有不同的分类。
1
2
3
.....
而有时候,有同名的函数或命令。
man用来查询一个指定的名字对应相关的手册!
语法:
man -f 名字
把“名字”相关的手册分类的信息列举出来
man 手册页 名字
把相应的“手册页”关于“名字”的文档调出来。
man 名字
省略掉“手册页”,系统会:
先从 分类1去查找 “名字”的文档,如果找到,则调出,如果没有找到
再从 分类2去查找 “名字”的文档,如果找到,则调出,如果没有找到
......
shutdown
关机的命令
shutdown +n n分钟之后自动关机
shutdown -c 取消设置的定时关机
shutdown -r 重启
.....
reboot
系统软复位,重启
su username
切换到username指定的用户
root 用户
root用户在linux/unix下面是拥有至高无上权限的用户。
“超级管理员用户”
ubuntu装机时,一般只会让你设置一个管理员的用户,
如:
china
当你以管理员的身份进入系统后
第一次切换到root用户
sudo -s (不需要密码)
passwd username
为username用户设置一个新密码
如果username省略,则为当前用户设置密码
clear
清屏 <=> ctrl + l
5.用户管理命令
/etc/passwd
用来保存用户的信息
china:x:1000:1000:ubuntu,,,:/home/china:/bin/bash
用户名:口令:用户ID(uid):用户组ID(gid):登录名:用户主目录:用户shell命令解析器
/etc/group
用来保存用户组的信息
root:x:0:syslog,china
组名:加密口令:组ID(gid):成员列表
useradd username 增加用户
passwd username 给用户改密码
userdel username 删除用户
groupdel groupname 删除组
groupadd groupname 增加组
addgroup 用户名 groupname 将用户添加到某一个组
6.进程管理命令
ps
process status
列出系统中进程的信息
如:
ps -ef
e: everyone
f: full
kill
杀掉一个进程
用法:
kill -9 pid(进程id号)
杀死pid指定的那个进程
top
动态显示或列出占用系统资源最多的进程