帮助手册命令 man
man命令:可以通过一些参数,快速查询linux帮助手册,并且格式化显示。
Linux 下修改 root 密码方法
passwd root
权限
chgrp :改变文件所属群组
chown -R:改变文件拥有者
chmod :改变文件的权限, SUID, SGID, SBIT等等的特性
su - user1 切换身份user1
查看服务
/etc/services
/etc/init.d/ 启动脚本处
/etc/* :各服务各自的配置文件
service --status-all 查看所有服务
常用目录
/etc 主要配置文件
/bin 常用执行文件
/sbin 重要的系统执行文件
/dev 存放设备文件
/dev/null 垃圾桶
/home 用户目录
/media /mnt 挂载外部装置
/opt 第三方协议软件 习惯放/usr/local
/proc 虚拟文件,存放内存数据:系统cpu、网络..
/ (root, 根目录): 与开机系统有关;
/usr (unix software resource):与软件安装/执行有关;
/usr/local/ 自己下载的软件安装目录
/var (variable): 与系统运作过程有关的常态性变动的文件:缓存、log等。
/etc/issue 配置开机画面显示
/etc/motd 配置登录显示
常用命令
双击tab 获取所有可能的命令,极其方便!
ls -alh list所有文件包括隐藏文件
set 获取所有变量,包含bash接口配置相关
echo $$ 当前shell的PID
echo $? 返回上个命令的执行结果
env/export 显示所有环境变量
echo $PATH 显示环境变量中的PATH
PATH=$PATH:/home/dmtsai/bin 增加目录到变量
export var1 使其变为环境变量,可以让子shell使用
echo $(uname -r) 显示系统版本
uname -a 显示系统架构
设置变量 name=justin
取消变量 unset name
命令中使用其他命令 $(command)
创建目录: mkdir /tmp/chapter7_1
修改属性: chown -R dmtsai:users /tmp/chapter7_1
修改权限: chmod -R 755 /tmp/chapter7_1
//SUID/SGID/SBIT 权限配置--> 要有x权限
4 为 SUID 暂时将具有该程序拥有者 (owner) 的权限;
2 为 SGID 暂时获得得该程序群组的支持
1 为 SBIT wx权限下,仅有自己与 root 才有权力删除该文件
观察文件类型: file
搜索命令完整路径: which
搜索文件:
whereis whereis 与 locate 是利用数据库来搜寻数据
updatedb 手动更新数据库
find 强大的搜寻命令,但时间花用的很大! 因为 find 是直接搜寻硬盘
df -h 获取目前挂载的设备,整体磁盘使用量
du -sh 获取文件所占容量
dumpe2fs 查询每个区段与 superblock 的信息
ln -s /etc/crontab crontab2 创建符号链接,类似windows 的快捷方式
read -p "Please keyin your name: " -t 30 named 读取键盘输入
declare 声明变量
ulimit -a 显示当前用户的数据限制值
last 显示登陆者信息
alias 显示当前所有的命令别名,设置别名
unalias 取消别名
history 使用过的命令历史
type -a 获取命令搜寻顺序
!comand 运行最近命令开头为command的命令
source/. 读入环境配置文件,可以直接在父程序运行脚本
//输入输出
标准输入 (stdin) :代码为 0 ,使用 < 或 << ;
标准输出 (stdout):代码为 1 ,使用 > 或 >> ;
标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;
重定向操作符(&>)将标准输出和错误输出同时送到同一文件
//pipe
|grep|cut|sort|uniq|wc
|tee test.txt 双向重导向,分送到文件去与屏幕stdout,可以让下个命令继续使用
- 减号 可以取用前一个命令的 stdout
//正则
grep '^ha' test.txt -n 单引号中使用正则
sed 将数据 standard input 进行取代、删除、新增、撷取特定行等
e.g: nl test.txt |sed '2,3d'
sed 's/要被取代的字串/新的字串/g'
printf 格式化输出
awk '条件类型1{动作1} 条件类型2{动作2} ...' filename 处理数据
diff/cmp 比对两个文件
//
test 检查工具, 判断文件属性等
文件系统
Linux 的正统文件系统则为 Ext2 (Linux second extended file system, ext2fs)这一个。此外,在默认的情况下,windows 操作系统是不会认识 Linux 的 Ext2 的。
inode 表 每个文件都仅会占用一个 inode 而已,记录文件的属性及该文件实际数据是放置在哪几号 block 内;
data block是用来放置文件内容数据地方,在 Ext2 文件系统中所支持的 block 大小有 1K, 2K 及 4K 三种而已
一般来说,我们将 inode table 与 data block 称为数据存放区域,至于其他例如 superblock、 block bitmap 与 inode bitmap 等区段就被称为 metadata (中介数据) 啰,因为 superblock, inode bitmap 及 block bitmap 的数据是经常变动的,每次新增、移除、编辑时都可能会影响到这三个部分的数据
Swap
- swap 的功能就是在应付物理内存不足的情况下所造成的内存延伸记录的功能。
- 当物理内存不够时,则某些在内存当中所占的程序会暂时被移动到 swap 当中,让物理内存可以被需要的程序来使用。另外,如果你的主机支持电源管理模式, 也就是说,你的 Linux 主机系统可以进入『休眠』模式的话,那么, 运行当中的程序状态则会被纪录到 swap 去,以作为『唤醒』主机的状态依据! 另外,有某些程序在运行时,本来就会利用 swap 的特性来存放一些数据段, 所以, swap 来是需要创建的!只是不需要太大!
vi
0/Home 移动到行前
$/End 移动到行尾
[Ctrl] + [f] 向下移动一页
[Ctrl] + [b] 向上移动一页
G 移动到这个档案的最后一行
gg/1G 移动到第一行
u 撤销
o 当前位置下创建一行
O 当前位置上创建一行
dd 删除光标所在行
x 删除光标后字符
X 删除光标前字符
yy 复制当前行
p 粘贴
J 当前行连接下一行
v 字符选择
V 行选择
ctrl+v 区块选择
y 复制选择
d 删除选择
/word 搜寻字符串 ,光标之上
?word 搜寻字符串,光标之下
n 继续搜索
vim 后面同时接好几个档案可同时开启
:n 编辑下一个档案
:N 编辑上一个档案
:files 列出目前这个 vim 的开启的所有档案
//多窗口
:sp [filename] 开启一个新窗口
[ctrl]+w+↓ 移到下方窗口
[ctrl]+w+↑ 移到上方窗口
Bash
/etc/shells 查看可用的shell
/etc/passwd 查看不同用户取得的默认shell
/.bash_history 这个隐藏目录保存了使用的命令历史
\+[Enter] 避免命令太长,多行使用
scripts
- date +%Y%m%d 获取今天日期
- script 的运行方式差异 (source, sh script, ./script)
善用判断式
- test
[ “VBird Tsai” == “VBird” ]
-e 该『档名』是否存在?(常用) -f 该『档名』是否存在且为文件(file)?(常用) -d 该『档名』是否存在且为目录(directory)?(常用) -a (and)两状况同时成立。 -o (or)两状况任何一个成立。 ! 反相状态,如 test ! -x file ,当 file 不具有 x 时,回传 true -eq 两数值相等 (equal) -ne 两数值不等 (not equal) -gt n1 大于 n2 (greater than) -lt n1 小于 n2 (less than) -ge n1 大于等于 n2 (greater than or equal) -le n1 小于等于 n2 (less than or equal)
Shell script 的默认变量(
0, 1…)条件判断式
//单条件 if [ 条件判断式 ]; then 当条件判断式成立时,可以进行的命令工作内容; fi //多条件 if [ 条件判断式一 ]; then 当条件判断式一成立时,可以进行的命令工作内容; elif [ 条件判断式二 ]; then 当条件判断式二成立时,可以进行的命令工作内容; else 当条件判断式一与二均不成立时,可以进行的命令工作内容; fi //case case $变量名称 in "第一个变量内容") 程序段 ;; "第二个变量内容") 程序段 ;; *) 不包含第一个变量内容与第二个变量内容的其他程序运行段 exit 1 ;; esac
循环
//满足条件才开始循环 while [ condition ] do 程序段落 done //满足才结束 until [ condition ] do 程序段落 done //固定循环 for var in con1 con2 con3 ... do 程序段 done for (( 初始值; 限制值; 运行步阶 )) do 程序段 done
函数
function fname() { 程序段 }
检查语法错误
sh [-nvx] scripts.sh
账号管理
- uid和gid
涉及目录
/etc/passwd /etc/group /etc/shadow groups 查看所有支持的群组 newgrp 有效群组的切换 w/who 查询已登录的用户 useradd 增加用户 参考: /etc/default/useradd /etc/login.defs /etc/skel/* passwd [用户] 修改用户密码 echo "abc543CC" | passwd --stdin vbird2 userdel -r home 删除用户 id [username] 查询uid和gid groupadd groupmod group 相关参数的修改 groupdel gpasswd 群组管理员功能 //acl 权限 setfacl getfacl filename //切换 su - username 或 su -l username 切换用户 su - -c "命令串" 只运行一次root命令 sudo 以其他用户的身份运行命令( /etc/sudoers 内的用户才能够运行 sudo 这个命令) e.g: sudo -u sshd touch /tmp/mysshd visudo 修改sudo配置 //使用者对话 write 使用者账号 [用户所在终端接口] 指定用户发送信息 wall [message] 对所有系统上面的用户传送简讯
PAM(Pluggable Authentication Modules 嵌入式授权模块)
- 用户输入指令,呼叫 PAM 模块进行验证
- PAM 模块会到 /etc/pam.d/ 找寻与程序 (passwd) 同名的配置文件
- 将验证结果 (成功、失败以及其他信息) 回传给用户指令程序
程序会根据 PAM 回传的结果决定下一个动作
检查工具
pwck 检查用户配置信息 grpck 检查用户组配置信息 pwconv 用户同步化将 /etc/passwd 内的账号与口令,移动到 /etc/shadow
配额 Quota
- 限制 filesystem的 容量等
涉及目录,命令
/etc/fstab /etc/mtab 文件系统是否支持配额 /etc/warnquota.conf 警告信息设置 quotaon -auvg 开启服务 quotaoff 关闭服务 edquota 编辑限制额度 -t 宽限时间 -u 用户 -g 用户组 quota -uvs myuser && quota -gvs myuser 查看配额 repquota -auvs 查看整个文件系统的配额
Raid 磁盘阵列
- 一个磁盘容量不够时,这种机制将多个较小的磁碟整合成为一个较大的磁碟装置, 便于使用
- fdisk 命令
定时任务
单次任务 at
/etc/init.d/atd restart chkconfig atd on 配置自动启动 /var/spool/at/ 日志记录 /etc/at.allow 使用者配置 /etc/at.deny 不能使用者配置 at -c n 查询第n个任务 at now + 5 minutes 创建任务 batch 23:00 2009-3-17 系统空间时开始任务 atq 查询所有单次任务 atrm n 将第n个任务删除
循环任务 crontab
/etc/crontab 系统任务 /usr/bin/crontab 用户任务 /etc/cron.allow /etc/cron.deny /var/spool/cron/[user] 任务创建日志记录 /var/log/cron 任务运行日志记录 crontab -e 编辑任务 e.g: 59 23 1 5 * mail kiki < /home/dmtsai/lover.txt crontab -l 查看所有任务 run-parts 遍历目录中所有文件运行 anacron 运行crontab 关机期间没有运行的任务
参考
- 鸟哥的私房菜