一.linux系统下可以在帮助中查看每一个命令的用法

方法:cmd --help   

例如: ls --help

.常用命令

1.find 命令

find /  -name  aa     //根目录下搜索aa的文件或者目录

find -name  aa  //相当于  find ./ -name aa      直接在当前目录内搜索aa的文件或者目录

2.grep 命令:  

 ps -elf | grep aa

 grep -nr abc ./

     

3.cp      

   cp --help

-f--强制

-d--等于--no-dereference --preserve=links  

-a :将文件的特性一起复制

-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份

-i :若目标文件已经存在时,在覆盖时会先询问操作的进行

-r :递归持续复制,用于目录的复制行为

-u :目标文件与源文件有差异时才会复制

4.网络命令

  a.ifconfig  //查看设置本机网络

    up:启动网络接口。

down:关闭网络接口。

mtu [大小]:设置网络接口的MTU大小。

示例:ifconfig eth0 up

    设置IP和掩码:ifconfig eth0 172.16.1.66 netmask 255.255.0.0

    设置网关:  route add default gw 192.168.5.1

    不过重启了或重启网卡服务就会没了,可以把语句加入到/etc/rc.local中就开机有效了

  b.netstat -apntlu  ---查看网络连接

    -a:显示所有连接和监听端口。

    -t:显示TCP连接。

-u:显示UDP连接。

-l:仅显示监听状态的端口。

-n:显示数字形式的地址和端口号,而不是尝试解析成域名和端口名称。

-p:显示哪个进程在监听端口。

-r:显示路由表。

-i:显示接口信息。

-s:显示网络统计信息。

5.ls 查看目录

6.mv命令

-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖

-i :若目标文件已经存在,就会询问是否覆盖

-u :若目标文件已经存在,且比目标文件新,才会更新

7.rm命令

-f :就是force的意思,忽略不存在的文件,不会出现警告消息

-i :互动模式,在删除前会询问用户是否操作

-r :递归删除,最常用于目录删除,它是一个非常危险的参数

8.ps命令

该命令用于将某个时间点的进程运行情况选取下来并输出,process之意,它的常用参数如下:

-A :所有的进程均显示出来

-a :不与terminal有关的所有进程

-u :有效用户的相关进程

-x :一般与a参数一起使用,可列出较完整的信息

-l :较长,较详细地将PID的信息列出

其实我们只要记住ps一般使用的命令参数搭配即可,它们并不多,如下:

ps aux # 查看系统所有的进程数据

ps ax # 查看不与terminal有关的所有进程

ps -lA # 查看系统所有的进程数据

ps axjf # 查看连同一部分进程树状态

9.tar命令

-c :新建打包文件

-t :查看打包文件的内容含有哪些文件名

-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中

-j :通过bzip2的支持进行压缩/解压缩

-z :通过gzip的支持进行压缩/解压缩

-v :在压缩/解压缩过程中,将正在处理的文件名显示出来

-f filename :filename为要处理的文件

-C dir :指定压缩/解压缩的目录dir

示例:

压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称

查询:tar -jtv -f filename.tar.bz2

解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

10.cat命令

cat a.txt // 查看a.txt文件中的内容

11.pwd

pwd是Linux中用于显示当前工作目录路径的命令。该命令的全称是"print work directory",其功能是显示用户当前所在的目录的绝对路径。

12.chgrp命令

该命令用于改变文件所属用户组,它的使用非常简单,它的基本用法如下:

chgrp [-R] dirname/filename

-R :进行递归的持续对所有文件和子目录更改

# 例如:

chgrp users -R ./dir # 递归地把dir目录下中的所有文件和子目录下所有文件的用户组修改为users

13.chown命令

该命令用于改变文件的所有者,与chgrp命令的使用方法相同;

示例:

chown john example.txt

这将更改example.txt文件的所有者为john。

chown john:admin example.txt

这将更改example.txt文件的所有者为john,并将所属组更改为admin。

请注意,只有超级用户(root)或文件的所有者才能更改文件的所有权。

14.chmod命令

该命令用于改变文件的权限,一般的用法如下:

-R:进行递归的持续更改,即连同子目录下的所有文件都会更改

-v:详细模式,显示更改权限的详细信息。

示例:

chmod 755 example.txt

这将设置example.txt文件的所有者权限为读写执行(7),所属组权限为读执行(5),其他用户权限为读执行(5)。

chmod u+w,g-w,o=r example.txt

这将给所有者增加写权限(u+w),给所属组删除写权限(g-w),给其他用户设置为只读权限(o=r)。

请注意,只有超级用户(root)或文件的所有者才能更改文件的权限。

15.touch

touch 命令可以用来创建新的空文件,或者更新现有文件的时间戳。

touch 命令是一个用于修改文件的时间戳(访问时间和修改时间)的工具。

-a:仅修改文件的访问时间。

-m:仅修改文件的修改时间。

