一、基础的准备
命令的组成:command --全名-缩写(可加多个)
重要的热键:[tab][tab]自动补全 [ctrl]+c终止执行 [ctrl]+z暂停 [ctrl]+d结束输入
参看帮助信息:help
几个常用的命令:nano bc
二、文件操作
-rw-rw-r-- 1 zz zz 252 Dec 23 20:02 first.cpp
九个权限 链接的数量 所有者 用户组 大小 修改时间 文件名
文件的开头[d]设备接口 [c]串行接口设备
Rwx=4+2+1
改变文件的属性与权限chown chgrp chmod
目录:/boot启动目录 /usr用户/var与运行过程有关 /bin二进制文件 /dev设备文件
/etc配置文件 /lib函数库 /mnt挂载 /opt第三方开源软件 /root系统管理员文件夹
/sbin超级管理员文件夹 /srv服务 /tmp零时文件夹
Rm -r 递归删除文件 / mv 移动文件移动的地方 /cp 要复制的文件 复制的地方
../上级目录 ./此目录 /根目录 ~用户目录 pwd ls cd
Mkdir rmdir
文件的查看:cat -n filename显示行号
More 按页显示
less 桉页查看,可进行查找
head -n 20 显示前面20行
tail -n 20 显示最后20行 || tail -n +20 从20行开始显示
od 显示非纯文本文件
修改文件的时间(不存在则会创建新的文件)touch 1.txt
文件的默认权限umask
文件的隐藏属性:chattr [+-=] a/I 不能删除文件,a可以增加 lsattr
文件的特殊权限:suid sgid sbit会让用户暂时拥有root权限
查看文件的类型:file name
文件的查找:
Whereisname
Locataname
Find路径 -mtime -3 三天内产生的文件(不含第三天)
-mtime +3 三天之前产生的文件(不含第三天)
-newer name 在路径下找到比name文件更新的文件
-uid/gid/nouser/nogroup number 找到用户ID的文件
-user username
-perm 7 权限为7的文件
-name filename
三、文件系统
节点式构成,superblock最顶级,和数组一样每一个元素只能存储一个内容,这样不可避免的造成了一定程度的浪费
Df查看挂载的设备
Dumpe2fs /dev/sda1查看系统节点信息
Du 查看文件的容量大小 -am 看文件和目录的大小,单位M
Ln让两个innode指向同一个block -s创建快捷方式
分区:fdisk -m获取菜单界面fdisk /dev/sda
磁盘格式化:mkfs -t ext3 /dev/sda1
磁盘检验:fsck -c -f /dev/sda1
磁盘的挂载: mount -l显示挂载信息
Ex:mkdir/etc/mnt; mount /dev/sda /etc/mnt
Umount/dev/sda1
E2label 修改卷标名字
Dumpe2fs -h /dev/sda1查看信息
开机挂载:信息在/etc/fstab和/etc/mtab里面
特殊挂载:ex:
Ddif=/dev/zero of=/home/xx.iso bs=1M count=1024
mount-o loop /home/xx.iso /newdir
内存交换空间mkswap
文件的压缩和解压:compress/uncompress
Gzip -d xx.gz 解压 zcat xx.gz读取压缩文件
Bzip2 -d xx.bz2 解压 bzcat xx.bz2 读取文件
Tar 打包文件夹
Ex: tar -jcv -f xx.tar.gz /home 压缩
Tar -jtv -f xx.tar.gz 查看
Tar -jxv -f xx.tar.gz 解压
四、vim/vi的使用
<start position><command><end position> 0y$ copy current line
各种插入模式
简单的移动光标
a
→ 在光标后插入o
→ 在当前行后插入一个新行O
→ 在当前行前插入一个新行cw
→ 替换从光标所在位置后到一个单词结尾的字符- i当前字符处插入
- r替换
拷贝/粘贴
0
→ 数字零,到行头^
→ 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)$
→ 到本行行尾g_
→ 到本行最后一个不是blank字符的位置。/pattern
→ 搜索pattern
的字符串- gg文章首字符,ng跳到n行
w
→ 到下一个单词的开头。e
→ 到下一个单词的结尾。%
: 匹配括号移动,包括(
,{
,[
.*
和#
: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)
fa
→ 到下一个为a的字符处,你也可以fs到下一个为s的字符。t,
→ 到逗号前的第一个字符。逗号可以变成其它字符。3fa
→ 在当前行查找第三个出现的a。F
和T
→ 和f
和t
一样,只不过是相反方向。
Undo/Redo
P
→ 粘贴yy
→ 拷贝当前行当行于ddP
打开/保存/退出/改变文件 (Buffer)
u
→ undo<C-r>
→ redo
:e <path/to/file>
→ 打开一个文件:w
→ 存盘:saveas <path/to/file>
→ 另存为<path/to/file>
:x
,ZZ
或:wq
→ 保存并退出 (:x
表示仅在需要时保存,ZZ不需要输入冒号并回车):q!
→ 退出不保存:qa!
强行退出所有的正在编辑的文件,就算别的文件有更改。:bn
和:bp
→ 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(陈皓注:我喜欢使用:n到下一个文件)
- 2,3d删除2-3行
3p
→ 粘贴文本3次100idesu [ESC]
→ 会写下 “desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu “.
→ 重复上一个命令—— 100 “desu “.3.
→ 重复 3 次 “desu” (注意:不是 300,你看,VIM多聪明啊).- 替换:[%][n]s/from/to/g[] c询问 %全部行
自动提示: <C-n>
和 <C-p>
宏录制: qa
操作序列 q
, @a
, @@
qa
把你的操作记录在寄存器a。
- 于是
@a
会replay被录制的宏。 @@
是一个快捷键用来replay最新录制的宏。
可视化选择: v
,V
,<C-v>
前面,我们看到了 <C-v>
的示例 (在Windows下应该是<C-q>),我们可以使用 v
和 V
。一但被选好了,你可以做下面的事:
J
→ 把所有的行连接起来(变成一行)<
或>
→ 左右缩进=
→ 自动给缩进
在所有被选择的行后加上点东西:
<C-v>
- 选中相关的行 (可使用
j
或<C-d>
或是/pattern
或是%
等……) $
到行最后A
, 输入字符串,按ESC
(1)颜色设置
syntax on "开启代码高亮
syntax off "关闭代码高亮
syntax enable "开启代码高亮
(2)搜索设置
set hlsearch "开启搜索高亮
set nohlsearch "关闭搜索高亮
set incsearch "输入搜索字符串的同时进行搜索
set ignorecase "搜索时忽略大小写
(3)用户界面
set showmode "开启模式显示
set ruler "开启光标位置提示
set number "显示行号
set nonu "不显示行号
set cursorline "强调光标所在行
set cmdheight=1 "命令部分高度为1
(4)编辑辅助配置
set autoindent "自动缩进
set noautoindent "不自动缩进
set smartindent "智能缩进
set autoread "当文件在外部被改变时,vim自动更新载入
set showmatch "显示匹配的括号
五、shell
Type name查看是否是shell内部命令
Myname=zylg变量的设置
Unset myname取消变量
Export myname 让变量成为环境变量
Set查看所有变量 env查看环境变量
Declare -I name 声明为整形 -a数组 -x环境变量
别名:alias google-google-chrome
Bash符号:
#注释 \转义 ;分隔 ~主文件夹 $变量名加上 & ! /根目录 >重写 >>追加
命令执行:&& ||
管道 |
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin;
export PATH;
echo -e "helleo welcome to this program";
read -p "please input your name: " namei;
name=${name};
date1=$(date --date='2 day ago'+%Y%m%d);
date2=$(date --date='1 day ago'+%Y%m%d);
date3=$(date %Y%m%d);
file1=${name}${date1};
file2=${name}${date2};
file3=${name}${date3};
touch "$file1";
touch "$file2";
touch "$file3";
六、账号管理
/etc/passwd的构成
zz:x:1000:1000:zz,,,:/home/zz:/bin/bash
账号名称:密码:uid:gid:用户信息说明:主文件夹:shell
/etc/shadow的构成
zz:$1$6RIV$S6K8o6i6y5vDXwjXm.Gnn0:17508:0:99999:7:::
名称:密码:创建的日期:不允许修改密码的天数:多少天后必须修改密码:宽限使用七天:密码失效:用户失效:保留
/etc/group的构成
名字:密码:gid
useradd [-u uid] [-g 初始用户组] [-G 次要用户组] [-d 主文件夹] [-s shell] name
Uid<500系统用户
Userdel -r name
Passwd 修改密码
修改shadow
Chage -l 显示全部
-d 修改创建日期 (3)
-m 修改密码保留天数 (4)
-M多久后强制修改密码 (5)
-w密码是失效前警告的日期(6)
-I 密码失效日期 (7)
-E账户失效日期 (8)
Usermod -d 主文件夹
-c 说明信息
-g 初始用户组
-G 次要用户组
-l 用户名称
不是管理员可以finger查看 id chsh
Groupadd [-g gid] name
Who w last lastlog查看用户
七、Linux信息传递
Write zz yyy7
Mesg n|y 开关
Wall广播
/etc/sudoers这个文件记录是否可以使用sudo
八、例行工作
一次例行
At 18:00 1027-12-20
At> shutdown -s now
[ctrl]+d
Atq查看例行的项目
Atrm 删除例行
周期例行
在文件/etc/crontab查看所有的周期例行的信息
文件记录的构成(周日月不能同时赋值)
分时日月周 user command
Ex: 01 4 * * * zz shutdown -s now每天的4:01关机
*/5 * * * * zz shutdown -s now 每隔五分钟关机
发生了关机,例行工作并没有完成,用anacron去检测执行
九、进程管理
&后台运行
Ps aux查看进程
Jobs -l后台工作状态
Fg 1将后台变为前台
Bg继续运行暂停的进程
Klii -9/-15杀死进程
Top -d 2每隔两秒刷新进程
Pstree进程树
Free内存
Uname内核
Netstat 网络端口状态
Dmesg 分析内核信息
Vmstat检测系统变化
Fuser 已经打开的文件
Lsof进程打开的所有文件
修改界面dpkg-reconfigure gdm
修改语言1.dpkg-reconfigure locales
2.执行 sudo locale-gen ,生成locale(自动保存在/usr/lib/locale/中)
3.LANG="zh_CN.GB18030"