欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux操作指令整理

程序员文章站 2024-03-02 18:48:28
...

Linux操作指令整理

win10中装虚拟机,在虚拟机中运行的Ubuntu。

系统指令:

arch --显示机器的处理器架构(1)

uname -m --显示机器的处理器架构(2)

uname -r --显示正在使用的内核版本

dmidecode -q --显示硬件系统部件 - (SMBIOS / DMI)

hdparm -i /dev/hda --罗列一个磁盘的架构特性

hdparm -tT /dev/sda --在磁盘上执行测试性读取操作

cat

三大功能:

  1. 一次显示整个文件:cat filen ame

  2. 从键盘创建一个文件:cat>filename只能创建新文件,不能编辑已有文件.

  3. 将几个文件合并为一个文件:cat file1 file2 > file

    -b 对非空输出行号

    -n 输出所有行号

    实例:

    (1) 把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里

    cat -n log2012.log log2013.log

    (2) 把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将 内容附加到 log.log 里

    cat -b log2012.log log2013.log log.log

    (3) 使用 here doc 生成新文件

    cat >log.txt <<EOF
    
    \>Hello
    
    \>World
    
    \>PWD=$(pwd)
    
    \>EOF
    
    ls -l log.txt
    
    cat log.txt
    
    Hello
    
    World
    
    PWD=/opt/soft/test
    

    (4) 反向列示

    tac log.txt
    
    PWD=/opt/soft/test
    
    World
    
    Hello
    

cat /proc/version --显示内核的版本

cat /proc/cpuinfo --显示 CPU info 的信息

cat /proc/meminfo --校验内存使用

cat /proc/interrupts --显示中断

cat /proc/swaps --显示哪些 swap 被使用

cat /proc/net/dev --显示网络适配器及统计

cat /proc/mounts --显示已加载的文件系统

lspci -tv --罗列 PCI 设备

lsusb -tv --显示 USB 设备

date 显示系统日期 --2020年 01月 13日 星期一 21:09:08 CST

cal 2020 --显示2020 年的日历表

date 041217002007.00 --设置日期和时间 - 月日时分年.秒

clock -w --将时间修改保存到 BIOS

who --显示登陆者的信息

whoami --显示登陆者的名字

系统的操作(关机,重启)

shutdown -h now --关闭系统

init 0 --sudo - s 需root权限->关闭系统

telinit 0 --sudo - s 需root权限->关闭系统zzxx

shutdown -h hours:minutes & --按预定时间关闭系统

shutdown -c --取消按预定时间关闭系统

shutdown -r now --重启(1)

reboot --sudo - s 需root权限->重启(2)

clear --清除当前界面

文件目录指令

cd(changeDirectory)

命令语法:cd [目录名]。说明:切换当前目录至dirName

cd /home --进入 ‘/ home’ 目录’

cd … --返回上一级目录

cd …/… --返回上两级目录

cd --进入个人的主目录 /home/wangfan

cd - --返回上次所在的目录

cd ~ --返回到用户目录 /home/wangfan

cd

pwd

​ 查看当前工作目录路径

pwd -P --查看软链接的实际路径

ls

就是list的缩写,通过ls命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限) 查看目录信息等等

ls --查看目录中的文件

ls -F --查看目录中的文件

ls -l --显示文件和目录的详细资料

ls -a --显示隐藏文件

ls * [0-9]* --显示包含数字的文件名和目录名

ls -t 按照时间先后顺序排序显示 最新的文件最先显示
ls -r 逆序显示

在Linux下面 以.开头的文件都是隐藏文件

drwxrwxr-x 2 ubuntu Ubuntu 4096 10月 29 16:24 code
第一个字符表示文件类型:
d – 目录

		-	-- 普通文件
		l -- 链接文件
      	s -- socket文件
      	p -- 管道文件
	rwxrwxr-x	代表文件属性
	r -  read 代表可读权限
	w -  write 代表可写权限
	x -  excute 代表可执行权限
	
	--  -- 代表没有该权限
	rwx
	rw-
	r--
	-wx
	-w-
	--x

---
第一组rwx代表   属主		文件拥有者自己的权限
第二组rwx代表   属组		同组用户
第三组rwx代表	其他用户
						2	表示硬连接数
	只有当硬连接数为0时该文件才会被正真的删除

tree --显示文件和目录由根目录开始的树形结构-需要安装tree指令

pstree --显示正在运行的进程的树形结构-需要装tree

mkdir

​ 创建文件夹

mkdir dir1 --创建一个叫做 ‘dir1’ 的目录’

mkdir dir1 dir2 --同时创建两个目录

mkdir -p /tmp/dir1/dir2 --创建一个目录树- 若无没有tmp及以下目录,则先创建一个tmp包含dir1(包含dir2),最后在创建一个 p

