上午:
磁盘管理:
df 查看磁盘分区
fdisk -l
lsblk
du 查看文件实际占用的磁盘空间
-h 显示单位
挂载:
mount 要挂载的设备 挂载点 一般挂载到/mnt 可以在/media/下查看
umount 卸载
文本处理:
head 显示前n行
tail 显示末尾n行
cut 显示列
sort 排序
head -n lines(10)file 显示文件的前n行(不带选项时,则显示前10行)
tail -n lines(10)file 显示文件末尾n行
tee file 将标准输入的数据同时放到file和标准输出
------------------------------------------------------------
cut 使用那个文件的某些列
cut -d: -f1 /etc/passwd
-f表示第几列
-d 分割符
例如:cut -f1,3 test.txt
(-f1,3表示第一列和第三列)
-----------------------------------------------------------
sort 文本排序
-t 分割
-k 指从第1列开始(-k3表示第三列)
-n 数字方式排序
-r 从大到小排序
例如: sort -t: -k3n /etc/passwd | tail -n 3
sort -t: -k3n /etc/passwd | tail -n 3 | cut -d: -f3
du /etc/ | sort -n -r | head -n3 | cut -f1
-------------------------------------------------------------
uniq 去掉相邻的重复行
cut -d: -f7 /etc/passwd | sort | uniq
管道文件的创建:
mkfifo 创建管道文件
mkfifo mh.p 创建一个mh.p管道文件
echo "this is maomaochong" > mh.p
(这时候没有写进mh.p文件中)
必须在另外一个终端中查看一下mh.p文件才会写进mh.p
cat mh.p
(这个时候就写进去了字符串了)
(管道原理是有进有出,这事我自己理解的,为了好记忆)
skynet nuduo
正则表达式:
grep "g$" test.txt (过滤空行)
grep "^e" test.txt 以e开头的行
* 任意多个字符
. 一个字符
.* 任意一个或多个字符
\< \>
例如:\<t..s\> 表示以t开头以s结尾,中间右俩个字符
\<t.*s\> 表示以t开头以s结尾,中间有一个或多个字符
$ 行尾
^ 行首
grep "^$" test.txt 找空行
grep "^$" test.txt | wc -l 找空行的个数
grep
-v 反向过滤(把没有过滤出来的东西显示出来)
例如:grep “^$” test.txt -v
a\{3,\} a连续重复至少3次
[0-9,a] 显示有0-9的行及带a的行
[A-Z] 只显示A-Z的字符的行
grep "#" /etc/bashrc -v | grep "^$" -v 去掉文件中的注释和空行后显示
输入输出重定向: >
0 stdin 标准输入
1 stdout 标准输出
2 stderr 标注出错
输入: 数据来源
输出: 数据的去向
如果改变了输入输出的方向,叫重定向
1> 输出重定向
>> 追加方式
cat 1day.c >> 2day.c
2> 错误重定向
find / -name "*.h" > my.txt 2>&1
找到的.h文件放到my.txt中并让找到的错误也放到1>中
如果写成2> 1 那么久生成了文件名为1的文件
(为了不让生成文件名为1的文件,则写个取地址符)
2> /dev/null 黑洞文件
< 输入重定向
例:read aa < mh.c
echo $aa
(只可以显示mh.c中的一行)
<< 等待输入,直到遇到<<后面的内容或ctrl+d才输出
例如:cat < fist.c << EOF
下午:
文件:
chmod 修改权限
r w x s t
u | | | | +----粘添位 /tmp/
g | | | +------用户设置位
o | | +--------可执行
a | +----------写
+------------读
+
-
=
a+x 把所有的加上x权限
执行一个程序从在两个用户
实际用户
有效用户
**-rwsrwxrwx. 1 root root 38 Jul 8 14:34 fist.sh
* 其中s位用户设置位,如果在组后面有s位,为组设置位,**
chmod 04777 fist.sh
(其实在0后面有四位数字,当0后面的第一个数字为4时,就有s权限)
作用为:可以使其他用户暂时有root权限
chmod u+s fist.c
chmod o+t fist.c
创建文件受umask的影响:
touch mahao
(创建文件的权限本来是666,然后和(~umask)相与)
umask 0022——-000 010 010
**umask 0000 更改umask的权限** 110 110 110 --------本来权限 111 101 101 --------umask取反后的权限 --------------------- 110 100 100 --------相与后的权限
目录:
权限 作用
x 可以cd进去
r 可以在目录中ls
w 可以创建和删除
t 可以创建和删除自己的文件,其他人不可以删除另一个人的文件
进程管理:
ps
ps -aux
ps -ef
ps -el
kill 发送信息kill -l
kill pid
killall pname(进程名字)
skill 干掉用户
top 和windows下资源管理器一样的功能
pri: -20 --- 19
最高------最低
renice pri pid 调整优先级
nice -n 数值 进程名 以n优先级来启动进程
ps -ef
ps -ef | grep a.out
ps -ef | grep a.out | grep -v grep
前台和后台:
(首先执行a.out,然后ctrl+z)
ctrl + z 将前台程序转到后台
fg %i 让后台程序转到前台
jobs 查看后台程序
bg %i 让后台程序运行 (i是进程的编号)
./a.out & 以后台方式运行
nohup ./a.out & 关闭shell终端,程序并不退出