Linux操作指令整理
Linux操作指令整理
win10中装虚拟机,在虚拟机中运行的Ubuntu。
文章目录
系统指令:
arch --显示机器的处理器架构(1)
uname -m --显示机器的处理器架构(2)
uname -r --显示正在使用的内核版本
dmidecode -q --显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda --罗列一个磁盘的架构特性
hdparm -tT /dev/sda --在磁盘上执行测试性读取操作
cat
三大功能:
-
一次显示整个文件:cat filen ame
-
从键盘创建一个文件:cat>filename只能创建新文件,不能编辑已有文件.
-
将几个文件合并为一个文件: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=’{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
下一篇: 31 多媒体文件操作简述
推荐阅读
-
linux的挂载指令
-
linux操作踩坑记录
-
Linux操作指令整理
-
Java二进制操作(动力节点Java学院整理)
-
在虚拟机下安装Linux操作系统遇到的问题 博客分类: 操作系统 redhat操作系统
-
linux 修改时间 - [命令操作] 博客分类: linux LinuxWindows网络协议XPRedHat
-
浅析Android手机卫士接收短信指令执行相应操作
-
nginx常用配置与操作 博客分类: linux应用 nginxrewritelocation
-
浅析Android手机卫士接收短信指令执行相应操作
-
linux 修改时间 - [命令操作] 博客分类: linux LinuxWindows网络协议XPRedHat