Linux常用命令

alias   给常用命令取别名

--> alias  c=’clear’  (给clear取别名为 c ) (临时修改)

==> 如果想要永久修改,那就把这个命令写入到终端的启动脚本 ~/.bashrc 的最后一行,然后运行这个脚本  source  ~/.bashrc

gedit ~/.bashrc

source ~/.bashrc

find  查找特征文件

     --> 从某个路径下查找指定文件名 : find  路径名 -name  文件名

例如:查找stdio.h  --> /usr/include     find  /usr/include/  -name  stdio.h

 

--> 从某个路径下查找指定 .h 结尾的文件名

例如:在 /usr/include 下查找所有 .h 结尾的文件  find /usr/include/  -name  *.h

 

注意:如果不知道想要查找的文件在哪,想要对整个文件系统进行扫描查找,那么路径可以给根目录。 例如:查找 string.h -->  find / -name string.h

(这种用法比较花时间,而且有一些文件夹没有权限访问,需要sudo)

 

grep  查找文件中的字符串

 

 --> 查找一个文件中的字符串命令格式 :  grep  字符串  文件名

例如:查找文件1.txt中的 “hello”  --> grep  “hello”  1.txt

 

--> 从一个目录下查找所有的 .c 里面的stdio.h : grep  “字符串”  dir/*.c  -n

例如:从当前路径下的所有的.c中查找字符串 “stdio.h” : grep  “stdio.h”  ./*.c  -n

 

 --> 从某一个目录递归查找某一个字符串  grep “字符串”  dir/  -rnH

例如:查看系统头文件中对于 NULL的定义

==> grep “#define NULL”  /usr/include  -rnH

 tar   文件归档命令(压缩与解压缩)

 

   --> 使用方法:

tar [-] A --catenate --concatenate | c --create | d --diff --compare | --delete |

         r --append | t --list | --test-label | u --update | x --extract --get

         [options] [pathname ...]

==> tar   参数   路径名

==> 例如: 将 当前路径下的1.c 和2.c 压缩到 example.tar.gz

--> tar  -zcvf  example.tar.gz  1.c  2.c  (把文件1.c , 2.c使用 gzip格式压缩到压缩包 example.tar.gz )

==> z : 操作的文件类型为gz文件(xx.tar.gz) -j 表示操作bz2文件(xx.tar.bz2)

==> c : 归档文件 (压缩文件)

==> x : 释放归档文件 (解压缩)

==> v : 显示归档过程

==> f : 指定归档文件名

例如: 把当前路径下的 png结尾的文件全部压缩到 test.tar.bz2 压缩包

==> tar  -jcvf  test.tar.bz2  ./*.png

 解压缩: 把参数c改成x, 然后如果要指定解压缩的位置 添加 -C  路径名

例如: 把 test1.tar.gz 解压缩到 家目录下的 b目录中  

==> tar -zxvf test1.tar.gz  -C  ./b/  (当前路径下的b目录)

==> tar -zxvf test1.tar.gz  -C  /home/gec/b/  (家目录下的b目录)

注意:解压缩的时候后面的路径要有权限操作才行,否则会解压失败!

 df    显示文件系统信息

df -h

重定向  >(重定向文件)   >>(追加重定向)  

==> 可以把原本要输出到屏幕的信息重定向输出到文件中。

==> 例如: ls  >  1.txt  (ls的结果重定向到1.txt, 1.txt原来的内容会被清空!)

==> 如果想要把信息追加到文件末尾,那就使用追加重定向(追加重定向的时候里面的信息不会被覆盖)  ls >>  1.txt

 

ifconfig   Linux下的网卡信息查看配置命令

==> 查看当前Ubuntu的网卡信息  ifconfig

 

==> 测试当前Ubuntu是否可以连接外网 -->ping

==> ping  www.baidu.com  

 ==> 快速配置Ubuntu连接外网方法(让Ubuntu与Windows共享一个IP):

 

 

Ubuntu在线获取软件包  apt-get

==> sudo  apt-get  install   xxx (软件包名字)   tree

 更新软件源 ==> sudo apt-get update

 

Kill  /  killall  给进程发信号

==> 信号发送格式:  kill  -信号值  进程号 (给进程发送一个信号)

Linux下的信号值: kill -l

gec@ubuntu:~$ kill -l

 1) SIGHUP  2) SIGINT  3) SIGQUIT  4) SIGILL  5) SIGTRAP

 6) SIGABRT  7) SIGBUS  8) SIGFPE  9) SIGKILL 10) SIGUSR1

11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM

16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP

21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR

31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3

38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8

43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13

48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12

53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7

58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2

63) SIGRTMAX-1 64) SIGRTMAX

==> 1~31非实时信号

==> 34 ~ 64实时信号

==> 9号信号: SIGKILL  --> 强制杀死信号

例如:现在有一个进程,进程号是 1999  ==> kill -SIGKILL  1999

Kill -9  1999

 查看进程号   ps -ef  

 

Killall : 杀死一个进程用进程名字

==> killall -信号值 进程名

例如:现在有一个进程 名字叫 ./madplay   ==> killall  -9  madplay

 history  --> 查看最近输入的命令

env  --> 查看环境变量 

USER=gec  :当前用户

LOGNAME=gec :登录系统名

SHELL=/bin/bash : shell命令解析器

OLDPWD=/home/gec/b : 上一次工作路径  --> cd -

PWD=/home/gec :当前工作路径

HOME=/home/gec :当前用户的家目录(用户的工作目录)

 

PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/bin:/usr/local/arm/bin

环境变量PATH : 当用户输入命令的时候,系统第一时间从环境变量中进行寻找。

环境变量PATH :一般会有比较多的路径,路径与路径之间使用 : 隔开。

==> 修改环境变量 export  PATH=$PATH:/home/gec/b   (把路径 /home/gec/b添加到环境变量中)  (临时修改环境变量)

==> 如果想要永久起效,那就把这个命令添加到 ~/.bashrc (终端启动脚本)

 

which   查看shell命令文件所在路径  

==> which  命令

==> 例如:查看ls命令所在位置   which  ls

 man    Linux下获取帮助的手册

 

==> 查看shell命令的使用原型 : man  1  命令

==> 例如: 查看 cd 命令的详细使用说明  man 1 cd

==> 查看文件类型  ls -l

-  rw-rw-r-- 1 gec gec     21 Jul 28 23:53 2.txt~

-  rwxrwxr-x 1 gec gec   7281 Aug 11 05:08 a.out

d  rwxrwxr-x 2 gec gec   4096 Aug 16 01:17 b

-  : 普通文件  (touch --> .c, .txt, .png ...)

d  :  目录文件   (mkdir)

l  :  链接文件 (链接文件分为硬链接和软链接)硬链接:相当于文件的别名。 软链接:相当于文件的快捷方式。Linux下的特殊文件,不能存在于Windows下!(链接文件不能放在虚拟机的共享文件夹)

p : 管道文件   用于进程(系统中正在运行的程序)间通信

s : 套接字文件   socket

b : 块设备文件   存储类文件

c : 字符设备文件  Linux驱动节点  --> /dev   

 

 文件权限

 

==> Linux下的文件权限  r(读)  w(写)  x(执行)

==> Linux下一个文件对应不同的用户权限是不一样的!

rwx rwx r-x ==》 0775

  1. 111 101

7 7 5

拥有者用户   同组用户  其他用户

==> 对于文件拥有者读写执行权限,对于同组用户读写执行,对于其他用户读,执行权限。

修改文件权限: chmod  

格式: chmod  权限  文件名  

==> 例如: 把文件1.txt设置为对所有用户都是可读可写可执行权限

==> chmod  777  1.txt

==> 例如:给文件2.txt的文件拥有者添加可执行权限

==> chmod  u+x  2.txt

文件拥有者: u ;  同组用户: g; 其他用户:o;

读权限 : r ; 写权限: w; 执行权限: x;

==> 给2.txt的拥有者同组用户添加写权限:  chmod  g+w  2.txt

 

命令提示行!

gec@ubuntu:~$

==> gec : 用户名

==> ubuntu : 主机名

==> ~ : 当前工作路径 (~:家目录   /:根目录)

==> $ : 普通用户标志    超级用户:root   标志 #  

--> 获取超级用户权限

  1. 切换到超级用户 (一直以超级用户权限行事)  sudo  su
  2. sudo 执行命令 (获取一次)

 

根目录文件分类

 

==> linux的根目录下分了很多目录,不同的目录存放不同的内容

-->bin : Linux下的常用命令

-->dev : Linux外部设备的设备文件存放位置  例如:LCD显示屏设备文件 --> /dev/fb0

--> initd.img : 文件系统镜像

Linux系统启动 --> Uboot --> 加载内核 --> 挂载文件系统

--> media : 挂载USB接口 移动硬盘

--> proc : 以可见方式查看Linux内存数据

--> sbin :  超级用户所用命令的位置

--> sys : 以可见方式查看Linux内核数据

--> var : 存放系统运行时需要改变的数据

--> boot : Linux内核,文件系统

--> etc : 系统所有配置文件

--> lib : 系统的库文件 (静态库,动态库)

--> mnt : 系统挂载目录 (共享文件夹)

--> root : 超级用户的家目录

--> selinux : 加固系统安全目录

--> tmp : 系统临时存放文件路径  ==> 安全目录

--> cdrom : 光驱挂载目录

--> home : 普通用户家目录挂载路径 (gec用户家目录: /home/gec  zj家目录 :/home/zj  )

--> lost+found : 系统崩溃产生碎片到此目录,重启是,系统修改碎片

--> opt : 存放功能性代码,可选程序,软件

--> run : 系统运行时目录

--> srv : 系统服务日志

--> usr : 存放第三方源文件,头文件,库文件 ...

 查看文件格式  file  --> file 文件名

==> 查看自己的Ubuntu中是否存在arm-linux-gcc 交叉编译工具链

==> arm-linux-gcc  -v

 补充gcc编译过程

编程过程中,程序员编写的高级语言(*.c, *.cpp...),需要对这些文件进行编译生成机器认识的机器语言(.elf , .exe...),然后机器再执行程序。

高级语言文件 --> (编译) --> 可执行程序

  编译的步骤: 预处理 --> 编译 --> 汇编 --> 链接

1,预处理 --> 头文件展开,进行宏替换!  -E

-E  Stop after the preprocessing stage;

==> 例如: 将test.c 进行预处理,得到预处理文件  test.i

==> gcc -E test.c -o test.i

  1. 编译  --> 把预处理的文件生成汇编文件 -S

==> 例如:把预处理文件test.i 编译生成汇编文件 test.S

==> gcc -S test.i -o test.S

  1. 汇编   --> 把汇编语言文件转成二进制文件  -c

==> 例如:把汇编文件test.S转成二进制文件test.o

==> gcc -c test.S -o test.o

  1. 链接  --> 把二进制文件进行编址,链接生成可执行文件

==> gcc test.o -o test

==>一步到位编译命令: gcc  test.c  -o  test

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hqb_newfarmer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值