linux 学习笔记1

C语言按字节读取
fgetc




C语言按行读取
fgets




linux读取文件内容
more 文件名
cat是一下全部读取
ps -ef | grep name  根据名字显示进程




C语言字符串转成数字(在stdlib.h)
int atoi(const char *c)




文件权限:
读cat text.c
写vi text.c












10位权限字符(文件权限)
- 第一位是指是什么类型,是文件-,还是文件夹d
后9位是权限,前3个是对文件所有者的权限
中间3个是该用户组对文件的权限
后3个,代表其它用户对该文件的权限
r:读(read)  数字4
w:写(write) 数组2
x:执行(execute) 数字1
加起来是777     rwx
一般来讲是755






which chmod
chmod是个工具






给自己增加执行权限(u代表自己)
chmod u+x aa
给组用户加上x(g代表用户组)
chmod g+x aa
给其它用户加上x(o代表其它用户)
chmod o+x aa
减少权限就是-
chmod o-x aa


chmod -R 777 文件夹名






======================================
shell脚本


if [ aaa ====  ddddd ]
then
xxoo1
else
xxoo2
fi


文件判断:
-d 目录
-s 文件长度大于0,非空
-f 正规文件
-L 符号连接
-u 文件有suid位设置
-r 可读
-x 执行






转义换行
echo -e "abc\n111"
-e这个参数是转义


把输出加入文件
echo "asdad" > error.log


把输出追加到文件
echo "cccccc" > error.log


定义变量(定义变量的时候不能有空格,当想取shell变量的值时,需要在变量名前加上$字符,当所赋的值中间含有空格时,要加上引号)
ERR_LOGFILE='asdasdad'
输出变量
$ERR_LOGFILE




输出时间:
date +'%Y-%m-%d %H:%M:%S'








sed读取第一行内容
sed -n '1p' index.html


CURL提交(-d是带参数)
curl -d "password=123" http://www.jtthink.com/test/update.php


取该文件的第二行(-s是去掉提示)
curl http://www.jtthink.com/test/conf.txt -s | sed -n '2p'`




数字判断的一些命令
-gt是大于的意思 large than
-lt是小于 less than
-eq是等于 euqal
-ne是不等于 not equal
-ge是大于等于 large equal
-le是小于等于 less equal


#是SHELL脚本的注释


==================================================================
新建用户
useradd mengfanxin


修改密码
passwd 用户名


删除用户(-r是连用户的home目录一起删除)
userdel -r mengfanxin




查看有哪些用户组
cat /etc/group
cat /etc/shadow
cat /etc/passwd


修改用户权限及属性
usrmod
usermod -c 'hello' meng//加备注


usermod -s /sbin/nologin meng //默认登录不到操作系统


-c<备注> 修改备注
-d<登录目录> 修改用户登入时的目录
-e<有效期限> 修改账号的有效期限
-f<缓冲天数> 修改在密码过期后多少天即关闭该账号
-g<群组> 修改用户所属的群组
-G<群组> 修改用户所属的附加群组
-l<账号名称> 修改用户账号名称
-L 锁定用户密码,使密码无效
-s<shell> 修改用户登入后所使用的shell
-u<uid> 修改用户ID
-U 解除密码锁定


==================================================================
lesson 17




grep "meng" /etc/passwd
ls | grep "mengfanxin"
grep "meng" /etc/*




在shadow查找meng
grep "meng" /etc/shadow


列出包含she的文件夹和文件
ls | grep she


正则匹配A开头的
grep '^a' /etc/passwd
cat /etc/passwd | grep '^shenyi' -c


用--stdin来把123输入到passwd命令里
echo "123" | passwd god --stdin


vim下删除整行
ctrl+u


强大的标记
$#传递脚本的参数个数
$$脚本运行的当前进程ID号
$! 后台运行的最后一个进程的进程ID号
$@与$#相同,但是使用时加引号,并在引导中返回每个参数


$?显示最后命令的退出状态。0表示没有错误,其它任何值表明有错误(或执行不成功)


shell里写:
useradd $USER_NAME
if [ $? -eq 0 ] //这里这句就是指添加用户指令执行成功(判断上一条指定是否执行成功)
  then
    echo "succerss"
  else
    echo "faied"
fi


==============================================================
lesson 18 :


输出到文件
echo "aa" >a.txt
追加到文件
echo "bb" >b.txt
屏蔽错误(主要是用这个2,还有0和1,2好像是屏蔽错误提示)
echo "bb" 2>/dev/null


切换到mengfanxin用户
su -mengfanxin






如果这个文件不存在,则切换到god用户创建,再切换回来su -god -s 是执行SHELL
if [ ! -d /home/god/bin ]
  su -god -c "mkdir bin"
  echo "bin is created"
fi


执行某些操作,最好是切换到其它用户搞,直接用root开搞,安全性太差了。










列出进程
ps -ef
-A 列出所有进程
-u 查看制定用户的进程(ps -u root)


一般用 ps -ef 或者 ps -ef | grep xxx






脚本休眠
echo "start"
sleep 5
echo "end"
这个5,是停止5秒




C语言的睡眠:
#include <stdio.h>


int main()
{
  printf("start\n");
  sleep(5);
  printf("end\n");
}
编译gcc me.c -o me

































































































































































































































你可能感兴趣的:(linux 学习笔记1)