linux常用命令

set查看环境变量和shell变量,带参数为设置
export可以将shell变量导出为环境变量
检验变量是否为环境变量:echo $MYVAR有输出,printenv $MYVAR无输出,则不是环境变量
环境变量还原shell变量:export -n MYVAR
删除环境变量和shell变量:unset MYVAR



1、忘记root密码:
读秒的界面按e进入选择系统界面,
按e进入选择内核界面
按e进入另一个界面,在quit后面输入single,回车
此时界面会停在选择内核界面,按b进入修改密码界面
passwd root
重复输入两次   init 6重启即可



2、whatis printf显示命令所在的具体的文档类别
man 3 printf

3、
nohup

script 记录shell敲入的命令定向到typescriptscript文件中
cat myfile | tr a-z A-Z> output.txt将文件中小写转换为大写
grep -n '^the' regular_express.txt 查找the在行首的行   'the$' 查找the在行尾的行     ^$代表空行
去除 空白行和行首为 #的行     grep -v '^$' regular_express.txt | grep -v '^#'


4、改变文件的属组和属主
单独修改:
chown 属主(想改变成的属主用户)  文件名
chgrp dba(想改变成的属组用户) 文件名



5、文件和目录的默认以及隐藏权限
chattr:设置文件的隐藏权限
chattr +a(i) 1.c 
a:只允许向文件中添加数据,不能删除
i:不能删除、改名、写入新数据

查看隐藏权限时用lsattr

6、umask 0022
普通文件的默认权限是644,666-022=64
普通目录的默认权限是755,777-022=755
可以修改umask的值,修改默认文件目录的权限
最前面的哪一位的0代表特殊权限,见下文粘着位

7、粘着位
目录设置了粘着位之后,只有目录的所有者和root用户才能删除该目录
比如普通文件的权限为644,即drw-r--r--
设置粘着位时,chmod u+s,g+s,o+t appl,设置后的权限为drwsr-sr-t
8、目录
[root@lill /]# tree -L 1 \
.
├── bin #常用的二进制命令所在目录(ls、mkdir等) 
├── boot #Linux的内核及引导程序所需的文件目录
├── dev #设备文件的目录(声卡、磁盘等’)
├── etc #二进制安装包(yum,rpm)的配置文件默认路径,服务启动命令存放的目录(/etc/init.d(yum,rpm))
├── home #普通用户的家目录
├── lib #库文件存放的目录
├── lib64 #库文件存放的目录(32位系统没有这个目录)
├── lost+found #开机启动时在这个目录检查并修复系统意外崩溃或关机产生的文件碎片
├── media #即插即用设备的挂载点自动存放在这个目录下.像U盘,cdrom/dvd自动挂载后,就会在这个目录下.
├── mnt #一般用于临时挂载设备的挂载目录,如u盘等,要先挂载才可以使用
├── opt #一般用于安装软件的目录 
├── proc #操作进行时,进程信息及内核信息(cpu、硬盘、内存信息等)存放在这里
├── root #超级权限用户root的家目录
├── sbin #大多存放的是系统管理的命令,是超级权限用户root可执行命令的存放目录
├── srv #存放一些服务器启动之后需要提取的数据.
├── sys #用于将系统中的设备组织成层次结构,并向用户模式程序提供详细的内核数据结构信息
├── tmp #用户运行程序时会产生临时文件,就存放在这个目录
├── usr #系统存放程序的目录。比如命令、帮助文件等
└── var #这个目录内容会经常变动,/var/log/messages*存放系统日志文件,/var/spoolcron:cron and at job定

cat >1.c<<EOF 输入完成后要加EOF结束

9、设备管理
/dev/sda5
hd表示IDE设备
sd表示SCSI设备
a表示硬盘的顺序号
5表示分区的顺序号

10、进程间通讯
信号量:每一行代表一个信号量集
perms         nsems
信号量集的权限   对应信号量集中信号量的个数

消息队列
message中存当前队列中存在的消息个数,不为0时说明队列阻塞
used_bytes中可以看到当前所有消息所占用的字节数

ipcs -p -l -u




给用户添加sudo权限,使用时sudo 用户名,即可用普通用户执行root下的程序
1.进入超级用户模式,添加文件的写权限chmod u+w /etc/sudoers
2.编辑/etc/sudoers文件,找到root ALL=(ALL),即 root 可以在任意主机上以任意用户身份运行任意命令
在其下面添加xxx ALL=(ALL) ALL
3.撤销文件的写权限,chmod u-w /etc/sudoers








方法一 
nm -D *.so 
方法二 
objdump -tT *.so


mv -v                 查看是否成功
mv -i               关于覆盖文件的提示
mv -u 只有在源文件比目标文件新时才更新,配合mv -uv使用
mv -bv 移动文件时备份将要覆盖的目标文件

vi a b -O    比较两文件用:windo diffthis 关闭比较用windo diffoff

合并行用J

man快捷键  shift k

:r filename 将文件读到光标所在位置

x删除字符,dd删除行

d$                从当前光标起删除字符直到行的结束;
d0                从当前光标起删除字符直到行的开始;
J                 删除本行的回车符(CR),并和下一行合并。

Vim常规的替换命令有 c 和 s ,结合Vim的其他特性可以实现基础的替换功能,不过替换命令执行以后,通常会由 编辑模式 进入 插入模式 :