rm

删除一个目录中的一个或多个文件或目录,如果没有使用-r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状

rm-f file1 --删除一个叫做 ‘file1’ 的文件’

rmdir dir1 --删除一个叫做 ‘dir1’ 的目录’

rm -rf dir1 --删除一个叫做 ‘dir1’ 的目录并同时删除其内容

rm -rf dir1 dir2 --同时删除两个目录及它们的内容

mv

移动文件或者修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件。

当第二参数为目录时,可将多个文件以空格分隔作为第一参数,移动多个文件到参数2指定的目录

mv dir1 new_dir --重命名/移动 一个目录

mv test.log test1.txt --test.log 重命名为 test1.txt

mv llog1.txt log2.txt log3.txt /test3 – 将文件 log1.txt,log2.txt,log3.txt 移动到根的 test3 目录中

mv -i log1.txt log2.txt --将文件file1改名为file2,如果file2己经存在,则询问是否覆盖

mv* …/ --移动当前文件夹下的所有文件到上一级目录

rmdir

从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限,不能删除非空目录

rmdir -p parent/child/child11 --当parent子目录被删除后使它也成为空目录的话,则顺便一并删除

cp

将源文件复制至目标文件,或将多个源文件复制至目标目录。

注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在 shell 脚本中, 如果不加 -i 参数,则不会提示,而是直接覆盖!

cp file1 file2 --复制一个文件