-t [时间]:设置文件的时间戳为指定的日期和时间。

-d [日期]:设置文件的时间戳为指定的日期和时间(与-t选项类似,但日期和时间的格式更加灵活)。

示例:

touch example.txt

这将创建一个空的example.txt文件,如果文件已经存在,则更新其访问时间和修改时间。

touch -t 20230425123000 example.txt

这将设置example.txt文件的时间戳为2023年4月25日12时30分00秒。

.其他重要命令

1.df -h  ---查看文件系统目录

  df -T  ---查看每个目录使用情况

  

3.查看硬盘容量

  du  每个文件  

  du -md  n     ---n读取目录深度(为数字,如1),显示大小单位为M

  du -m -d 1  ---查看文件夹得大小,一级目录,M单位

  du -a -m -d 1  ----目录内全部文件

4.lsblk

  命令可列出所有可用的块设备的信息

5.查看分区

   cat /proc/partitions

6.ldd  a.out  //可以看出来库的调用关系   

  win10和ubuntu都可以

  但是嵌入式好像没有ldd这个命令  

7.file

-L  直接显示符号连接所指向的文件的类别。

-v  显示版本信息。

file example.txt

这将输出 example.txt 文件的类型信息。

file  a.exe    (ubuntu上)

可以看到这个程序是链接的是pc的库还是arm的库,也就是能确认这个程序是不是arm上运行的,不用放到板子上就可以看出来

8.time命令

该命令用于测算一个命令(即程序)的执行时间。

time example

这将执行example程序,并在程序执行完成后显示运行时间。

10.linux程序后台启动方法

方法1在终端输入命令:

 # ./pso > pso.file 2>&1 &

方法2在终端输入命令:

# nohup  ./pso > pso.file 2>&1 &

解释:nohup就是不挂起的意思,将pso直接放在后台运行,并把终端输出存放在当前

四.添加用户及设置用户组设置

1.groupadd   //创建用户组

可以创建新的用户组,并设置用户组的基本信息,如用户组名、用户组ID等。

groupadd [选项] 用户组名

-g:指定用户组的GID。

-f:如果用户组已存在,则不显示错误信息。

例如:

要创建一个名为developers的新用户组,你可以运行:

sudo groupadd developers

这将创建一个新的用户组developers。

如果要指定用户组的GID,你可以使用-g选项:   //GID(Group Identifier)是用户组的唯一标识符,用于区分不同的用户组。

sudo groupadd -g 1000 developers

这将创建一个新的用户组developers,并设置其GID为1000。

请注意,groupadd命令通常需要超级用户权限来执行,因此你可能需要使用sudo来运行它。

2.usermod   //给用户设置用户组

给用户设置用户组,也可以修改现有用户账户的属性,包括用户的登录组(主组)和附加组。

usermod [选项] 用户名

-g:设置用户的登录组(主组)。

-G:设置用户的附加组。

例如:

要给用户john设置登录组为admin,你可以运行:

sudo usermod -g admin john

这将修改用户john的登录组为admin。

如果要给用户john添加附加组developers,你可以运行:

sudo usermod -a -G developers john

这里,-a选项表示追加,即在用户的附加组列表中添加developers组,而不是替换现有的附加组。

请注意,usermod命令通常需要超级用户权限来执行,因此你可能需要使用sudo来运行它。

在修改用户的用户组后,用户可能需要重新登录,以便新的组设置生效。

3.useradd  //添加一个新用户

此命令来添加一个新用户。

示例:

sudo useradd -m 用户名

这里-m选项会为新用户创建一个家目录。

设置用户密码,可以使用passwd命令:

sudo passwd 用户名

4.设置用户及用户组访问目录权限

用户访问权限设置:

使用chmod命令设置家目录的权限,以及使用chown命令确保家目录属于该用户和用户组。

sudo chown restricteduser:restrictedgroup /home/restricteduser

sudo chmod 700 /home/restricteduser

这里,chown命令将家目录的所有权设置为restricteduser用户和restrictedgroup组,chmod命令设置家目录的权限为700,这意味着只有目录的所有者(即restricteduser用户)可以访问目录。

用户组访问权限设置:

设置用户组“AA”具有目录/home1的访问权限,其他用户和组无权限访问

首先,确保用户组“AA”已经存在。如果不存在,你可以使用groupadd命令创建它:

sudo groupadd AA

然后,使用chown命令将目录/home1的所有权设置为用户组“AA”:

sudo chown -R :AA /home1

这里,-R选项表示递归地更改所有权,即包括目录/home1及其所有子目录和文件。

接下来,使用chmod命令设置目录/home1及其所有子目录和文件的权限。为了确保只有用户组“AA”有访问权限,而其他用户和组无权限,

你可以设置权限为700(即只有所有者有读写执行权限),然后将所有者设置为用户组“AA”:

sudo chmod -R 700 /home1

这里,-R选项表示递归地更改权限。

06-06 19:46