Unix/Linu命令笔记总结

onion:洋葱模型图
操作系统组成:
1)内核(kernel):管理硬件设备、内存、进程...
交换分区==虚拟内存
守护进程、精灵进程==服务进程
2)外壳(shell)
su --》普通用户切换到超级用户
root
3)文件系统(file system)
绝对路径:以/开始
相对路径:以当前所在路径为参照物
bin -->binary
var -->variable
df -->查看磁盘分区,有几个/dev/sda...设备文件,就代表有几个分区;一般不记设备文件名,而记挂载点的名字

cat /etc/passwd -->读文件内容
每一行代表一个用户的信息
用户名:X(密文占位符):UID:GID:备注:家目录:默认shell

/etc/shadow -->加密密文
/etc/group -->组信息
root的id为0

命令行语法
命令 选项  参数
1)空格作为分隔符
2)命令行不超过256个字符
3)大小写敏感

clear -->清屏,cls
pwd -->打印工作目录(当前路径),默认在家目录
cd -->改变工作目录
..代表父目录,.代表当前目录,无参代表回家

ls 选项 参数(路径)
以.开始的文件是隐藏文件
r:read,w:write,x:eXecute
-a:查看隐藏文件
-l:显示详细列表信息
-t:按时间排序
-R:迭代显示
-F:查看文件类型
无表示普通文本文件,/表示目录,@表示软链接,*表示可执行程序

角色
u:user
g:group
o:other
a:all

chmod:change mode
拥有者加执行权,同组、其他组去掉读权限
chmod u+x,go-r a.txt

s权限:临时提升可执行程序调用者的权限
设置UID:s加在拥有者上
    chmod u+s a.txt
    chmod 4755 a.txt
设置GID:s加在同组人上
    chmod g+s a.txt
     chmod 2755 a.txt

t权限:只针对目录
homework-->提交作业共享目录777
具有t权限的目录,删除文件时:
1)root不受限制
2)目录的拥有者不受限制
3)目录下文件的拥有者删除自己的文件不受限制
chmod a+t dir
chmod 1777 dir

touch作用:
1)文件不存在,新建空文件
2)文件已经存在,更新文件的最后访问、修改时间

mkdir创建目录,-p强制创建多级目录
~代表家目录
backup:.bak一般是备份文件

cp拷贝:
1)拷贝文件内容到另一个文件
2)拷贝文件到目录
3)拷贝目录到目录(-r)

mv:
1)剪切(移动)文件到目录
2)剪切(移动)目录到目录
3)重命名文件或目录

rm:
1)删除文件
2)删除目录(-r)

查看帮助文档
command --help(Linux推荐,信息量小)
man command
info command

元字符:有特殊意义的字符
*代表0个或多个字符
?代表单一字符
[]给定一个字符集合,从中匹配一个字符位置
calendar:日历
;连接多个命令,命令间没有因果关系,顺序执行
|连接多个命令,前面命令的输出结果作为后面命令的输入内容
|more分屏显示

重定向命令的输出结果到文件而非屏幕,覆盖方式
cal 10 2004 > a.txt

重定向命令的输出结果到文件而非屏幕,追加方式

cal 08 2008 >> a.txt

<重定向命令的输入方向从键盘到文件

cat:
1)读文件内容,但不会分屏显示
2)一次可以读多个文件的内容
cat a.txt b.txt > c.txt ==>合并文件
cat /dev/null > a.txt ==>清空文件内容
/dev/null:UNIX黑洞
...>/dev/null ==>丢弃命令输出结果
: > a.txt ==>清空文件内容
\续行符:命令未完下行继续

more:
1)读文件内容,一次一个屏幕
2)一次可以读多个文件的内容

head、tail:读文件的前几行、尾几行
head -10 /etc/passwd
tail -5 /etc/passwd

vi编辑器
3种模式:命令模式、输入模式、最底行模式
k、j、h、l:上下左右移动光标
i:光标当前位置插入内容
a:光标下一位置插入内容
o:光标下一行插入内容
O(shift+o):光标上一行插入内容
x:删除一个字符
dd:删除一行
r:替换一个字符
yw:拷贝单词
yy:拷贝行
p:粘贴
:w 存盘
:w newfile 存成新文件
:wq 存盘退出Vi
:q! 强行退出不存盘
Join
0 到行头
$ 到行尾
:1,$s/旧串/新串/g
替换全文(或 :%s/旧串/新串/g)

查看用户:
1)id:查看用户UID、GID
2)查看所有在线用户:users、who、w(信息量越来越大)
3)查看当前用户:whoami、who am i

find:查找文件的路径
find / -name '文件名'
find . -name
find . -type f -atime -1 -exec rm {}\;
find . -type f -atime -1|xargs rm

grep:按照指定字符串到文件中搜索包含该字符串的每一行内容
-i:忽略搜索字符串的大小写
-v:搜索结果反转
查询服务器上正在执行vi操作的所有用户的信息
w | grep -i vi

wc:word count,统计单词
查询服务器上正在执行vi操作的用户的个数
w | grep -i vi | wc -l

ps:查看进程
ps -ef | more
ps -ef | grep ora
top:Linux中查看进程实时运行情况

kill:杀死进程
&:将任务放到后台运行
jobs:查看后台任务
bg %jobid:前台任务调入后台(要先ctrl+z)
fg %jobid:后台任务调入前台
ctrl+c:结束前台任务
ctrl+z:挂起前台任务

ping:查看网络是否畅通
ifconfig:查看网卡信息

IP:唯一识别网络中的计算机
端口号:唯一识别同一计算机上的网络程序
ftp:21
telnet:23
smtp:25
http:80
Tomcat:8080
MYSQL:3306
Oracle:1521
...

ftp命令使用:
1)进入本机上传、下载文件的目录
2)执行ftp 172.16.7.250
3)设置传输模式:asc/bin
4)关闭提示功能:prompt off
5)上传、下载文件:put、get、mput、mget
6)关闭连接:bye

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时目录位置、系统目录位置、第三方应用软件的位置等
JAVA_HOME
CLASSPATH
PATH

初始化文件有两个级别
1)用户级别:只对当前用户有效(~/.bashrc)
2)系统级别:对所有用户都有效(/etc/profile)

定义环境变量:variable=value
打印环境变量:echo $variable_name
PS1:系统环境变量,表示主提示符

使配置生效:source ~/.bashrc
``反引号,用来取命令的执行结果

PATH:用来指定可执行程序的搜索路径(从左往右依次搜索,常用命令的路径最后配置在最左边)
which:获取可执行程序的全路径,只在PATH范围内搜索
whereis:获取可执行程序的全路径(信息量更大)

history:查看历史命令,通过!调用历史命令
alias:给命令取别名
设置别名:alias h=history
取消别名:unlias h
查看别名:alias

umask:权限掩码,控制新建文件、目录默认权限
IP:172.16.7.250,网络地址+主机地址
子网掩码:255.255.255.0
目录默认权限:777-umask值
文件默认权限:777-umask值后,去掉执行权限

面试题:umask值为033,问新建目录、文件的默认权限?
目录:744
文件:644

.bat:批处理文件,将一批dos命令写入文件
.sh:shell脚本文件,将一批shello命令写入文件,给文件赋予执行权限,调用文件就会执行文件中所有shell命令

Unix/Linu

我来吐槽

*

*