Ctrl + a :移到命令行首。
Ctrl + e :移到命令行尾。
Ctrl + u :从光标处删除至命令行首,删除光标左边。
Ctrl + k :从光标处删除至命令行尾,删除光标右边。
Ctrl + w :从光标处删除至字首。Sdvesvwv dvsdvsdv 。只会删除后一部分,dvsdvsdv。空格出隔开。
重新执行命令:
Ctrl + p:历史中的上一条命令/上剪头。
ESC + “.”:打印之前执行过的命令的最后一部分,以空格为分隔符。
History:历史命令。
历史命令:上下箭头。
free –m :查看内存。
Ctrl + l:清屏。
Ctrl + c:终止正在运行中的命令。
Tab键: 自动补全。
DNS:域名与IP解析协议。
目录功能
bin :普通用户使用的命令
sbin:管理员使用的命令 /sbin/service
Etc 配置文件。
Dev 存放设备文件的目录。
/root #root用户的家目录。
/home #存储普通用户家目录 。
lost+found 这个目录平时是空的,存储系统非正常关机而留下“无家可归”的文件。
/usr #系统文件,相当于 C:\Windows
/usr/local #软件安装的目录,相当于C:\Program
/usr/bin #普通用户使用的应用程序
/usr/sbin #管理员使用的应用程序
/usr/lib #库文件Glibc 32bit
/usr/lib64 #库文件Glibc 64bit
/boot #存放的系统启动相关的文件,例如kernel
/etc #配置文件(系统相关如网络/etc/sysconfig/network)
/tmp 临时文件(系统:程序产生的临时文件)
/opt 空目录
/var #存放的是一些变化文件,比如数据库,日志,邮件....
/proc 虚拟文件系统,系统程序文件所处目录 。虚拟文件系统:只要关机就会没有。
==设备(主要指存储设备)挂载目录==
/mnt #系统提供这个目录是 让用户临时挂载其他的文件系统
free –m :查看内存。
echo 3 > /proc/sys/vm/drop_caches :清理内存。
文件类型(理解即可)
- 普通文件(文本文件,二进制文件,压缩文件,电影,图片。。。)
d 目录文件(蓝色)
b 设备文件 block device 设备文件,如硬盘,U盘。
c 设备文件 字符设备文件,比如我们的终端tty1,打印机。
l symbolic link 即符号链接文件,又称软链接文件 (浅蓝色)。
s socket 即套接字文件,用于实现两个进程进行通信。
p 管道文件。
*:通配符,代表匹配任意多个字符,代表所有文件。
创建文件
touch file1.txt //无则创建,如果存在修改时间
touch /home/file10.txt
touch /home/{zhuzhu,gougou} //{}集合
touch /home/file{1..20} //批量创建
echo 默认将输出内容输出到屏幕 >覆盖重定向。
Cat 查看文件具体内容。
echo 加内容 > 加文件名 #覆盖:把之前的内容替换掉
# echo 123 > a.txt
echo 加内容 >> 加文件名 #追加:保留之前的内容,在后面添加新内容
# echo 345345 >> a.txt
当使用echo “123” >> a.txt 这个命令的时候在文件不存在的时候会创建该文件并将内容追加到该文件中。
创建目录
语法:mkdir -v 详细 -p 递归 目录
# mkdir dir1
创建两个目录:
# mkdir /home/dir2 /home/dir3
# mkdir /home/{dir4,dir5}
# mkdir –v /home/{dir6,dir7} #-v:verbose 冗长的。显示创建时的详细信息
# mkdir -p /home/dir8/111/222 #-p 创建连级目录,一级一级的创建
。
复制
复制 cp -r 目录 -v 详细 -f 强制 -n 静默
# cp -v anaconda-ks.cfg /home/dir1/ #-v 显示详细信息。
# cp anaconda-ks.cfg /home/dir1/test.txt #复制并改文件名。
# cp -r /etc /home/dir1 #-r 拷贝目录使用,连同目录里面的文件一块拷贝。
语法: cp -r 源文件1 源文件2 源文件N 目标目录
#将多个文件拷贝到同一个目录
# cp -r /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/passwd /etc/hosts .
# cp -r /etc /tmp
移动
把file1文件移动到/tmp目录中
mv /root/file1 /tmp/
把file1文件更名为file2
mv /tmp/file1 /tmp/file2
删除,通配符用法。
rm –rf /root/hao/*txt 。只删除txt结尾的文件。Jie*,只删除以jie开头的文件。
删除
==删除 rm -r 递归删除目录 -f force强制 -v 详细过程 *通配符
示例2:
[root@linux-server ~]# mkdir /home/dir10
[root@linux-server ~]# touch /home/dir10/{file2,file3,.file4}
[root@linux-server ~]# rm -rf /home/dir10/* //不包括隐藏文件
[root@linux-server ~]# ls /home/dir10/ -a
查看文件内容
cat---查看一个文件的全部内容
参数:
-n 显示行号
-A 包括控制字符(换行符/制表符)
head头部
head /etc/passwd //默查看前十行
head -2 /etc/passwd //默认查看前两行
tail尾部
tail /etc/passwd //默认查看文件的后十行
tail -1 /etc/passwd //查看文件最后一行
tail /var/log/messages
tail -f /var/log/secure //-f 动态查看文件的尾部
tailf /var/log/secure //功能同上
grep过滤关键字 grep 针对文件内容进行过滤
过滤文件中带有root的内容:
grep 'root' /etc/passwd
过滤以root开头的行:^ --以什么开头
grep '^root' /etc/passwd
过滤以bash结尾的行:$ --以什么结尾
grep 'bash$' /etc/passwd
less 文件名 --分页显示
less /etc/makedumpfile.conf.sample
1.空格键是翻页 回车键是翻行 b是往上翻页。
2.上下箭头可以来回翻
3. /关键字 #搜索 (n按关键字往下翻 N按关键字往上翻)
4.快捷键:q -quit 退出
more --分页显示文件内容
more 文件名
空格键是翻页 回车键是翻行
众所周知linux中命令cat、more、less均可用来查看文件内容,主要区别有:
cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况;more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能。more比cat强大,提供分页显示的功能,less比more更强大,提供翻页,跳转,查找等命令。而且more和less都支持:用空格显示下一页,按键b显示上一页。
more: 顾名思义显示更多。
less: 由于more不能后退,就取more的反义词less加上后退功能。
所以Linux里流传着这样一句话:"less is more"。
总结下more 和 less的区别:
1. less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示。
2. less不必读整个文件,加载速度会比more更快。
3. less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容。
文件编辑器vim:
Vi i shift+: wq。
/为转译符,功能是将/后的第一个符号从有意义变得无意义,无意义的符号变得有意义。
进入编辑模式
i #在光标所在处进入编辑模式
a #在当前光标后面进入编辑模式
A #在行尾进入编辑模式
o #在光标的下一行进入编辑模式
大O #在光标的上一行进入编辑模式
# 从编辑模式进入命令模式:ESC
*命令模式
光标定位键盘:
0 $ #行首行尾
gg #页首--文本顶端
G(shift+g) #页尾--文本底部
3G #进入第三行。数字加G,移动到第几行。
/string #查找字符,n下一个,N上一个 (n N 可以循环的)
文本编辑(复制,删除)
yy #复制
3yy #从光标开始复制3行。在最后粘贴。
ygg #从当前光标复制到页首
yG #从光标开始复制到页尾
dd #删除一行
3dd #从光标开始删除3行
dgg #从光标开始删除到页首
dG #从光标开始删除到页尾
d^ #删除当前这一行光标之前的所有内容
D #从光标处删除到行尾
x #删除光标所在的字符
p #粘贴到本行的下一行
大P #粘贴到本行的上一行
10p #粘贴十次
u #undo撤销
r #可以用来修改一个字符
扩展命令(尾行)模式:
shift+: #进入尾行模式(扩展命令模式)
:10 #进入第10行
:w #保存
:q #退出
:wq #保存并退出
:q! #不保存并退出
:wq! 强制保存退出
查找替换
S/匹配域/替换域/。 ///可以被替换。比如###也可以。默认只替换光标所在行。
注释:%表示替换所有行 g表示行内所有关键字
%s/bin/soso/ #替换所有行的第一个关键词。
%s/sbin/nice/g #替换行内所有关键字,全局替换,替换所有关键词。
:s/world/nice/ #替换当前光标所在行
:3s/sbin/nice/ #替换指定行
:1,5 s/nologin/soso/ #从1-5行的nologin 替换为soso(已经指定1-5行,所以不在用%表示所有行)
:%s/bin/soso/ #替换所有行
:%s/sbin/nice/g #替换行内所有关键字
将文件另存(另存为)
语法----> :w 存储到当前文件
:w /tmp/aaa.txt/ #另存为/tmp/aaa.txt ,全局另存。
:1,3 w /tmp/2.txt / #从1-3行的内容另存为/tmp/2.txt
11 w /root/test.txt / 单行另存为。
进入其他模式:
光标移动到第二行,ctrl+v,选中,shift+i,输入要加的内容,按两下esc。(仅限于vim命令,vi命令没有该功能)。
ctrl+v #进入可视块模式
shift+v #进入可视行模式
设置环境:
:set nu #设置行号
:set list #显示控制字符
:set nonu #取消设置行号
文件基本信息
*时间类型
访问时间:atime,查看内容
最近更改,修改时间:mtime,修改内容
最近改动,改变时间:ctime,文件属性,比如权限,mv改名
Stat可以查看文件或者目录的具体信息。ls -l 文件名 仅看的是文件的修改时间。
**查询示例**
Linux用户管理
Linux的一大特性:
多用户、多任务。所谓多用户多任务就是指可以在同一时间,有多个用户登录同一个系统执行不同的任务而互不影响。
假设现在有三个用户:root、lbb、mvv,三个用户同一时间登录了同一个系统,root去修改配置文件了,lbb去创建目录了,mvv去访问数据库了,每个用户互不干扰的独立执行自己的任务,并且每个用户不能够越线去访问其他用户正在操作的目录或执行其他用户下的任务,由此可见,不同的用户是拥有各自不同的权限的,Linux通过权限的划分和管理来实现多用户、多任务的运行机制。
Linux中的用户及其角色划分
账户为分三类:
超级用户(管理员):享有最高权限,具备系统中的所有权限(一般为root),UID为0
系统用户 :别称“伪用户”,无法登录系统,其主要作用是支撑系统运行,方便系统管理。uid号码小于1000,为1-999。
普通用户:有权限限制,只能对自己目录下的文件进行操作,可以登录系统。uid 大于等于1000,小于65535。
登陆shell是bin/bash。
任何一个账户在创建的同时都会在系统里面创建一个同名的组。
0(root用户) (系统用户) 1000(普通用户) 65535
“:”,把其分为7部分。具体意义:
- 用户名
- 密码(为占位符)
- UID用户ID
- GID组ID
- 描述信息
- 用户家目录
- 登录shell。Shell是一类解释器。(nologin,不可登录shell)
Linux中,每个用户都必须有(属于)一个组。组是一个逻辑名词,
用户概览
1、 用户/组基本概念
Users and groups:
系统上的每个进程(运行的程序)都是作为特定用户运行的。
Every file is owned by a particular user.
每个文件是由一个特定的用户拥有。
. Access to files and directories are restricted by user.
访问文件和目录受到用户的限制。
2、用户管理
2.1 用户组
组名,组密码,组ID即GID,组成员。
Id + 用户名。
创建组
groupadd hr //创建一个用户组叫hr
groupadd net01 -g 2000 //创建组叫net01,并指定gid为2000
grep 'net01' /etc/group //查看/etc/group中组net01信息 net01:x:2000:
修改组
[root@linux-server ~]#groupmod 参数 组名
-g:修改组的 gid
-n:修改组名
[root@linux-server ~]#groupmod -g 2222 grp1 ,grp1组GID改为2222
[root@linux-server ~]#groupmod -n 新组名 grp1
删除组
[root@linux-server ~]# groupdel net01 #删除组 net01
注意:用户的主属组不能删除
查看组
[root@linux-server ~]#cat /etc/group
组名:代表组密码: gid:组员
每一个用户都必须有一个且必须有一个主组,可以有多个附属组,也可以没有附属组。
UID 主属组 主属组之外属于的其他组
创建用户时如果没有手动指定主组,系统会默认给用户创建一个同名的主组。
可登录shell /bin/bash /sbin/nolgin
用户
/etc/passwd ---->查看账户是否存在的文件
/home/ ---->用户的家目录,每创建一个用户会在/home目录下面创建对应的目录
/etc/shadow --->用户的密码文件
/etc/passwd文件详解--案例:
此文件里面除了密码字段能删除不能直接修改之外,其他字段全部都能直接修改
2.3.创建用户(带有选项)
[root@linux-server ~]# useradd user02 -u 503 //指定uid为503
[root@linux-server ~]# useradd user05 -s /sbin/nologin //创建用户并指定shell
[root@linux-server ~]# useradd user07 -G it,fd //创建用户,指定附加组
[root@linux-server ~]# useradd -g 1003 user8 #指定用户的主属组为1003组。
[root@linux-server ~]# useradd user10 -u 4000 -s /sbin/nologin
2.4删除用户
[root@linux-server ~]# userdel -r user02 //删除用户user2,同时删除用户家目录
2.5用户密码
[root@linux-server ~]# passwd alice #root用户可以给任何用户设置密码
[root@linux-server ~]# passwd #root用户给自己设置密码
[root@linux-server ~]# su - alice
[alice@linux-server ~]$ passwd #普通用户只能给自己修改密码,而且必须提供原密码
2.6用户操作
1.修改用户名:
-l
[root@linux-server ~]# usermod -l NEW_name user8
[root@linux-server ~]# id user8
id: user8:无此用户
2.修改GID:
-g
[root@linux-server ~]# id user10
uid=1000(user10) gid=1000(tom) groups=1000(tom)
[root@linux-server ~]# usermod user10 -g new_gid #gid需要提前存在
3.修改UID
-u
[root@linux-server ~]# usermod -u newuid jack
[root@linux-server ~]# id jack
uid=1005(jack) gid=1004(jack) groups=1004(jack)
4.修改用户的登录shell
-s
[root@linux-server ~]# usermod -s /sbin/nologin user07 #修改用户的登录shell
组成员管理。 注意:只针对已存在的用户
1.给组添加账户
-a
[root@linux-server ~]# gpasswd -a user10 grp2
Adding user user10 to group grp2
2.同时添加多个用户到组
-M:members成员的缩写
[root@linux-server ~]# gpasswd -M tom,alice it
如果想要追加用户,则用-M时候,原用户必须写上,否则原用户会背覆盖。
3.从组删除用户
-d
[root@linux-server ~]# gpasswd -d user07 hr
Removing user user07 from group hr