1. 普通用户切换到root用户的方法:su 示例
su root #切换用户
su - root #切换用户并改变环境变量
2. linux五种文件类型,主目录,工作目录(.),父目录(…),主要的系统目录(/root,/etc,/var,/usr/bin)
#linux五种文件类型
##普通文件、目录文件、链接文件、设备文件、管道文件
#主要系统目录
## /root ——> root用户主目录
## /etc ——> 存放所有的系统管理所需的配置文件和子目录
## /var ——> 存放经常被修改的目录及文件 如 日志文件
## /usr/bin ——> 系统用户使用的应用程序
3. 常用命令的使用方法,cat,more,ls,sort,cp,mv,cd,mkdir,rmdir,chmod,gzip,tar
#cat -n显示行号 -s多行空白合并为一行空白
cat -n hello.cpp #显示行号查看hello.cpp内容
cat -ns hello.cpp #显示行号,并排除连续多余空白行
cat test1 test2 > test3 #查找test1 test2的内容 并合并到test3中
#more -num一次显示行数 -s合并空白行 Enter向下默认一行 ctrl+f向下一屏 ctrl+b向上一屏 space向下一屏 q退出 =输出当前行号
more +20 test1.cpp #从第20行开始显示内容
#ls -a显示隐藏文件 -l详情显示
ls -a #当前目录下包括隐藏文件都列出来
ls -l 或 ll #列出详情
#sort -b忽略每行开始前的空格 -d处理英文,数字和空格,忽略其他 -m将几个排列好的文件合并 -n依据数值大小排序 -o排序后输出到指定文件
sort -b test1.cpp
sort -d test2.cpp
sort -m test1.cpp test2.cpp #注意这里合并只是打印输出合并 并不会对文件内容有影响
sort test1.sh -o test1.sh #排序后保存
#cp -r递归复制 -a全部复制 -f不提示 -i都提示
cp -r test/ newtest #将test目录下所有文件目录都复制到newtest目录
cp -f test/ newtest #覆盖不显示确认信息
#mv -f不提示 -i提示
mv aaa bbb #重命名
mv /usr/test/* . #移动到当前目录
#cd .当前目录 ..父目录 /root……绝对路径
cd .. #返回上一级目录
cd ./test #进入当前目录下的test目录
cd /root #进入管理员主目录
cd ~ #home目录
#mkdir -p递归
mkdir -p test/cpp #若没有p没得test则创建失败
#rmdir -p递归
rmdir -p test/cpp #注意:目录下必须没有文件才能删除,否则要用rm
#chmod u,g,o,a 所有者,同组成员,其他用户,所有用户 +-= 添加删除赋予权限 rwx 读写执行 777数字 r=4 w=2 x=1
chmod u+x test1.sh #拥有者添加执行权限
chmod g-r test1.sh #同组不可读
chmod 741 test1.sh #拥有者可读写执行 同组可读 其他可执行
#gzip -d解压 -v显示详情
gzip * #压缩目录下所有文件
gzip -d test1.sh.gz
#tar -czvf压缩 -xzvf解压
tar -czvf test.tar.gz test/*
tar -xzvf test.tar.gz
4. 磁盘分区及格式化方法
#输入命令
fdisk /dev/sdb
#输入m
m
#输入n
n
#输入p
p
#输入1 回车 回车
#输入w 回车
#格式化
mkfs -t ext4 /dev/sdb1
5. vi编辑器工作模式(p107)
#命令行模式 文本输入模式、末行模式
单击esc进入命令行 i进入文本输入 命令模式下输入:
6. 进程的基本状态,进程的执行模式,守护进程的特点,守护进程的启动方法(p135)
-
就绪状态和运行状态
-
可中断等待状态
-
不可中断等待状态
-
停止状态
-
僵死状态
执行模式 用户模式和内核模式
守护进程在程序启动时开始运行,在程序结束时停止运行,没有终端。
通过编写启动脚本的运行级别自动启动。
7. 周期性任务执行命令
1 * * * * ls
crontab job
8. shell 编程中,双引号,单引号,倒引号的作用及区别(p154)
#双引号解析
#单引号原样输出
#倒引号 执行结果作为 本括号内表达式的结果 比如`pwd`结果为当前位置
9. shell中用户变量的定义及赋值方法(p157)
略
10. shell中if结构,for循环,while循环,用户输入命令read的用法
ls -l | grep ^- | awk '{if($5<5*1024)print $9}' | xargs tar -czf backup.tar.gz
重点:
1. linux下的文件分为:普通文件、目录文件、链接文件、设备文件、管道文件
2. cat test1 test2 > test3 合并
3. sort text>result 排序输出
4. cat veglist fruitlist | sort > clist 排序v 和 f 并保存倒clist中
5. comm-12 只显示两文件都存在的 comm-23只显示第一个文件有第二个文件无的 comm-123 什么都不显示
6. chown wang hello.cpp 将hello的所有者更改为wang chown -R wang.users /his 将his目录及以下文件的所有者变为wang 属组为users
7. tar -czvf 压缩 tar -xzvf解压
8. 管理员 UID=0 GID=1
9. useradd -g root -d wang/ wang
10.usermod -g vip -u 5600 wang
11.userdel -r 连目录一起删除
12.groupmod -n oldname newname -g 101 #-n改名 -g gid
13.mkfs -t vfat /dev/sda1 分区格式化
素数
#!/bin/sh
# while 方式
i=1
while [ $i -le 100 ];
do
j=$[$i-1] #每次给j赋初值为i-1
while [ $j -gt 1 ];
do
if [ $[$i%$j] -eq 0 ];
then
break
fi
j=$[$j-1]
done
if [ $j -eq 1 ]; #只有当全部对比完没有找到因子的时候,j才等于1
then
echo $i
fi
i=$[$i+1]
done
输入数判断奇偶
#!/bin/sh
read -p "请输入一个数:" num
if [ $[$num%2] -eq 0 ]
then
echo "输入了一个偶数"
else
echo "输入了一个奇数"
fi
递归阶乘交互
#!/bin/sh
f(){
local i=$1
if [ $i -eq 0 ];then
echo 1
else
local j=`expr $i - 1`
local k=`f $j`
echo `expr $i \* $k`
fi
}
while true
do
read -p "请输入一个数字:" num
if [ $num = "q" ];then
break
fi
rtn=`f $num`
echo "${num}阶乘为${rtn}"
done