ctrl +alt +t 打开新终端
sudo shutdown -h now 关机
-r +分钟数 重启
vi:
输入模式 i a
底行模式
命令模式
视图模式:v 进入视图模式
命令:
dd 剪切
yy 复制
p/P 粘贴
r: 修改光标上的字符
R: 修改后边的字符,直到命令结束
<b> 移动到当前单词的开始
<e> 移动到当前单词的结尾
db: 删除单词
dw: 删除单词
debain: deb
redhat: rpm
deb包的组成: 软件包名_版本号_体系架构.deb
deb包的管理机制:
1、本地管理(无法解决依赖关系) 需要sudo dpkg 命令
dpkg -i <package.deb> 安装一个在本地文件系统上存在的Debian软件包
dpkg -L <package> 列出安装的软件包清单
dpkg -r <package> 移除一个已经安装的软件包
dpkg -P <package> 移除已安装软件包及配置文件
dpkg -s <package> 显出软件包的安装状态(是否已经安装)
2、在线管理(可以解决软件包之间的依赖关系)
apt-get
apt-cache
安装包的镜象站点 /etc/apt/sources.list
本地软件包索引: /var/lib/apt/lists
sudo apt-get update 用来更新本地索引, 即更新 /var/lib/apt/lists
sudo apt-get install xxxx(软件包名, 不是全称) 安装软件包
sudo apt-get remove --purge xxx 彻底卸载软件包
安装包的自动下载目录: /var/cache/apt/archives/
sudo apt-get clean/autoclean 删除自动下载目录下的deb包
sudo apt-get --reinstall install xxxx 在不卸载的时,重新进行安装。
sudo apt-get source xxx 就是下载xxx的源码到当前目录下
sudo apt-get upgrade 升级软件包
sudo apt-cache
sudo apt-cache policy xxx 查看已经安装的软件包的状态
sudo apt-cache show xxx 列出软件包的详细信息
sudo apt-cache showpkg xxx
sudo apt-cache depends xxx 找到xxx所依赖的软件包
sudo apt-cache rdepends xxx 找到依赖于 xxxx的软件包
shell: Linux中的Shell就是Linux内核的一个外层保护工具,并负责完成用户与内核之间的交互
Shell是一个命令行解释器
ys@ys-ubuntu:/$
用户名称@主机名称:当前路径$(普通用户)
whoami 列出当前登录的用户名称
hostname 列出当前登录的主机名
命令的使用格式:
Command [-Options] Argument1 Argument2 …
命令 选项 参数
dpkg [-i] sl
一行运行多个命令:需要使用”;“作为分隔符
比如: ls ; cd /
如果一条命令不能在一行写完,在行尾使用反斜杠()标明该条命令未结束:
比如: ls
/home/ys 表示列出/home/ys目录中的文件名
自动补全:
文件名: 一次tab键
命令补全: 两次tab键
history: 查询历史执行的命令
history 列出所允许的最大命令个数
history 10 列出最近操作的10个命令
echo $HISTSIZE 查看环境变量 HISTSIZE的值
彻底修改HISTSIZE的值: 修改 家目录中 /home/linux/.bashrc 中的 HISTSIZE的值即可
修改完成之后需要执行 source ./.bashrc 重启配置文件
shell的通配符:
”*“ :表示匹配任意长度的字符串
”?“ :匹配任意一个字符
”[ ]": 匹配中括号中的一个字符。
比如 [0-9] 匹配0-9的数字
[a-z] 匹配a-z小写字母
[A-Z] 匹配A-Z大写字母
[0-9a-zA-Z] 匹配数字、字母
要想匹配多个,需要使用多个[]来完成
[^abc] :表示除了a b c 三个字符外都可以匹配
管道:管道可以把一系列命令连接起来,意味着第一个命令的输出将作为第二个命令的输入,通过管道传递给第二个命令,第二个命令的输出又将作为第三个命令的输入,以此类推。就像通过使用“|”符连成了一个管道。
wc 命令(文件操作):列出行、字符个数、 单词个数
wc -c 统计字符个数
wc -w 统计单词个数
wc -l(字母) 统计行数
输入输出重定向:
“>" :表示输出重定向 后边需要跟一个目标文件。
比如: ls > file 将ls的输出结果写到文件file中
file文件如果没有,就会被创建;如果已经存在就将原内容清空。
”>>" :表示输出重定向,将输出内容追加到目录文件中。
ls >> file 将内容追加到file文件中。
“<" :表示输入重定向
wc -w < file 将内容作为输入源传递给命令
”2> ": 表示错误输出重定向
gcc 的编译错误 2> file
如果是文件执行的结果重定向,那么“>" ,将正确输出定向到文件中,错误还是会显示到终端
如果是文件执行的结果重定向,那么“2>" 将错误输出定向到文件中, 正确的会显示到终端上。
”&>" :表示将所有的信息输出重定向到文件中。
命令置换:将一个命令的输出作为另一个命令的参数
pwd 命令:显示当前所在的绝对路径
命令格式: 命令1 `命令2`
将命令2的结果作为命令1的参数来使用
ls `pwd` 列出当前路径下的文件名
命令别名:alias
alias cc='gcc' 注意是单引号
相当于 为gcc 起别名叫cc
alias 新名字='原名字'
去除别名:unalias
unalias ll(要去除的别名)
shutdown 命令:
sudo shutdown -r +10 重启(10)
sudo shutdown -r now 立刻重启
sudo shutdown -h now 立刻关机
sudo shutdown -h +10 关机时间
sudo shutdown -c 立刻取消正在执行的shutdown操作
sudo shutdown -k +时间 发送一个广播告诉其他登录的用户要进行关机操作,但是不会真正关机。
sudo shutdown -f/-n 其他关机方式
修改密码:
passwd 修改自己的密码
sudo passwd user 要修改user用户的密码
比如给超级用户设置密码: sudo passwd root
su : 直接切换到超级用户
exit: 退出当前的用户
su 用户名: 表示切换到该用户
echo:输出命令, 自带换行符
echo "hello world" 就是原样输出字符串
echo hello world 就是将空白缩短到最小
echo -n xxxxx 输出语句不带换行符
获得系统时间:date
修改系统时间: sudo date -s "year -mon -day h:m:s"
修改时区: 需要将 /etc/localtime 文件替换为 /usr/share/zoneinfo/Asia/Shanghai
清楚终端上的显示:clear
ctrl + L ==== clear
df: 查看磁盘空间的使用情况
df -h 以合适的数据单位显示磁盘使用
df -T 显示文件系统的信息
df -Th 显示文件系统的信息,以合适的单位
df -a 显示所有物理文件系统的使用情况,包括虚拟文件系统,如/proc、/sys等
df -k 以kB为单位显示
df -aTh
du: 查看文件使用此磁盘的情况
du -mh file(文件) 以合适的单位显示文件占用磁盘情况
du -sh xxx(目录) 查看目录占用磁盘空间
用户管理:
/etc/passwd :记录系统用户的信息
ys :x :1000:1000: ys,,,: /home/ys :/bin/bash
用户名 密码 用户id 组id 个人信息 家目录 对应的shell解释器
/etc/shadow :存放着用户的密码
/etc/group :存放着用户组信息
ys: x :1000: 改组的成员
组名 组密码 组id
添加新用户:
sudo adduser 用户名
添加过程 从 /etc/skel 目录中复制文件到新用户的家目录下
su 用户名: 表示切换到该用户
exit 表示从当前登录的用户中退出
删除用户:
sudo deluser 要删除的用户名
彻底删除用户(包括家目录): sudo deluser --remove-home 用户名
小问题:要执行删除用户的操作, 必须要保证该用户不在登录状态(exit退出)。
在一个已经存在的用户组添加一个新用户:
sudo adduser 新用户名 --ingroup 组名
添加一个用户组:
sudo addgroup 组名
删除一个组:
sudo delgroup 组名
vipw: 直接打开/etc/passwd 文件
sudo vipw
usermod: 修改用户属性
sudo usermod -p xxx 用户
查看进程:
ps 查看正在运行的进程
ps -ajx 显示当前系统中的进程的详细信息
ps -aux 显示当前系统中的进程的详细信息
top:命令 ,动态显示系统当前的使用情况
pstree: 显示当前系统中的进程的树状图
kill 命令: 是用来发送信号的
kill -l(是字母) 列出当前系统所支持的信号类型
kill -9 pid 杀死pid的进程(发送一个杀死信号)
修改文件的属性:chmod chown chgrp
chown:修改文件的属主
修改文件所属于的用户:sudo chown 新用户 文件
同时修改文件的属主和组: sudo chown 用户:组 文件
chgrp: 修改文件所属于的组
sudo chgrp 新组名 文件
chmod:就是修改文件的权限。
文件权限?
ll 命令可以列出文件的权限 读、写、执行
rw- rw- r--
属主权限 属组的权限 其他人的权限
r: 表示该文件可读
w: 表示文件可写
-:表示什么没有
x: 表示可以执行(有执行权限)
chmod 664 file 表示将文件的权限修改为 rw- rw- r--
110 110 100
chmod 777 file 表示将文件的权限修改为 rwx rwx rwx
sudo usermod -G linux yys 关联yys用户和linux组,这样就可以在/etc/group中看到成员列表
文件系统:就是对磁盘的访问和管理的一种机制
linux文件系统分类:
磁盘文件系统:针对真实的存储介质,
FAT16、FAT32、NTFS 、ext2、 ext3 、ext4
网络文件系统:是可以远程访问的文件系统
虚拟文件系统:存在于内存当中, 常见的有tmpfs proc sysfs
系统上的硬盘:/proc/partitions文件查看
df -aTh
linux上一切皆文件(操作方式按照文件来操作)
分区:
linux的分区在目录中 / 20G
/home 10G
windows的目录在分区中
文件与目录的操作命令:
pwd 获得绝对路径
ls:
ls -a 列出当前目录下所有文件, 包括隐藏文件
. 当前目录
.. 代表上层目录
ls -l 列出文件的详细信息
ls -R 递归的显示当前目录中的所有文件
ll 列出文件详细信息
- rw------- 1 ys ys 5618 Jul 23 20:48 file
文件类型 权限 硬链接个数 用户 组 大小(字节) 最后修改时间 文件名
linux文件类型:有7种
b 属于块设备
c 字符设备
d 目录
- 普通文件
l 链接文件(软连接)
s 套接字(网络)
p 管道
cd: 改变工作目录的
cd 表示回到家目录
cd .. 进入上层目录
cd . 当前目录
cd ~ 表示回到家目录
cd /ect/init.d/xxxx/ 按照绝对路径进入某一个目录中
cd ../../../../ 进入上上层目录
cd dir 进入当前目录中的dir目录
cd ~/C/xx 进入家目录/C/xx目录中
cd - 进入上一次操作的目录
touch 1)创建一个新文件
2)更改文件时间戳
file: 命令功能用于判定一个文件的类型、格式、运行架构等
file xxxx(文件)
cp: 文件或者目录复制
文件操作:
cp file1 file2 将当前目录中的文件file1, 复制一份改名为file2
cp file1 /xx/xxx/ 将当前目录中的文件file1, 复制到绝对路径中名字不变
cp file1 /xxx/xxx/file2 将当前目录中的文件file1, 复制到绝对路径中名字变为file2
cp /xxx/xx/file1 .(必须有目的路径) 将绝对路径中的文件file1 复制到当前目录, 名字不变
cp /xxx/xxx/file1 /yyyy/yyy/ 将绝对路径中的file1复制到绝对路径中,名字不变
cp /xxx/xxx/file1 /yyyy/yyy/file2 将绝对路径中的file1复制到绝对路径中,名字变为file2
目录操作:
cp dir1 dir2 -a 复制当前的dir1目录,改名为dir2
-a: 拷贝所有的东西,包括软连接
-r: 递归拷贝,软连接会丢失
cp dir1 /xxx/xxx -a 将当前目录中dir1, 复制到绝对路径中名字不变
cp dir1 /xxx/xxx/dir2 -a 将当前目录中dir1, 复制到绝对路径中名字变为dir2
cp /xxxx/dir1 /yyy/ -a 将绝对路径中dir1 复制到绝对路径中目录, 名字不变
cp /xxx/dir1 /yyyy/dir2 -a 将绝对路径中dir1 复制到绝对路径中目录, 名字变为dir2
mv:
1)移动文件
2)重命名
mv file1 file2 将当前目录中的file1重命名为file2
mv dir1 dir2 将当前目录中的dir1重命名为dir2
mv file1 /xxx/xxx/ 将当前目录中的file1 移动到绝对路径中,名字不变
mv file1 /xxx/xxx/file2 将当前目录中的file1 移动到绝对路径中,名字变为file2
mv /xxx/file1 /yyy/ 将绝对路径中file1复制到绝对路径中目录, 名字不变
mv /xxx/file1 /yyy/file2 将绝对路径中file1复制到绝对路径中目录, 名字变为file2
mv /xxx/file1 /xxx/file2 修改绝对路径中的文件名字
rm: 删除命令(谨慎操作)
rm file 删除文件
rm file* 通配符删除
-r :递归删除,操作目录
-f: 忽略文件或者目录是否存在
rm -rf dir1 删除目录dir1
rm -rf /xxx/yy/dir1
rm 删除目录的特点:无论目录是否为空,都可以删除。
mkdir: 创建目录
mkdir xxx 在当前目录中创建一个目录xxx
mkdir /xxx/xxx/dir 在绝对路径中创建一个目录
mkdir -p /xxx/yyy/zzz 嵌套创建多级目录
rmdir 只能删除空目录
cat :查看文件内容
cat file 在终端上显示该文件的内容
cat -n 显示文件内容时,携带行号。
cat -vE file 在文件每一行的结尾添加一个$符号
cat xxx > file 重定向时使用
echo "helloworld" > file
head :从头查看文件的前几行内容
head -10 file 表示要查看file文件的前10行。
tail: 从文件结尾显示后几行内容
tail -10 表示显示后10行
head、tail配合使用:
head -xx file | tail -xxx
软链接:相当于快捷方式,源文件被删除时,链接文件就无法使用
硬链接: 多个链接指向的是同一个文件,只有硬链接的个数变为0时,才会从磁盘上删除。
ln命令:
创建软链接: ln -s 源文件名 链接文件名
源目录名字 链接目录的名字
如果链接文件的路径发生了变化,可能会导致之前的链接无法使用,除非链接是绝对路径。
比如: ln -s /xxx/xxx/file(源文件的绝对路径) link
创建硬链接 : ln 原文件名 链接文件名
目录无法创建硬链接
压缩命令:
gzip: gzip file 就是将file文件压缩为file.gz
源文件会消失
gunzip: gzip的解压命令
gunzip xxx.gz
gzip -l xxx.gz 查看文件压缩情况。
bzip2: bz2的压缩命令
bzip2 file
bunzip2 file.bz2 解压命令
zip :压缩文件、目录
压缩命令 zip -r xxx.zip dir 将目录dir压缩为xxx.zip
解压命令 unzip xxxx.zip
tar命令:
归档:tar -cvf 1.tar dir
-c 创建归档文件
-v 显示归档过程
-f(归档名之前) 指定归档后的文件名
归档并且压缩:
tar -cjvf 1.tar.bz2 dir
就是将dir目录归档压缩为bz2格式
-j :指定压缩方式为bzip2
-z :指定压缩方式为 gzip
-J :指定压缩方式为xz
解压命令:
tar -xvf xxx.tar.xx 解压压缩包
tar -tf xxx.tar 查看归档文件的组成
tar -uf xxx.tar file 就是将file文件添加到xxx.tar的归档包中
less/more 分屏显示文件内容, 按q退出
grep :用来进行字符串查找
grep -Rn "字符串“ 查找路径
-R :递归查找
-n: 显示字符串所在的文件的行号。
grep 支持shell的通配符、正则表达式等。
sort: 默认对文件内容进行升序排列
sort file -o file 表示将排序后的内容写入到源文件
sort -r file 按照降序排列
如果文件内容为字符‘0-9‘,会按照ascii比较
sort -n file 排序时按照数值大小进行
uniq: 在终端上显示去除文件中相邻重复行后的内容
uniq -c file : 表示统计文件中相邻重复的行数
diff: 比较文件的内容是否一致,会列出不一致的地方。
如果文件内容一致,那么没有任何提示。
which:查找实用命令
whereis: 查找命令或者程序
who: 显示当前登录的用户名
find : 递归查找文件
find 查找路径 -name 文件名(可以使用通配符) /////按照文件名查找
find 查找路径 -perm 666 /////按照文件权限查找
find 查找路径 -group 组名 /////按照文件分组查找
配合管道使用: find . | grep "查找关键字”
cut: 进行域的分隔
cut -d "xx" -f xx, xxx
-d: 指定分隔符
-f: 指定要显示的域
比如:cut -d ":" -f 2,3 表示要显示以“:”作为分隔符的第2和第3个域的内容。
网络配置:相关文件 /etc/network/interfaces
/etc/resolv.conf
/etc/init.d/networking
ipv4 ip地址类型: A B C D E
ip地址组成: 网络id + 主机id
子网掩码: A 255.0.0.0
B 255.255.0.0
C 255.255.255.0
ifconfig: 查看和配置网络的命令
通过ifconfig命令临时修改网络连接:
ifconfig eth0 192.xxx.xxx.xx 修改eth0的ip地址
虚拟机网络:
1)共享主机网路
2)独立于主机(桥接模式)
通过配置文件修改网络:见文件