cat file1,file2 一次性显示多个文件
eg: cat /etc/hosts
cat /var/log/messages 这样东西比较多的时候,上面的内容看不到
需要这些快捷键,上下翻页 shift+pageUP/DOWN,Framebuffer
cat -n 可以显示行号
cat -E 显示文本文件的换行符
$ 表示一行结束的符号
more 查看文本文件 支持上下翻页 但一次只显示一屏 空格向下翻一屏 b键向上翻 enter向下翻一行
less 文件名 支持向前向后翻页 space/b enter/k
支持特殊字符串的查找 /string 查找到最近一个 想再找一个n(next)
想回到之前一个N(next)
?string n N
q键表示退出
head 文件名 显示文件的前几行 默认显示前10行
-n 前n行
tail 文件名 显示文件尾部几行 默认显示10行
-n 尾部n行
-f
eg tail /var/log/message 显示10行退出
tail -f /var/log/message 显示10行不退出
直到按ctrl+c退出
tac 所有文件反过来显示
命令 选项 参数
COMMAND [POTION] [ARGU]
命令帮助
#command --help
-help表示 -h-e-l-p,所以是不一样的
内部命令的帮助信息
#help command
#man COMMAND
命令的(文本)手册文件,压缩后存储,/usr/share/man
man less
命令手册是分章节,8个章节
第一个章节、user commands 普通用户命令
二 system calls 系统调用
三 library calls 库调用
四 special files 设备文件信息
五 file formats 文件格式
六 games
七 miscellaneous 杂项
八 administrative commands 管理员命令
man passwd
man -k passwd 从whatis里面搜索匹配passwd的字符全挑出来
eg makepasswd
man man
man -k passwd
q键表示退出
[]:可选
<>:必须有
file...:可以有多个
-x|y|z:从中选一
[-x|y|z] 可选一个 可不选
<-x|y|z> 必选一个
-abc 三者联合使用
man 5 passwd 显示第五个章节的passwd信息,命令
whatis COMMAND 告诉你命令在哪些章节有
eg whatis passwd
执行这个命令 如果遍历一遍很麻烦,系统中用 数据库
这个命令是 makewhatis:生成数据库
查看man命令
man man
-M 指定路径(path)
#man info
#info passwd 查找info,获得补充信息
每一个外部命令:
README
INSTALL
COPYRIGHT
文档doc,/usr/share/doc
FAQ(经常被问答的问题)
kbase。redhat。com红帽官方 问题库
date 显示或设置系统日期和时间 shutdown 关机或重启 cal 日历 ifconfig 接口的配置信息
date如何修改当前系统时间-s或者date 时间,如何显示当前日期date +%F或date +%D,如何显示当前时间date +%T,如何只显示当前的小时%H 分钟%M 秒%S date +%H-&M-%S或date “+%H-&M-%S”
shutdown如何关机-h,如何重启-r
shutdown -h now 或 shutdown -h +0 都表示立即关机
shutdown -h +10 十秒以后关机
cal如何显示2012年12月
cal 2011 显示2011年所有月份
cal 12 2011 显示2011年12月份
ifconfig
ifconfig ethX ip/MASK
Ifconfig etn0 172.16.10.100/16
ssh协议:tcp 22号端口
putty
secureCRT
Xmanager
用户、组、权限:
认证机制:确认用户就是所生成的用户
进程:是资源的分派单位
每一个进程都是在特定用户的
用户
用户账号:root,student
linux:用户ID号,简称UID
十进制整数 0-65535 与账号一一对应
用户类别:
管理员:root,0
系统用户:维护系统运行,1-499
普通用户:500-60000
nobody:-1 表示来宾账号(相当于window中的guest)
Linux支持多种shell:
GUI:可有可无,常见的流行的系统:gnome,KDE,xface
CLI:bash(默认),sh,ksh,zsh,csh,tcsh,ash
/etc/passwd 纯文本文件 每一行标示一个用户
/etc/shadow 纯文本文件,影子口令(加密的,单向的),存放用户密码
组:分配权限的容器,简称GID
基本组:每一个用户建立起来之后都有一个基本组
附加组(额外组):用户可以属于多个组,不常用的组
/etc/group 存放所有组的安全信息
临时切换组到另一个组:newgrp
组的密码放在/etc/gshadow
文件权限:
每一个文件都有权限模型mode:属主(所有者)和属组(所属的组)
权限
文件类型:普通文件 用f表示 但是在ls命令的显示结果中,用-表示
链接文件 l 指的是符号连接文件
目录文件 d
块设备 b
字符设备 c
套接字文件 s
命名管道 p
9位权限:
--- --- ---
(u)(g)(o)
r:读 表示读的话rrr
w:写
x:执行
文件权限:
r:查看
w:编辑,修改
x:运行
目录权限:
r:ls查看,不能使用ls -l,也不能cd进去
w:在目录中创建文件
x:cd进去
这三种权限的组合:
rwx:
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
640 rw-r-----
rw-rw-r-- root root a.txt
(属主)(属组)
jerry有写权限
1.让他成为属主
2.让他加入root组;把文件的属组改为他所属的组,mygrp
3.r--,rw-
useradd USERNAME 创建用户
-u UID 制定用户ID
-g GID (此组必须事先存在)
-c “COMMENT”
-d /path/to/somewhere
-s 指定用户shell的种类
-G group(组必须事先存在,可以指多个,用逗号隔开)
groupadd GROUPNAME
-g GID 组的ID号
eg groupadd -g 100 dba
tail -1 /etc/group
useradd -g dba oracle
id oracle
冒号是分隔符,表示有几个段落
passwd [USERNAME]
passwd -l 用户名 锁定
passwd -u 用户名 解锁
--stdin 从标准输入读入密码
echo "string" 回显字符串
echo "radhat"
echo "radhat"|passwd --stdin mysql 把mysql的密码改为redhat
userdel USERNAME
-r
groupdel GRPNAME
bc 是计算器
0
9999
7 离密码还有多长时间,就要提醒用户
倒是第三段
倒数第二天到期锁定时间
倒数第一段预留段
usermod 修改用户账号的属性
-u 用户ID
-g 组
-G 附加组后面再加几个组
-s 用户shell
-c 改用户注释
-l 修改用户名
-e 用户账号的有效期限,格式yy-mm-dd
-f 用户账号过期时
-d 改变用户家目录(创建一个新的空目录,用户弄过来)-m 全部挪过来
权限管理:
mode:
u,g
perm:ugo
a.txt,u:root,g:root,perm:664
jerry,write
chown USER FILE1,。。。改变属主
-R 把目录下所有属主都改了
chgrp GROUP FILE1,。。。改变属组
-R 把目录下所有属组都改了
chown USER:GROUP FILE,。。。
chown USER.GROUP FILE,。。。
只改属组 chown :GROUP FILE
--reference=
chown --reference=A B 把B的属主属组改的和A一样
改变权限:
chmod [option]mode,mode,... FILE,...
chmod nnn(八进制) FILE 把三个权限全改了
chmod u|g|o|a=mode FILE,。。。
chmod u|g|o|a +|- mode FILE,。。。
shell:
1、命令行编辑
Ctrl+a 光标到行首
Ctrl+e 光标到行尾
Ctrl+u 光标到行首删除
Ctrl+k 光标到行尾删除
Ctrl+arrow
2、globbing:文件名通配
*:任意长度的任意字符
a*b,aab
?:任意单个字符
a?b,aab,ayb
[]:指定范围内的任意字符,[abc][0-9][a-z][A-Z]
[:lower:][:upper:][[:digit:]]
[^a-z]
a[a-z]b
/etc/pass
3、命令行展开
~
cd ~redhat
{}
x/y x/z x/y/a1 x/z/b1 m/n
mkdir -p {x/{y/a1,z/b1},m/n}
x_y,x_z,m_y,m_z
mkdir -v (x,m)_(y,z)
$(),``
4、如何避免字符展开
a*b
ls a*b
\ 避免一个字符表示通配的意义
使用命令别名
ll=ls -l
alias lis=clear 定义别名
unalias 撤销别名
\+别名 表示原来的命令
bat,批处理
shell
nano 文件名
bash
user1
user2
user3
显示创建完成,并显示时间
1、使用一个命令显示/etc目录中所有以一个小写字母开头而后紧跟一个数字后再跟任意字符的文件的文件类型
ls -l [a-z][0-9]* /etc
2、以一个命令在/tmp目录创建以下目录:
myroot, myroot/etc, myroot/etc/rc.d, myroot/etc/init.d, myroot/usr, myroot/usr/local, myroot/var, myroot/var/log, myroot/proc, myroot/sys, myroot/mnt, myroot/media, myroot/lib, myroot/boot, myroot/boot/grub
mkdir -pv /tmp/{myroot/{etc/{rc.d,init.d},usr/local,var/log,proc,sys,mnt,media,lib,boot/grub}}
3、以一个命令显示当前系统上所有可用shell对应的可执行文件的文件内容类型;
4、创建各一个名字为"a*b","a b", "$ab", "a?b"的文件(文件名为引号内的内容);
touch a*b "a b" '$ab' 'a?b'
写一个脚本:
1、创建目录/tmp/scripts
mkdir -pv /tmp/scripts
2、切换工作目录至此目录中
cd /tmp/scripts
3、复制/etc/pam.d目录至当前目录,并重命令为test
cp -r /etc/pam.d /tmp/scripts/test
4、将当前目录中的test及其里面的文件和子目录的属主改为redhat
chown -R redhat test
5、将test及其子目录中的文件的其它用户的权限改为没有任何权限
chmod -R o=--- test
写一个脚本:
1、显示当前系统日期和时间,而后创建目录/tmp/lstest
date +%F-%H-%M-%S
mkdir -pv /tmp/lstest
2、切换工作目录至/tmp/lstest
cd /tmp/lstest
3、创建目录a1d, b56e, 6test
mkdir a1d b56e 6test
4、创建空文件xy, x2y, 732
touch xy x2y 732
5、列出当前目录下以a、x或者6开头的文件或目录;
ls [ax6]*
6、列出当前目录下以字母开头,后跟一个任意数字,而后跟任意长度字符的文件或目录;
ls [a-zA-Z][0-9]*
执行 bash !$