s                用输入的正文替换光标所指向的字符;
S                删除当前行,并进入编辑模式;
ns               用输入的正文替换光标右侧 n 个字符;
nS               删除当前行在内的 n 行,并进入编辑模式;
cw               用输入的正文替换光标右侧的字;
cW               用输入的正文替换从光标到行尾的所有字符(同 c$ );
ncw              用输入的正文替换光标右侧的 n 个字;
cb               用输入的正文替换光标左侧的字;
ncb              用输入的正文替换光标左侧的 n 个字;
cd               用输入的正文替换光标的所在行;
ncd              用输入的正文替换光标下面的 n 行;
c$               用输入的正文替换从光标开始到本行末尾的所有字符;
c0               用输入的正文替换从本行开头到光标的所有字符。


vim:
1、0跳到行首,shift $ 跳到行尾         shift # 匹配该选中文件的上一个
2、/pattern   向下查找   ?pattern 向上查找      /git[tf] 查找git或者gif    /^int 找到以int开头的行
3、SOH  accii码为1  十进制为1     进入编辑模式,按Ctrl v再按Ctrl A即可
4、:x相当于:wq    当文件没被修改时,x不会更改文件的修改时间。shift zz 保存文件
5、set hlsearch语法高亮 
6、在非root用户修改一个没有写权限的文件,只需要运行:w !sudo tee %
7、gg  V  G   g?  改变屏幕编码方式            
8、把光标放在开始的圆括号上,di(命令会删除圆括号内的内容,(可换成{
9、把光标放在某个单词上,dt;命令会删除该单词到句子末尾的内容(除了;),;可换成.等符号
10、:%!xxd十六进制显示文本     加-r取消十六进制显示   打开二进制文件用vim -b,否则文件最后会有0x0a
11、zz会把光标所在的行置于屏幕中央,ctrl i和ctrl o是相反的
12、:%TOhtml      
13、:n,m w filename 将n到m行另存为filename,:r filename 将filename数据读入到当前文件
14、x向后删除一个字符、X向前删除一个字符
17、HOME、END、pageup/down
18、ctrl+v   shift+i   第一行的前面插入一个引号  esc
19、大小写转换:ctrl+v    shift+u 小写转大写(u 小写)
20、粘贴外部代码   :set paste  i    :set nopaste
21、shift <  或者shift >     代码缩进、回退
22、fmt filename 默认查看文件以每行宽度为75显示   fmt -w 20 filename    -s默认拆分长行   单词或者句子之间用空格分开
23、iotop 程序写入到磁盘的频率和次数
    pidof 输出指定程序的进程ID
24、tee   -a表示追加模式 
    用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。简单的说就是把数据重定向到给定文件和屏幕上。存在缓存机制,每1024个字节将输出一次。若从管道接收输入数据,应该是缓冲区满,才将数据转存到指定的文件中。若文件内容不到1024个字节,则接收完从标准输入设备读入的数据后,将刷新一次缓冲区,并转存数据到指定文件。
25、vi中搜索  /^love所有以Love开头的行       /love所以以love结尾的行     /[Ll]ove 找Love或者love   注意:(LL|ll)ove   用|表示可以单词之间或的关系,[]只表示字符间关系
    /<love  任何以love开头的单词         />love任何以love结束的单词
26、在文件中使用:set  fileencoding = utf-8  将某文件转换为utf-8格式
27、man mkdir|grep -e '-m'  单独输出-m选项含义    
28、在编辑模式下,I 在光标所在行的第一个非空字符前插入内容
               a 在光标所在处的下个字符插入数据,A 在光标所在行最后一个字符后插入内容
               o:在光标所在行下面新建一行插入内容  O:在光标所在行上面新建一行插入内容
29、H M L 将光标移动到当前屏幕的最上行、中间行、尾行   字母前可加数字
30、w                右移光标到下一个字的开头;
    e                右移光标到一个字的末尾;
    b                左移光标到前一个字的开头;
    0                数字0,左移光标到本行的开始;
    $                右移光标,到本行的末尾;
    ^                移动光标,到本行的第一个非空字符。
    
    
    
    
1、保存文件:
w /filename 另存为filename
1,20w  /filename 1到20行另存为filename
w !sudo tee % 保存无权限时
:only   只保留当前窗口
2、光标移动:
h左   backspace  5\
l右   spqce
j下   ctrl n    enter 
k上   ctrl p    
 
w    光标右移一个字符至其首部
b    光标左移一个字符至其首部
e    光标右移一个字符至其尾部

/*常用*/
数字0  光标移动到当前行首
$      光标移动到当前行尾


(   句首
)   句尾

{  段落开始
}   段落结尾

nG/$ 光标移至第n行首/尾

ctrl + d 向文件尾部翻半屏
ctrl + u 向文件首部翻半屏

3、插入

I 当前行首插入

a 光标后插入
A 当前行尾插入

o 当前行之下新开一行插入
O 当前行之上新开一行插入

R  替换当前字符以及其后的字符,直至ESC结束


s  从当前光标开始处,以输入的文本代替指定数目的字符(结合ctrl v ,替换多行中多列的字符)

S = dd + i

]p  粘贴时代码自动缩进

4、删除

d0  删至行首
d$或D 删至行尾
x/X 删除光标后/光标前一个字符,
:%d 删除全部内容
/\/abc  查找/abc

5、替换
s/a/b/    当前行第一个a换成b
s/a/b/g   当前行所有a换成b

n,$s/a/b/  n行到最后一行每一行第一个a换成b
n,$s/a/b/g n行到最后一行每一行所有的a换成b
n,ms/a/b/g n到m行所有a替换成b

































 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值