1、linux背景介绍
内核版本:https://www.kernel.org/
内核版本分三个部分
主版本号、次版本号、末版本号
次版本号奇数为开发板,偶数为稳定版
终端
图形终端
命令行终端
远程终端(SSH、VNC)
目录
/根目录
/root root用户的家目录
/home/username 普通用户家目录
/etc 配置文件目录
/sbin 管理命令目录
/usr/bin /usr/sbin 系统预装的其他命令
2、系统操作
1)帮助命令
1.man ,manual的缩写
# man ls //查看命令的帮助
# man 1 man //查看第一章的帮助
# man -a passwd //不知道命令还是文件时
man 9个章节
The table below shows the section numbers of the manual followed by the types of pages they contain.
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
下表显示了本手册的章节号及其包含的页面类型。
1可执行程序或shell命令
2个系统调用(内核提供的函数)
3个库调用(程序库中的函数)
4个特殊文件(通常位于/dev中)
5文件格式和约定,例如/etc/passwd
6场比赛
7杂项(包括宏包和约定),例如man(7)、groff(7)
8个系统管理命令(通常仅适用于root用户)
9内核例程[非标准]
2.help帮助
shell(命令解释器)自带的命令称为内部命令,其他的是外部命令
内部命令使用help帮助
# help cd
外部命令
# ls --help
查看命令类型
# type ls
3.info帮助
# info ls
2)文件管理
文件查看ls
# pwd 当前路径
# cd 切换文件
# ls [-l]长格式显示文件[-a]显示隐藏文件[-r]逆序显示(默认名称)[-t]按时间顺序显示[-R]递归显示
# ls /root /home 查看多个目录下的文件
目录文件的创建与删除
cd
绝对路径
相对路径
cd -
cd .(.来代替当前目录)
cd ../ cd .. 上级目录
mkdir
创建目录
mkdir /a (根目录下/a)
mkdir a ()
mkdir a b c
mkdir /a/b/c
mkdir -p /a/b/c/d/e/f/g (多级目录)(存在相同名字会覆盖)
rmdir & rm
删除
rmdir /a
rm -r /a (-r 删除目录)
rm -r -f /a (-f 不提醒)
rm -r -f / a (删除根目录,请注意)
rm -rf
cp & mv
cp -r /root/a /tmp (没有-r是不能复制目录的)
touch /filea (创建一个文件)
cp -v /filea /tmp (显示进度)
cp -p (保留用户、权限、时间等)
cp -a (保留权限)(与-p的区别这里并不明确)(等同于-dpR)
cp /filea /fileb (文件重命名)
cp 文件a 文件b 文件目录
mv /tmp/fileb /filec (移动并重命名)
cp -v file* /
通配符
* 匹配多个
?匹配单个字符
文件操作
文件内容查看
cat 文本显示但终端
head 查看文件开头
head 100 bus (显示100行)
tail (查看结尾) -f(显示信息同步更新)
wc (统计文件内容信息)
wc -l /tmp/demo (显示多少行)
more /tmp/demo (分行显示) 空格继续显示
less
3)打包和压缩
先打包 tar
在压缩 gzip 和 bzip2
经常用的扩展名 .tar.gz |.tar.bz2| .tgz
tar cf /tem/etc-back.tar(打包到哪里) /etc(被打包文件夹) (1.没有-,c命令、f打包成文件)
ls -lh 文件 (-h以多少M、的形式显示文件大小)
tar zcf /tem/etc-back.tar.gz /etc(被打包文件夹) (增加z)
tar cjf /tem/etc-back.tar.bz2 /etc (增加j)
tar xf /tem/etc-back.tar.bz2(被解压的文件) -C /root(指定解压后的目录)
tar zxf
tar xjf
.tar.bz2 = .tbz2
.tgz
f 指定操作类型为文件
x 解包
4)vi文本操作
四种模式
正常模式
hjkl : h右j下k上l左
yy:复制一行
3yy:复制光标之下3行
p:粘贴
y$:复制光标到行结尾的内容
dd:剪切当前行
5dd:剪切光标之下3行
d$:剪切光标到行结尾的内容
u:撤销
ctrl(cintrol)+r:重做 还原(撤销撤销)
x:删除光标选择的字符
r:替换光标选择
3+shift+g(3+G):光标到第3行
g:回到第一行
G:文本最后一行
$:光标到行的结尾
^:光标到行的开头
插入模式:
i:光标位置插入
I:光标所在行的开始位置
a:光标位置的后一个位置
A:光标所在行的结尾位置
o:光标所在行下插入一行
O:光标所在行上插入一行
命令行模式
::冒号进入
set nu :显示行号
:w保存
:w 文件名 保存到文件名
:wq 保存并退出
:q退出
:q!不保存修改退出
:!ifcinfig命令行模式下执行命令
/ 目标字符 查找
n 下一个目标字符
N 上一个目标字符
:s/old/new 替换光标所在行
:%s/old/new 替换文本查找到的字符
:%s/old/new/g 全局替换
:3,5s/old/new/g 替换3-5行所有的匹配字符
:3,5s/old/new 替换3-5行第一个的匹配字符
:set nu 显示行号
:set nonu 不显示行号
set 单次生效
vim /etc/vimrc vim的配置文件 这配置文件增加命令
可视模式
v:
v字符可视,
V行可视
ctrl+v块可视
配合d l批量删和插入
5)用户管理
useradd 新建用户
userdel 删除用户
paddwd 用户名 (不写用户名就该当前登录用户的密码) 修改用户密码
usermod 修改用户属性
增加-r 选项 同时删除home/写的文件 (不加-r会保留用户家目录)
chage 修改用户属性(change age)更改用户密码过期时间
id root 查看用户信息(组)
创建用户后,有用户家目录/home/will,有用户密码信息:/etc/passwd,/etc/shadow文件增加一条
用户uid 组gid
修改用户家目录
useradd w
usermod -d /home/w1 w
修改用户组
创建用户组
groupadd group1
把user1用户组改为group1
usermod -g group1 user1
指定组新建用户
useradd -g group1 user2
id user2
su - user1 (切换到user1,-表示保留当前运行环境进行切换)
id
su 切换用户
su - username 使用login shell 方式切换用户
sudo 以其他用户身份执行命令
visudo 设置需要使用sudo的用户(组)
shutdown -h 30 (30分钟后关机)
shutdown -c (取消关机)
给其他用户赋予命令
visudo (编辑sudo)
增加
user3 All=/sbin/shutdown -c (为user3在所有终端赋予命令的权限)
:!which shutdown (查找shutdown的路径)
user3用户使用
sudo showdown -c (取消关机)
输入user3的密码
用户和用户组配置文件
/etc/passwd
cat /etc/passwd显示
root:x:0:0:root:/root:/usr/bin/zsh
username:是否需要密码(x表示需要):uid:gid::用户加目录:用户的命令解释器
/etc/shadow
root:$1$uHvhaJR/$ppPrp2TNFPOoIFMbxB.BS1:18878:0:99999:7:::
用户名:加密后的密码
/etc/group
mail:x:12:postfix
用户组:是否需要验证:gid:其他组
6)文件权限
查看文件权限
-rw------- 1 root root 7989 Nov 22 2016 anaconda-ks.cfg
前三个:当前用户,中间三,当前组,后三个,其他用户
- 普通文件
d 目录文件
b 块特殊文件
c 字符特殊文件
l 符号链接 (类似快捷)
f 命名管道
s 套接字文件
字符权限表示方法:
r :读 w:写 x:执行
数字权限:
r=4;w=2;x=1
目录权限
x:进入目录
rx:显示目录内文件名
wx:修改目录内的文件名
修改权限
chmod 修改文件、目录权限
chmod u+x /tmp/testfile
chmod 755 /tmp/testfile
chown 更改属主、属组(change + Owner)
chgrp 可以单独更改属组
ls -l -d /test (单独查看test目录权限等)
chown user1 /test (修改test目录属主)
chown :group1 /test (修改test目录属组)
chown user1:group1 /test(同时修改属主和属组)
chmod u(username) g(group) o(other) a(all)
chmod u+(增加)-(删除)=(设置)权限
chmod u+x testfile (给当前用户增加执行权限)
chmod g-r testfile (给当前属组删除读权限r)
unask 0022
echo 123 > afile (会清空afile中所有文件)
echo 123 输出到控制台
> 输出重定向
-/---/-w-/--- 属主和属组权限冲突,以属主权限为准
特殊权限
chmod 4755 file (增加SUID权限(rws),原有权限755加上4)
chmod 1777 /test/ (增加SBIT权限,(rwt),原有权限777加上1)