文章目录
Linux常用指令
export
常用来临时修改、新增、删除环境变量。
语法:
export [变量名称]=[变量设置值]
pwd(print work directory)
显示当前工作目录
cd(change directory)
切换目录
语法:
cd [目录名]
切换到上级目录:
cd ..
切换到根目录:cd \
ls (list files)
用于显示目录内容,它的使用权限是所有用户。
语法:
ls [options] 文件名
ls -F
在每一个文件的末尾加上一个字符说明该文件的类型,例如:
/ 表示目录<br>
* 表示可执行文件<br>
@ 表示符号链接<br>
| 表示管道文件<br>
= 表示socket文件<br>
ls-a(all)
列出所有的文件,包括以’ . ’开头的隐藏文件
刚刚测试了一下, 所有目录的文件中都有. (当前目录)
以及..(父目录)
,以便随时进行目录的返回
ls-l(long)与ls -lh(human)
列出文件的详细信息,如创建者、创建时间、文件的读写权限等。
与ls -l不同的是ls -lh
现实的文件大小是转化唯有单位的易读的数据, 而ls -l
则直接显示字节数.
而ls -l得到的结果如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Eqv82uIv-1583418710740)(https://i.imgur.com/reARS6E.png)]
上图中, 第一组数的第一位标识文件类型. 后九位(xwr-组成)分三组, 每组三位分别表示文件所有者
,所有者所在的组
以及其他用户
对该文件的权限. (可读, 可写, 可执行)
如果不同字母表示权限, 还可以用0~7的数字标识每组的权限.
这样的话, 777 就对应于rwx, 000 对应于—.
这点后面命令要用到.
ls -t
按时间进行文件的排序
ls -R(recurse)
递归地列出所有的子目录及子目录中的文件。
ls -S
以文件的大小进行降序排序
rm(或rmdir)
语法
rm [options] [file name]
rm -r
递归删除文件夹
rm -rf
强制删除
切换root/切换用户
方法一:
su root
这样的话需要输入root密码, 很多人并没有设置过. 因为linux在安装时会自动生成一个默认密码.所以在使用前需要先重新设定密码:
执行sudo passwd
,输入两次密码,enter就可以了.
方法二:sudo -i
这时候可能要你输入密码, 只要输入你当前用户的登录密码就好了.
异同: 相同之处很明显, 都可以以管理员身份操作.
而不同之处在于su仅仅取得root权限, 工作环境不变,而sudo是取得root的权限后进入root工作环境. 这个从英文命名上理解比较好
su
switch user
而sudo则是
sudo
super-user-do
chmod (change-mode)
语法:
chmod [options] [权限数值] [文件名]
options当然可有可无.
还可以mkdir -m [权限数值] [file name]
这里说一下, 系统默认新建文件夹的权限是775, 新建文件的权限是664
chmod 的操作是只针对所描述的对象的.
例如: 之前 a.txt的属性是777
chmod o=x a.txt后, 它的权限是771
chown(change-owner)
更改用户群组
chown owner::group filelist
usermod(user-modify)
设置用户相关
更改用户shell的时候可用usermod -s, 前提是你当前用户有root权限
mv
两个功能:
1.重命名
mv [filename] [newname]
2.移动文件
mv [file name] [new path]
在使用其移动功能时, 注意…/的使用
cp
复制文件
cp [file name] [new path]
如果要将一个子目录copy到另一个目录下时, 需要加上 -r 选项;
使用cp命令时, 如不特殊指定, 那么文件的更改时间是最新一次的改动时间, 而文件夹则不会改变
这里关于
cp -r
举个栗子, pic1所描述的系统是文件/dir1/dir2
,/dir1/test.txt
, 以及/dir3
.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yd4q1fkj-1583418710747)(https://i.imgur.com/Q1tddNr.png)]
此时如果执行cp /dir1/* /dir2
的话,只有test.txt
copy到了dir3
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vDkCKOg5-1583418710749)(https://i.imgur.com/lKnOwuV.png)]
而cp -r /dir1/* /dir2
则会将dir1中的内容全都copy.
而cp /dir1 /dir2
则会直接提示操作失败, 因为这里cp的对象是整个/dir1文件夹. 而之前的cp操作对象是/dir1下的所有文件及目录, 所以即使不加 -r 也可以把非目录文件copy到对应目录下.Over~
grep
在指定文件中搜索特定的内容,并将含有这些内容的行输出.
grep [options] [关键字] [搜索目标]
tips:这里的搜索目标应该是普通文本.
grep -n
显示搜索的关键字在文本中对应的行数
grep -v
显示文本所有内容,除了[关键字]
grep -c
显示关键字出现的次数
find(默认递归)
查找文件
find [path] [options] [file name]
find [path] -name
后接指定的文件名,支持通配符
find [path] -user
后接所要查找的文件的归属者(用户)
find [path] -size
后接文件大小, 形如
find . -size +4k
就是在当前路径下递归查找大于4k的文件
sed
编辑文本, 显示指定行数的内容
sed -n 'x,yp' filename //用以显示x,y行的内容
内存
free -m
查看内存
fdisk -l
查看系统物理内存
查看硬盘和分区的详细信息(需要root或超级用户的权限)
df -h
查看磁盘分区的总容量、已用容量等信息
du -sh
查看磁盘文件已用容量,以指定目录下的子目录为单位,显示每个子目录内所有档案所占用的磁盘空间大小。
lsblk
查看硬盘和分区分布
head & tail
head(tail) -n filelist
查看一个或多个文件的首(末)n行
ps(process-status)
查看执行ps命令的那个时刻的那些进程.
如果想要动态的显示进程信息,就可以使用top命令。
ps -l查看详细信息
S的标识符 | 含义 |
---|---|
D | 不可中断 |
R(Runable) | 正在运行 |
S(Sleeping) | 正在休眠 |
T(trance) | 停止 |
Z(Zombie) | 僵尸进程 |
文件压缩
压缩 | 解压 |
---|---|
gzip | gzip -d 或gunzip |
bzip2 | bzip2 -d |
tar -zcvf | tar -zxvf (.gz) |
tar -jcvf | tar -jxvf (.bz2) |
tar -c | tar -x |
-k可以保留原文件压缩
- 解压后的文件最后更改日期是和原文件相同的, 和解压时间无关
- tar解压后原文件存在
vim小tips
-
x 也是剪切,使用后p命令可以粘贴出最近一次删除的内容。
目前接触到的x,d命令都是剪切,好像没有直接删除的,猜想删除就是在剪切的基础上实现的(类似于cp和mv的关系); -
除:wq外,ZZ也可以实现保存并退出的功能。(具体区目前别没有查到);
-
:w是当前路径保存,后面还可以加上新路径, 实现“另存为”的功能;
-
vim 可以连续打开多个文件:vim file1 file2,然后使用命令:bn和:bp进行切换。或者vim打开后,使用:open filename来打开另一个文件;
-
移动光标时,
G按行移动:nG是到n行,G到末行,gg到首行;
w按单词移动(以空格为区分):w到达下一个词首,e到达下个词尾; -
%进行括号匹配(当前光标必须在括号的一端上,否则无意义);
-
*和#,快速匹配全文中当前光标所在的单词,n是下一个,N上一个(对,类似于/pattern查找);
-
/key\c不区分大小写,key、KeY都可以被匹配
/key\C区分大小写; -
😒(substitute)命令用来查找和替换字符串。
:[range] s/before/after/tag
ranges填写查找范围.1,7 s/mian/main/g就是把mian替换为.
- : set nu可产生编号
更改shell
sudo vi /etc/passwd
或
sudo usermod -s /bin/bash
增删su角色
增:
sudo adduser username sudo
删:
sudo deluser username sudo
增加用户
supo useradd [-g group] newuser -m
或
adduser
-g 组
-m /home下生成newuser的家目录~
xdg-open
以默认方式打开文件
swp 文件
刚刚执行 ls -a 看到的, 网上查了一下, 就大概说一下
这个是在使用vim编辑文本然后非正常退出后产生的备份文件. 严格地说是在你一打开vim, 这额文件就产生了, 如果你正常退出, 它是不会保存的.
所以这个文件算是vim比较人性化的地方吧.
具体恢复方法如下
vi -r [file name]
一些小知识
-
usr是Unix System Resource的简称, 不是什么user
-
linux用户目录一般在 /home/下
-
R一般表示递归(目录下所有文件及子目录) recursion
-
r一般表示逆序 reverse
-
ls -ld显示自身信息
ls -l(long)
ls -rt(r= reverse t = time)
注意各种命令配合管道操作!