用户
whoami:可以查看当前登录的用户
chmod :u[表示用户],g表示同组用户,o表示其他用户,a是所有用户
比如给所有者加一个执行权限 chmod u+x hello.py
删除一个权限:chmod u-x hello.py
数字法:421
chmon:更改所有者 sudo wanghu hello.py
adduer 用户名:添加用户
文件操作
ls -l可以显示目录下文件信息:
-rw-rw-r-- 第一位是文件类型,rw-三位是所有者的权限,后面的rw-三位是同组用户的权限,最后面的r--是其他人的权限
linux系统文件类型:
普通文件:-
目录文件:d
字符设备文件:c
块设备文件:b
软连接:l
管道文件:p
套接字:s
rmdir:删除空目录【非空不能删】
非空删除:rm -r[r是递归的意思]
rm -f[强制删除]
cp:拷贝文件
cp -a 是将要拷贝文件和该文件下所有文件都进行拷贝【连权限都一块拷贝】
cat可以查看文件内容,比如cat hello.py可以看到py文件中的代码内容
tac是可以将文件内容倒着显示
more可以分屏显示,按空格翻页,回车是一行,退出用q
wc指令:计算文件的Betye数、字节数、或是列数、-c是统计Betye,-l是统计行
du:查看某个目录的大小(单位是M)
df:查看磁盘使用 --block-size=GB
查找
find:find 路径 文件名,查找某一类型文件 find 路径 type '文件类型'
find mylinuxfile/ -name '*.py'
find ./ -maxdepth 2 -name '*.py' 【maxdeptyh是搜索的深度】
find ./ -maxdepth 3 -size +2M -size -50M 【寻找文件大小在2~50M之内的文件】
find mylinuxfile/ -name 'hello*' -exec python3 {} \;
【{}是集合的意思,将查找到的hello打头的文件放入这个集合后,对集合内部进行python3操作,注意: {} \;两个符号之间有空格】
xargs也是执行命令,但比exec要好,会分片处理信息
find ./ maxdeth 2 -name hello.py | xargs python3;
find ./ -maxdeth 1 -type f -ok rm -r {} \; 用-ok在删除的时候会询问一下
grep:find是查找文件,grep是查找内容
grep "内容" 目录 -n[行号]
grep "张三" -r ./mylinuxfile/
./mylinuxfile/test.txt:张三
软硬连接
软连接:通过名字引用另外一个文件,想象成是windos系统下的快捷方式,可以快速访问目标文件。
ln -s 文件 文件名 ln -s hellow.py hellow.s
硬连接:硬链接是通过inode引用另外一个文件ln hellow.py hellow.h ,修改任意一个文件,另一个文件也会发生变化
进程管理
ps:监控后台进程工作情况
单独输入ps命令,只会显示和当前用户交互的进程
如果想显示不和当前用户交互的进程,输入:ps aux【a是all,u是user,x显示没有控制终端的进程】
ps aux | grep "yinyipe+"
安装包管理
apt-get
更新软件列表:apt-get update
apt-get install 软件名
卸载:apt-get remove 软件名
安装deb文件:sudo dpkg -i xxx.deb
压缩包
tar
tar -zcvf 要生成的压缩包名字 压缩材料
tar -zcvf myfile.tar.gz myfile
z指的就是giz命令,c是创建,v是显示压缩过程,f是文件名
gzip 文件名(压缩成gz格式),解压gunzip 文件名.gz
解压:tar -zxvf 压缩文件
rar
rar a -r newdir[生成压缩包的包名] dir[要压缩的东西]
解压unrar x newdir.rar
zip
zip -r dir.zip dir unzip dir.zip
vim
命令模式
命令直接退出ZZ
编辑i
光标的移动:
h:左
j:下
k:上
l:右
跳转指定行:
行+G
跳转文件首: gg
跳转文件尾:G
自动格式化程序:gg=G
如果代码比较长,不知道一个大括号的右括号在哪,可以选中左括号,然后按%
删除
删除单个字符:用x,而且还在命令模式,不会变成文本模式
一次性删除一个单词,dw,前提光标致于单词的首字母位置
删除光标至行尾:D
光标移动到行首:0
移动到行尾:$
替换某个字符,光标放在该字符上,按一下r再按其他字符
进入可视模式:按v
删除光标所在行:dd
复制
复制yy
粘贴:p
文本模式
文本到命令就是ESC
末行模式
末行就是在命令模式下输入冒号":",w是保存,q是退出
gcc编译
步骤:
1.预处理
展开宏,头文件,替换条件编译,删除注释、空白行等
gcc -E hello.c -o hello.i
2.编译
检查语法规范
gcc -S hello.c -o hello.s
3.汇编
将汇编指令翻译成机器语言
gcc -c hello.s -o hello.o
4.链接
生成a.out文件
如果头文件不在一个文件内,比如自己写了一个hello.h放在include目录下,上级目录有一个hello.c文件
gcc -I ./include hello.c -o hello
执行 ./hello
shell常用通配符