一.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选项表示递归地更改权限。