linux常用指令及参数
常用系统指令
clear 清理屏幕(终端)
reboot 重启
poweroff 关机
shutdown -h now 关机(root用户使用)
shutdown -h 10 10分钟后自动关机
man 系统帮助命令 (1:用户命令 2:系统调用 3:C库函数 4:设备和特殊文件 5:文件格式和约定 6:游戏和演示 如:man 1 ls )
普通用户切换到root用户,执行指令:su root 然后输入用户密码即可。
root用户切换到普通用户,执行指令:su kerson(kerson为用户名字)。此时不需要输入密码。
rm +文件名 -rf -r表示删除的是目录,-rf表示强制删除(慎用)
一、磁盘管理命令
1、ls 目录查询 (磁盘管理)
命令功能 :(英文全拼: list directory contents)命令用于显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)。
参数 :
● -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
● -d 只列出目录(不递归列出目录内的文件)。
● -l 以长格式显示文件和目录信息,包括权限、所有者、大小(字节)、创建时间等。
● -r 倒序显示文件和目录。
● -t 将按照修改时间排序,最新的文件在最前面。
● -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
● -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
● -R 递归显示目录中的所有文件和子目录。
例如:ls -al 可查看改目录下所有文件信息,链接文件会在文件后跟实际链接路径。也可使用 ls -l
查找某个文件路径:ls /usr/local/bin/*-gcc
2、cd 切换目录 (磁盘管理)
实例:
跳到 /usr/bin/ : cd /usr/bin
跳到自己的 home 目录 : cd ~ 或 cd
跳到目前目录的上上两层 : cd ../..
3、pwd 显示路径 (磁盘管理)
命令功能 : (英文:print work directory) 命令用于显示工作目录,执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。
实例:进到该路径下执行即可。
4、mkdir 创建目录--即文件夹 (磁盘管理)
实例:创建test文件夹:mkdir test
5、du 显示磁盘空间 (磁盘管理)
命令功能 :显示指定的目录或文件所占用的磁盘空间。
参数说明:
● -a或-all 显示目录中个别文件的大小。
● -b或-bytes 显示目录或文件大小时,以byte为单位。
● -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
● -D或--dereference-args 显示指定符号连接的源文件大小。
● -h或--human-readable 以K,M,G为单位,提高信息的可读性。
● -H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
● -k或--kilobytes 以1024 bytes为单位。
● -l或--count-links 重复计算硬件连接的文件。
● -L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
● -m或--megabytes 以1MB为单位。
● -s或--summarize 仅显示总计。
● -S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
实例:du -h +文件名
cat /proc/mtd :可查看mtd下所有磁盘分区的偏移地址。
磁盘管理
sudo fdisk -l 列出所有磁盘 向sdf磁盘写test.bin文件可直接使用 test.bin /dev/sdf
6、sync 数据同步 (磁盘维护)
命令说明:用于数据同步,sync命令是在关闭Linux系统时使用的。
Linux 系统中欲写入硬盘的资料有的时候为了效率起见,会写到 filesystem buffer 中,这个 buffer 是一块记忆体空间,如果欲写入硬盘的资料存于此 buffer 中,而系统又突然断电的话,那么资料就会流失了,sync 指令会将存于 buffer 中的资料强制写入硬盘中。
7、touch 创建文件 (文件管理)
命令说明:用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
实例:创建test文件:touch test
二、文件管理
1、查看文件命令(文件管理)
cat命令: cat+文件名(终端显示整个文件)
head命令: head -c 30 /dev/mtd7(查看前30字节显示在终端上)
tail 命令: tail -c 1025 /path/to/file (从文件的第 1025 个字节开始显示到终端上,用法同上)
2、cp 复制文件或目录 (文件管理)
参数说明:
● -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
● -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
● -f:覆盖已经存在的目标文件而不给出提示。
● -i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
● -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
● -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
● -l:不复制文件,只是生成链接文件。
实例:
使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下,输入如下命令:
$ cp –r test/ newtest
3、mv 目录移动和重命名 (文件管理)
命令功能:命令用来为文件或目录改名、或将文件或目录移入其它位置。
参数说明:
● -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
● -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
● -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
● -n: 不要覆盖任何已存在的文件或目录。
● -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
实例:
将文件 aaa 改名为 bbb :
mv aaa bbb
将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs。
mv info/ logs
再如将 /usr/runoob 下的所有文件和目录移到当前目录下,命令行为:
mv /usr/runoob/* .
4、find 查找文件和目录 (文件管理)
参数说明:(只列举了常用参数)
● -name pattern
:按文件名查找,支持使用通配符 *
和 ?
。
● -type type
:按文件类型查找,可以是 f
(普通文件)、d
(目录)、l
(符号链接)等。
实例:查找当前目录下名为 file.txt 的文件:find . -name file.txt ,如果不指定路径会把所有该文件名及路径打印出来。
5、which 查找文件(只会找在环境变量$PATH设置过的)(文件管理)
which [文件...]
参数说明:
● -n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
● -p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
● -w 指定输出时栏位的宽度。
● -V 显示版本信息。
6、grep 查找字符串 (文件管理)
常用参数:
● -i
:忽略大小写进行匹配。
● -v
:反向查找,只打印不匹配的行。
● -n
:显示匹配行的行号。
● -r
:递归查找子目录中的文件。
● -l
:只打印匹配的文件名。
● -c
:只打印匹配的行数。
实例:在文件夹 dir 中递归查找所有文件中匹配字符串 "hello" 的行,显示文件名和行号:grep -nr “hello” /path,可加sudo
7、file 查看文件类型 (文件管理)
命令说明:如果是可执行文件,可以查看该执行文件运行于哪种架构。
实例:显示文件类型:file install.log
install.log: UTF-8 Unicode text
8、tar 压缩解压命令 (文件管理) (tar、gzip、gunzip、bzip2、bunzip2、compress 、uncompress、 zip、 unzip、rar、unrar 等)
压缩:调用 gzip .gz(后缀): tar -czvf +想压缩成的文件名+tar.gz +压缩文件 解压:tar -xzvf +压缩文件
压缩: 调用 bzip2 .bz2(后缀):tar -cjvf +想压缩成的文件名+tar.bz2 +压缩文件 解压:tar -xjvf +压缩文件
解压:.xz结尾的 xz -d +压缩文件 (会解压成tar压缩文件,再用tar -xvf解压)
.zip 解压 unzip +压缩文件
示例:tar -cjvf rootfs.tar.bz2 rootfs/ (压缩包后缀也要写上),如果要进入rootfs内部目录压缩所有文件,可以用通配符*
9、ln 链接(文件管理)
命令功能 :
Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
软链接
有时我们可能会看到类似这样的文件,点击属性查看提示“链接(已断)”,顾名思义这是一个链接文件,类似windows下的快捷方式,如图,该文件提示链接目标没有上级目录,表示就在链接文件就在该目录下,如果删除目录下的该文件,就会提示“链接(已断)”。
使用场景:在不同的目录用相同文件时,不需要在每个目录下都放一个相同的文件,只要在需要用到的目录下用ln命令链接(link)就可以,不必重复的占用磁盘空间。
● 1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
● 2.软链接可以 跨文件系统 ,硬链接不可以
● 3.软链接可以对一个不存在的文件名进行链接
● 4.软链接可以对目录进行链接
硬链接
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
● 1.硬链接,以文件副本的形式存在。但不占用实际空间。
● 2.不允许给目录创建硬链接
● 3.硬链接只有在同一个文件系统中才能创建
参数:
● -backup[=CONTROL] 备份已存在的目标文件
● -b 类似 --backup ,但不接受参数
● -d 允许超级用户制作目录的硬链接
● -f 强制执行
● -i 交互模式,文件存在则提示用户是否覆盖
● -n 把符号链接视为一般目录
● -s 软链接(符号链接)
● -v 显示详细的处理过程
实例
给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效,跨文件时使用绝对路径。
ln -s log2013.log link2013
给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同。
ln log2013.log ln2013
10、chmod命令 (控制用户对文件的权限的命令)
Linux/Unix 文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。
参数:
● u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
● + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
● r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
实例:
将文件 file1.txt 设为所有人皆可读取 :chmod ugo+r file1.txt 或 chmod a+r file1.txt 删除则是:chmod a-r file1.txt
将目录下的所有文件与子目录皆设为任何人可读取 : chmod -R a+r * 或chmod 777 file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 r=4,w=2,x=1 同理:rw = 6
三、网络通讯命令
1、ifconfig 显示或设置网络设备 (网络通讯)
启动或关闭指定网卡
# sudo ifconfig ens33 down(关闭网卡--断网)
# sudo ifconfig ens33 up(开启网卡--联网)
为网卡配置和删除IPv6地址
# ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //为网卡设置IPv6地址
# ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //为网卡删除IPv6地址
用ifconfig修改MAC地址
# ifconfig eth0 down //关闭网卡
# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址
# ifconfig eth0 up //启动网卡
# ifconfig eth1 hw ether 00:1D:1C:1D:1E //关闭网卡并修改MAC地址
# ifconfig eth1 up //启动网卡
配置IP地址
# ifconfig eth0 192.168.1.56 //给eth0网卡配置IP地址
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 // 给eth0网卡配置IP地址,并加上子掩码
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255 // 给eth0网卡配置IP地址,加上子掩码,加上个广播地址
启用和关闭ARP协议
# ifconfig eth0 arp //开启
# ifconfig eth0 -arp //关闭
设置最大传输单元
# ifconfig eth0 mtu 1500 //设置能通过的最大数据包大小为 1500 bytes
重启网络
sudo systemctl restart NetworkManager
四、软件安装
1、apt 软件安装
命令功能 :查找、安装、升级、删除某一个、一组甚至全部软件包的命令,执行需要超级管理员权限(root)。
参数(常用) :
● 列出所有可更新的软件清单命令:sudo apt update
● 升级软件包:sudo apt upgrade
● 列出可更新的软件包及版本信息:apt list --upgradeable
● 升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade
● 安装指定的软件命令:sudo apt install <package_name>
● 安装多个软件包:sudo apt install <package_1> <package_2> <package_3>
● 更新指定的软件命令:sudo apt update <package_name>
● 显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>
● 删除软件包命令:sudo apt remove <package_name>
● 清理不再使用的依赖和库文件: sudo apt autoremove
● 移除软件包及配置文件: sudo apt purge <package_name>
● 查找软件包命令: sudo apt search <keyword>
● 列出所有已安装的包:apt list --installed
● 列出所有已安装的包的版本信息:apt list --all-versions
实例:查看一些可更新的包:sudo apt update
升级安装包:sudo apt upgrade
重新安装软件:如:sudo apt-get install --reinstall gcc (安装了一个旧版,总是更新不到新版,用这个指令后跟新到新版本了)
查看软件版本:软件名+ --version
卸载软件: 如:sudo apt-get remove gcc 安装指定版本:sudo apt-get install gcc-9 g++-9
五、系统命令
1、查询和修改系统时间:
(1)、查询系统时间:date
(2)、修改系统时间:date -s "2022-12-20 16:05:50"
(3)、查询硬件时间:hwclock --show
(4)、修改硬件时间:hwclock --set --date="19/12/2022 19:23:40"