cp dir/* . --复制一个目录下的所有文件到当前工作目录

cp -a /tmp/dir1 . --复制一个目录到当前工作目录

cp -a dir1 dir2 --复制一个目录

cp -r temp --复制目录及目录内所有项目

实例:

(1) 复制a.txt到test目录下,保持原文件时间,如果原文件存在提示是否覆盖

cp -ai a.txt test

(2) 为 a.txt 建议一个链接(快捷方式)

cp -s a.txt link_a.txt

ln -s file1 lnk1 --创建一个指向文件或目录的软链接

ln file1 lnk1 --创建一个指向文件或目录的物理链接

touch -t 0712250000 file1 --修改一个文件或目录的时间戳 - (YYMMDDhhmm)

file file1 outputs the mime type of the file as text

iconv -l --列出已知的编码

输入/输出格式规范:
  -f, --from-code=名称     原始文本编码
  -t, --to-code=名称       输出编码

 信息:
  -l, --list                 列举所有已知的字符集

 输出控制:
  -c                         从输出中忽略无效的字符
  -o, --output=FILE          输出文件
  -s, --silent               关闭警告
      --verbose              打印进度信息

  -?, --help                 给出该系统求助列表
      --usage                给出简要的用法信息
  -V, --version              打印程序版本号

文件搜索

find

find / -name file1 --从 ‘/’ 开始进入根文件系统搜索文件和目录

find / -user user1 --搜索属于用户 ‘user1’ 的文件和目录

find /home/user1-name∖*.bin --在目录’/home/user1’中搜索带有’.bin’结尾的文件 find /usr/bin -type f -atime +100 --搜索在过去100天内未被使用过的执行文件

find /usr/bin-typef-mtime-10 --搜索在10天内被创建或者修改过的文件

find /-name∖ * .rpm-execchmod755’{}‘∖; --搜索以’.rpm’结尾的文件并定义其权限 find /-xdev-name∖ * .rpm搜索以’.rpm’结尾的文件,忽略光驱、捷盘等可移动设备 locate ∖*.ps --寻找以 ‘.ps’ 结尾的文件 - 先运行 ‘updatedb’ 命令

whereis halt 显示一个二进制文件、源码或 man 的位置

which halt 显示一个二进制文件或可执行文件的完整路径

挂载一个文件系统

mount /dev/hda2 /mnt/hda2 挂载一个叫做 hda2 的盘 - 确定目录 ‘/ mnt/hda2’ 已经存在

umount /dev/hda2 卸载一个叫做 hda2 的盘 - 先从挂载点 ‘/ mnt/hda2’ 退出

fuser -km /mnt/hda2 当设备繁忙时强制卸载

umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用

mount /dev/fd0 /mnt/floppy 挂载一个软盘

mount /dev/cdrom /mnt/cdrom 挂载一个 cdrom 或 dvdrom

mount /dev/hdc /mnt/cdrecorder 挂载一个 cdrw 或 dvdrom

mount /dev/hdb /mnt/cdrecorder 挂载一个 cdrw 或 dvdrom

mount -o loop file.iso /mnt/cdrom 挂载一个文件或 ISO 镜像文件

mount -t vfat /dev/hda5 /mnt/hda5 挂载一个 Windows FAT32 文件系统

mount /dev/sda1 /mnt/usbdisk 挂载一个 usb 捷盘或闪存设备

mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share --挂载 一 个 windows 网络共享

磁盘空间

df -h 显示已经挂载的分区列表

ls -lSr |more 以尺寸大小排列文件和目录

du -sh dir1 估算目录 ‘dir1’ 已经使用的磁盘空间’

du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小

rpm -q -a --qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n 以大小为依据依次显示已安装的 rpm 包所 使用的空间 (fedora, redhat 类系统)

dpkg-query -W -f=’InstalledSize;10t{Installed-Size;10}t{Package}n’ | sort -k1,1n 以大 小为 依据 显示 已安 装的 deb 包所使用的空间 (ubuntu, debian 类系统)

用户和群组

groupadd group_name 创建一个新用户组 groupdel group_name 删除一个用户组 groupmod -n new_group_name old_group_name 重命名一个用户组 useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创 建 一 个 属 于 “admin” 用户组的用户 useradd user1 创建一个新用户 userdel -r user1 删除一个用户 ( ‘-r’ 排除主目录) usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性 passwd 修改口令 passwd user1 修改一个用户的口令 (只允许 root 执行) chage -E 2005-12-31 user1 设置用户口令的失效期限 pwck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的用户

grpck 检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的群组 newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组

文件的权限 - 使用 “+” 设置权限,使用 “-” 用于取消

ls -lh 显示权限

ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5 栏显示

chmodugo+rwxdirectory1设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写㈣

和执行(x )的权限

chmod go-rwx directory1删除群组回与其他人(o)对目录的读写执行权限

chown user1 file1 改变一个文件的所有人属性

chown-R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性 chgrp group1 file1 改变文件的群组

chown user1:group1 file1 改变一个文件的所有人和群组属性

find /-perm -u+s 罗列一个系统中所有使用了 SUID 控制的文件

chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有

者同样的权限

chmod u-s /bin/file1 禁用一个二进制文件的 SUID 位

chmod g+s/home/public 设置一个目录的 SGID 位 - 类似 SUID ,不过这是针对目录的 chmod g-s /home/public 禁用一个目录的 SGID 位

chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件

chmod o-t /home/public 禁用一个目录的 STIKY 位

touch

–创建空白文件
更新文件时间戳

head

​ --查看文件开始的10行内容
head -n 文件名 显示前n行

tail

​ --查看文件末尾10行的内容
tail -n 查看末尾n行
tail -f 以流的方式查看文件末尾内容的变化情况(使用最多的方式)

echo

​ --显示出特殊的空白字符

输出重定向
显示到终端界面

>		清空写入到文件中
>
>		 	>>		追加写入到文件中
more --查看文件

​ 显示最开始的一屏幕的内容 最下面显示显示内容的百分比
​ Enter 键 每次翻一行
​ Space 键 每次往后翻一页
​ q 退出

less --查看文件
	显示最开始的一屏幕的内容
	Enter键		每次往后翻一行
	Space键		每次往后翻一屏幕
	q			退出
	向上  方向键   往前面翻		PgUp
	向下  方向键   往后面翻		PgDn
grep --根据文件内容查找
	grep [选项]  匹配的字符串	文件名
		查找某个文件中是否包含某个字符串
	-n 	显示行号
	-c 	统计次数
	-i	忽略大小写
	-r	进入到目录下查找
   	统计所有.c 文件包含 time 这个字符串的记录
   	grep "time" xxxx/*
   	
   	find / -name "*.c" | xargs grep "time"
| 管道文件

​ 命令 | 命令
​ 把前面命令执行的结果作为 | 后面命令执行时的参数

man --Linux手册
英文
wc --统计 行数 单词 字符/字节 数据库
chmod --修改权限
	u 		user
	g		group
	o 		others
	+-		[rwx]	增加删除	对应权限
	[ugo]+-[rwx]
   	rwx
   	
   	r 	4	100		r--
   	w	2	010		-w-
   	x 	1	001		--x
   	
   	7	rwx		111
   	6	rw-		110
   	5	r-x		101
   	4	r--		100
   	3	-wx		011
   	2	-w-		010
   	1	--x 	001
   	0	---		000

ln --创建链接

​ 文件名的含义:
​ 表示磁盘文件中数据的访问形式和路径
​ 文件的硬件接数:
​ 表示访问该文件所代表的磁盘中的数据的访问方式有多少个
​ ln 路径 文件名 创建硬链接
​ ln -s 创建软链接

硬链接:代表的是磁盘数据的一个访问途径
软链接:保存路径本身
Windows:快捷方式

useradd --增加用户
userdel --删除用户
passwd --修改用户密码

groupadd

groupdel

sudo --获取用户超级权限

su --切换用户

shutdown -h now --立即关机
shutdown -r now --立即重启
reboot --重启
halt --关机
poweroff --关机
ps --查看进程
ps -elf
ps aux
top --任务管理器
kill -9 pid --杀死某个进程
ifconfig --查看网络情况 ipconfig
df --查看文件磁盘 和 文件系统 的使用情况

ctrl+alt+t 快捷打开终端

文本处理三剑客:awk sed grep

使用技巧:
通过方向键[上/下] 可以查找执行过的命令
tab键能自动补全

​ cd - 返回刚才所有的目录
./a.out & &表示把该程序作为后端程序

vi/vim 纯文本编辑器

​ vim是vi的升级版

使用vi时 可以创建新文件
也可以打开一个已经存在的文件
vi的三种模式:命令模式、编辑模式、底行模式
:命令模式:只能识别命令

>​	i,I,A,a,o,O		进入编辑模式
Esc		回到命令模式
>​	shift + :		进入底行模式
Enter	回到命令模式

命令模式:

shift+zz 保存退出

底行模式:

​ q! 强制退出(不保存)
​ q 退出(如果修改,必须强制退出)
​ w 保存
​ wq 保存并退出

i,I,a,A,o,O 的区别:
​ i:在光标位置输入
​ I:在光标所在行行首插入
​ a:在光标位置后面插入
​ A:在光标行行尾插入
​ o:在光标行下面插入新行
​ O:在光标行上面插入新行

移动光标:

​ 方向:h(左)j(下)k(上)l(右)
​ $: 定位到本行末尾位置
​ ^: 定位到本行行首位置
​ gg:定位到第一行
​ G: 定位到末尾行
​ ngg = nG: n代表数字 定位到第n行
​ w: 跳过光标所在单词 定位到下一个单词开始

​ nw

​ ctrl+f

删除行: (删除的内容实际是放到剪切板)

​ dd: 删除光标所在行
​ ndd: 删除从光标行开始n行

复制行:

​ yy: 复制光标所在行
​ nyy: 从光标行开始复制n行

粘贴行:

​ p 粘贴到光标所在行的下一行开始粘贴
​ dw 删除单词
​ ndw n表示数值
​ d$ 删除到行尾
​ d^ 删除到行首

撤销命令:

​ u

​ 反悔撤销:

​ CTRL+r

​ 改写

​ r 只能改写一个字符

​ R 进入改写状态 ESC退出改写状态

​ 大小写转换 ~

可视状态

​ v

​ 操作块

重复执行刚才的命令

​ .

底行模式:

​ 复制: n1,n2 co n3

​ 剪切: n1,n2 mo n3

​ :q

​ :q!

​ :w filename 把内容写入filename当中

​ :wq

​ :r filename 把filename的内容读到当前文档中

替换:

​ %s/oldstr/newstr 全文替换

​ n1,n2s/oldstr/newstr 替换n1到n2中的第一个oldstr

​ n1,n2s/oldstr/newstr/g 全部替换

查找(命令模式下):

​ /string Enter 从光标处往后查找第一个 光标定位到该字符串处

​ n往后查找下一个 N往前查找上一个

​ ?string Enter 从光标处往前查找第一个

​ n往前查找上一个 N往后查找下一个

自动补齐:

​ ctrl+p

可视模块 块模式

CTRL+v

​ I 可视块前插入

​ A 可视块后插入

​ d 删除

​ y 复制

​ c 修改

​ gu 小写

​ gU 大写

​ g~ 大小写转换

​ 按ESC 会影响到整个可视块的内容

shell脚本

​ Linux命令放到一个文件中 vi command.sh

​ 把该文件加上x权限 chmod +x command.sh

​ 可以直接执行该文件 ./command.sh

​ 复制: n1,n2 co n3

​ 剪切: n1,n2 mo n3

​ :q

​ :q!

​ :w filename 把内容写入filename当中

​ :wq

​ :r filename 把filename的内容读到当前文档中

替换:

​ %s/oldstr/newstr 全文替换

​ n1,n2s/oldstr/newstr 替换n1到n2中的第一个oldstr

​ n1,n2s/oldstr/newstr/g 全部替换

查找(命令模式下):

​ /string Enter 从光标处往后查找第一个 光标定位到该字符串处

​ n往后查找下一个 N往前查找上一个

​ ?string Enter 从光标处往前查找第一个

​ n往前查找上一个 N往后查找下一个

自动补齐:

​ ctrl+p

可视模块 块模式

CTRL+v

​ I 可视块前插入

​ A 可视块后插入

​ d 删除

​ y 复制

​ c 修改

​ gu 小写

​ gU 大写

​ g~ 大小写转换

​ 按ESC 会影响到整个可视块的内容

shell脚本

​ Linux命令放到一个文件中 vi command.sh

​ 把该文件加上x权限 chmod +x command.sh

​ 可以直接执行该文件 ./command.sh

相关标签: Linux操作