Linux内核4大主要功能:
内存管理
进程管理
设备管理
文件系统管理
Linux系统启动的进程和脚本管理
1./etc/inittab 管理系统开机时会自动启动的进程
2./etc/init.d 管理开机时启动或停止某个应用的脚本放在这个目录下,/etc/rcX.d目录在启动时,所有加载的脚本都是init.d下脚本的link
Linux 命令集合
1.ipcs -m 查看系统上的当前共享内存页面
2.cp -R dir1 dir2: 递归的复制dir1到dir2
cp -f test* dir2:将所有以test开头的文件复制到dir2,-f参数用来强制覆盖dir2目录中已有的同名文件,而不会提示用户
cp -a old/. new/:将old目录下的所有文件拷贝到new,包括隐藏文件
cp -l test1 test4: 创建了test1的硬链接文件test4,实际上二者标示的是同一个文件,因二者的节点号是相同的
cp -s test1 test5:创建了test1的软链接文件test5。链接文件只要存储源文件的信息,并不需要存储源文件中的数据
ln -s test1 test5 软链接 ln -l test1 test4 可以达到和上述类似的效果
- rm -rf dir2:删除dir2目录及其子目录和文件 r递归 f不提示
- stat test1:查看文件统计信息
- file test1:查看文件类型,包括ASCII文本文件;Shell脚本文件;二进制可执行文件
- cat -n 1.txt 查看1.txt的内容,且给文本的每行加上行号
cat -b 1.txt 与上述指令的区别,只在文本非空白行加上行号
cat -s 1.txt 压缩文本中连续的多个空白行为一个空白行
more 1.tx 查看文本文件的内容,空格键可以翻页; 回车键可以显示下一行
- ps -aux:可以查看当前系统所有进程的详细信息
ps l: 查看当前控制台下属于当前用户的进程信息
可以在上述指令后增加参数 - -forest,可以看到进程之间的启动关系
进程信息中STAT列含义如下:
<:该进程运行在高优先级
N:该进程运行在低优先级
L:该进程有页面锁定在内存中
s:该进程是个控制进程
l:该进程是多线程的
+:该进程运行在前端
- top指令设置刷新间隔为2秒: top -d 2
- df -h: 显示某个设备上还有多少磁盘空间
- du -h: 显示某一个目录下各个子目录的空间
- printenv:打印当前shell所在的全局变量
- set:显示为某个特定进程设置的所有环境变量(包括全局变量)
- export 变量名:可以导出当前的局部变量成为全局变量 如:export test
- 变量定义注意事项:环境变量名称、等号和值之间没有空格;如果赋值一个含有空格的字符串,必须用单引号将字符串扩起来
15. unset:删除环境变量,如:unset test. 注意:在shell子进程中unset的全局环境变量,在父进程中该环境变量依然有效。
- PATH:定义了命令行输入命令的搜索路径。
- /etc/profile 是每个shell启动时,默认的主启动文件
- 每个用户的shell启动脚本,有如下三者中的一种:$HOME/.bash_profile $HOME/.bash_login $HOME/.profile 这三个文件会加载$HOME目录下的.bashrc的启动脚本,.bashrc会加载/etc目录下的bashrc文件,同时$/HOME/.bashrc可以作为用户自定义脚本执行的地方。
- alias -p 可以查看已有的命令别名列表
- 查看Flash分区信息:cat /proc/mtd(显示分区名称、大小) cat /proc/partition(显示block)
- 在shell中显示提示而不换行,如:echo -n “This is a test string: ”
- 在shell中显示$符号,需要按照转义处理。如:echo “test print \$15”
- 在shell中使用反引号,可以获取命令的输出结果,然后赋值给一个变量。如:test=`date` test变量内容即为date的输出
- IFS:内部字段分隔符,该环境变量定义了bash shell用作字段分隔符的一系列字符。可以如下方式使用该变量:
IFS.OLD=$IFS
IFS=$’\n’
<……use the new IFS value in code>
IFS=$IFS.OLD
- $*变量:把所有参数当成一个参数,而不是多个参数; $@变量:会单独处理每个参数,所有参数当做同一字符串中的多个独立的单词
- 最后一个参数的表现方式:
params=$#
echo the last parameter is $params
echo the last parameter is ${!#}
- 使用$和方括号将数学表达式圈起来:var1=$[1+(2*5)]
- bc:浮点计算器
- $?: 该变量用来保存上个执行命令的退出状态码,退出码0,表示命令成功结束;非0,表示命令异常结束
- exit:该命令可以在shell结束时,指定一个退出状态码。该值取值范围0~255,如果指定返回大于255,会被系统自动取模后的结果,作为退出状态码
- if-then语句格式一:
if command
then
commands
fi
- if-then语句格式二(在command之后增加一个分号):
if command: then
commands
fi
- if-then-else格式:
if command
then
commands
else
commands
fi
- 嵌套if( elif )
if command1
then
commands
elif command2
then
commands
fi
- test:上述if的条件判断都是根据命令的执行退出状态码来执行,如果想执行条件判断,需要使用test命令,或者使用[ ]
- if条件判断命令格式一:
if test condition
then
commands
fi
- if条件判断命令格式二:
if [ condition ]
then
commands
fi
- test命令可以判断3类条件:数值比较、字符串比较、文件比较
- test数值比较功能:
n1 -eq n2 检查n1是否等于n2
n1 -ge n2 检查n1是否大于或等于n2
n1 -gt n2 检查n1是否大于n2
n1 -le n2 检查n1是否小于或等于n2
n1 -lt n2 检查n1是否小于n2
n1 -ne n2 检查n1是否不等于n2
- test字符串比较功能:
str1 = str2 检查str1是否与str2相同
str1 != str2 检查str1是否与str2不同
str1 < str2 检查str1是否比str2小(在使用时,需要对于符号转义,如:if [ $val1 \< $val2 ])
str1 > str2 检查str1是否比str2大(在使用时,需要对于符号转义,如:if [ $val1 \> $val2 ])
-n str1 检查str1的长度是否大于0
-z str1 检查str1的长度是否为0
注:在test命令中,大写字母会小于小写字母,这是因为test使用标准ASCII顺序,即小写字母的ASCII值会大于大写字母的ASCII值
sort命令排序时,小写字母的会排在前面