常用的Linux指令
查看当前进程:ps
执行退出:exit
查看当前路径指令:pwd
列出指定目录中的目录,以及文件:ls
ls
指令的参数:
-a
显示所有文件以及目录(.开头的隐藏文件也会列出)-l
除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出-r
将文件以相反次序显示(原定依英文字母次序)-t
将文件依建立时间之先后次序列出-A
同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)-F
在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”-R
若目录下有文件,则以下之文件亦皆依序列出
创建目录:mkdir
mkdir runoob #在工作目录下,建立一个名为 runoob 的子目录
mkdir -p runoob2/test #在工作目录下的 runoob2 目录中,建立一个名为 test 的子目录。若 runoob2 目录原本不存在,则建立一个。(注:本例若不加 -p 参数,且原本 runoob2 目录不存在,则产生错误。)
创建文件:
-
vi
或者vim
:vi file1.txt #直接创建并打开一个文件file1.txt
-
touch
touch file2.txt
-
echo
echo "this is a new file" > file3.txt #创建文件file3.txt并将this is a new file写入(说明:使用>指令覆盖文件原内容并重新输入内容,若文件不存在则创建文件。) echo "add contents" >>file3.txt #在已存在的文件补充写入新内容add contents(说明:使用>>指令向文件追加内容,原内容将保存。)
-
less
、more
、cat
cat 1.txt > 2.txt less 1.txt > 3.txt more 1.txt > 4.txt #三者都是将文件内容输出到标准输出,其中less和more可以分页显示,cat是显示全部。三者可以根据已经存在的文件创建新的文件。假设已经存在文件1.txt。
-
cd
cd > file3.txt #创建新的空文件file3.txt cd >> file4.txt #创建新的空文件file4.txt
复制文件的指令:
cp
cp –r test/ newtest #将当前目录 test/ 下的所有文件复制到新目录 newtest 下
查看文件内容的指令:
vi 文件名 #编辑方式查看,可修改 cat 文件名 #显示全部文件内容 more 文件名 #分页显示文件内容 less 文件名 #与 more 相似,更好的是可以往前翻页 tail 文件名 #仅查看尾部,还可以指定行数 head 文件名 #仅查看头部,还可以指定行数
移动文件的命令以及更改文件名的命令:
mv source_file(文件) dest_file(文件) #将源文件名 source_file 改为目标文件名dest_file mv source_file(文件) dest_directory(目录) #将文件 source_file 移动到目标目录dest_directory 中
删除文件命令:
rm -rf file/directory #删除当前目录下的所有文件及目录,并且是直接删除,无须逐一确认 rm -rf directory/ #删除目录 directory,不管该目录下是否有子目录或文件
查找文件内容用那个命令:
grep test *file #在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行 grep -r update /etc/acpi #查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件 grep -v test *test* #查找文件名中包含 test 的文件中不包含test 的行
查找文件用那个命令:
find . -name "*.c" #将当前目录及其子目录下所有文件后缀为 .c 的文件列出来 find . -ctime -20 #将当前目录及其子目录下所有最近 20 天内更新过的文件列出
cat命令:
cat -n textfile1 #把 textfile1 的文档内容加上行号后输入到屏幕 cat -n textfile1 > textfile2 #把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里 cat -b textfile1 textfile2 >> textfile3 #把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里 cat /dev/null > /etc/test.txt #清空 /etc/test.txt 文档内容
常用的GCC指令
预处理 -E
gcc -E test.c -o test.i #把预处理的结果导出到test.i文件
编译为汇编代码 -S
gcc -S test.i -o test.s #编译器将test.i翻译成汇编语言,并将结果存储在test.s文件中
汇编 -C
gcc -S test.i -o test.s #编译器将test.i翻译成汇编语言,并将结果存储在test.s文件中
链接 -O
gcc test.o -o test #将生成的目标文件test.o生成最终的可执行文件test
一步到位编译
gcc test.c -o test #将源文件test.c编译链接为可执行文件test
多文件编译
gcc test1.c test2.c -o test
警告处理
gcc -w test.c -o test # 忽略编译时的警告
gcc -Wall test.c -o test #编译后显示所有警告
gcc -Werror test.c -o test #在产生警告的地方停止编译
常用的GDB调试指令
gcc -g test.c -o test #编译时生成debug有关的程序信
gdb test #启动调试
help #查看命令帮助,具体命令查询在gdb中输入help + 命令,简写h
run #重新开始运行文件(run-text:加载文本文件,run-bin:加载二进制文件),简写r
start #单步执行,运行程序,停在第一执行语句
list #查看原代码(list-n,从第n行开始查看代码。list+ 函数名:查看具体函数),简写l
set #设置变量的值
next #单步调试(逐过程,函数直接执行),简写n
step #单步调试(逐语句:跳入自定义函数内部执行),简写s
backtrace #查看函数的调用的栈帧和层级关系,简写bt
frame #切换函数的栈帧,简写f
info #查看函数内部局部变量的数值,简写i
finish #结束当前函数,返回到函数调用点
continue #继续运行,简写c
print #打印值及地址,简写p
quit #退出gdb,简写q
break+num #在第num行设置断点,简写b
info breakpoints #查看当前设置的所有断点
delete breakpoints num #删除第num个断点,简写d
display #追踪查看具体变量值
undisplay #取消追踪观察变量
watch #被设置观察点的变量发生修改时,打印显示
i watch #显示观察点
enable breakpoints #启用断点
disable breakpoints #禁用断点
x #查看内存x/20xw 显示20个单元,16进制,4字节每单元
run argv[1] argv[2] #调试时命令行传参
set follow-fork-mode child #Makefile项目管理:选择跟踪父子进程(fork())
常用的驱动开发指令
加载/卸载驱动
insmod/modprobe #加载驱动
rmmod #卸载驱动
Linux驱动如何查看驱动模块中打印信息?
dmesg
如何查看内核中已有的字符设备的信息?
lsmod
如何查看正在使用的那些中断号?
cat /proc/interrupt