新闻资讯

新闻资讯 媒体报道

程序员常用Linux命令(笔记)

编辑:016     时间:2021-07-23
文件和目录管理:

创建文件夹 mkdir

创建纯文件:touch

删除:rm

删除当前目录下所有: rm -r *

强制删除:rm -f

删前提示:rm -i

递归删除:rm -rf /dir

删除空目录:rmdir

删除非空目录: rm -rf file或者rm -r file

移动:mv

将文件demo.txt改名为test.txt:mv demo.txt test.txt

将 /usr/runoob下的所有文件和目录移到当前目录下:mv /usr/runoob/* .

将 info 目录放入 logs 目录中。注意,如果 logs 目录不存在,则该命令将 info 改名为 logs: mv info/ logs

复制:cp -r demo/ newtest(将demo目录下的所有文件复制到newtest)

显示当前路径:pwd

切换工作路径:cd path(path为所切换路径)

vim使用:

当文件存在时,进入文件直接编辑。

文件不存在时,在推出时自动建立文件

vim异常推出时:

O 只读打开

E 直接忽略.file.swap信息编辑文件

R 利用.file.swap进行为保存数据恢复

D 删除.file.swap

Q 退出

A 终止

vim替换:

#替换每一行的第一个a

:%s/a/b/

#全部替换

:%/s/a/b/g

#替换/时需要转义"\/"

作用在当前行::s/ok/hello/g

作用在全文::%s/ok/ng/g

指定第一行::1s/ok/ng/g

指定第六行到第十行::6,10s/ok/ng/g

指定第六行到最后一行::6,$s/ok/ng/g

当前行到当前行后两行::.,+2s/ok/ng/g

%全局范围,.当前行

:%s/ok/ng/:替换全文每一行的第1个 ok 为 ng

:s/ok/ng/:替换当前行的第1个 ok 为 ng

g作用范围所有目标,i表示大小写不敏感,I表示大小写敏感,c表示替换前弹出确认框

:%s/ok/ng/g:出现的g,作用范围内的所有目标

:s/ok/ng/gi:i表示大小写不敏感查找,I表示大小写敏感

例::s/OK/ok/I(将当前行的第1个大写的OK 替换成小写的 ok)

:%s/ok/ng/gc:作用在全文每行出现的所有 ok 的替换确认

sed替换:

注:'作用范围s/替换查找目标/替换成为/替换目标option(g)' 文件名

没有g,作用范围内所在行的第1个目标

替换第一行:sed '1s/.*/hello/' test.txt(将test.txt文件第一行的全部内容替换为hello)

替换六到十行:sed '6,10s/.*/hello/' test.txt(将test.txt文件第六到十行的全部内容替换为hello)

替换第6行到最后一行 :sed '6,$s/.*/dog/g' test.txt(将test.txt文件第六行到最后一行)

替换第一行的后两行:sed '1,+2s/.*/hello' test.txt(将test.txt文件的第一行的后两行替换,用+号,-号不可用)

替换全文:sed 's/.*/hello' test.txt

文件查找:

ls 显示当前文件下的文件

ls -a 显示当前文件下所有文件(包括隐藏文件)

ll 以详细模式显示当前文件下文件

find ./ -name"core*"|xargs file 搜寻文件或目录

find ./ -name "*.o" 查找文件夹下是否有obj文件

cat -n 查看文件内容

sed批量删除:

删除第一行:sed '1d' test.txt

删除第n行:sed 'nd' test.txt

删除五到七行:sed '5,7d' test.txt

删除一、五、九行:sed '1d;5d;9d' test.txt

find命令:

-name 按照文件名查找文件

-iname 不按照大小写查找文件

-perm 按照权限查找文件 find -perm 744

-size 根据文件大小来查找 find -size +25k/M/C(+代表大于,-代表小于,k时必须为小写若为M时必须为大写)

-prine 使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略

-user 按照文件属主来查找文件

-group 按照文件组来查找文件

find根据时间查询;

-mtime -n +n #按照文件的更改时间来查找文件

-n 表示从此刻算起,文件的更改是在n天以内

+n 表示文件的更改时间是在n天以前

find命令还有-atime和-ctime选项,和-mtime选项的时间规定类似

-nogroup 查找无有效属组的文件,即该文件所属的组在/etc/groups中不存在

-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在

-newer file1 ! file2 查找更改时间比file1新但比file2旧的文件

例:find . -name "*.txt" 当前目录下

find / -name "*.txt" 系统中

ps命令:

查找指定进程:ps -ef |grep 进程关键字(-e显示所有进程,-f把所有进程信息显示出来)

显示进程信息: ps -A

显示进程用户信息: ps -u root

显示所有命令,连带命令行:ps -ef

grep命令:

grep -r test /etc/pic 查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"test"的文件,并打印出该字符串所在行的内容

grep -v test *demo.txt* 查找文件名中包含 demo 的文件中不包含test 的行

权限命令:

添加用户:useradd -d /home/sam -m sam(创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam)

删除用户:userdel -r sam (删除sam用户)

修改用户:usermod -s /bin/ksh -d /home/z –g developer sam

更改当前用户密码:passwd

查看当前用户:whoami

查看文件权限:ls -l

查看文件夹权限: ls -ld

增加用户组:groupadd group1(增加用户组1)

增加了一个新组group2,同时指定新组的组标识号是101:groupadd -g 101 group2

删除用户组:groupdel group1

将组group2的组标识号修改为102:groupmod -g 102 group2

将组group2的标识号改为10000,组名修改为group3:groupmod –g 10000 -n group3 group2

切换用户组:newgrp root(切换到root用户组)

文件权限:

d 目录

- 文件

I 链接文件(快捷方式)

b 块设备

c 设备文件

r可读,w可写,x可执行

前三个字符:rwx 拥有者权限,可读,可写,可执行

中间三个字符:r-x所属用户组权限,可读可执行不可写

后三个字符:r-x其他人权限,可读可执行不可写

chgroup(chgrp)命令:

将/home/abc.txt文件的所在组修改成bandit:chgroup bandit /home/abc.txt

将/home/kkk目录下所有的文件和目录的所在组都修改成bandit:chgroup  bandit -R /home/kkk/

chmod命令:

给abc文件的所有者读写执行的权限,给所在组读执行权限,给其它组写执行权限:chmod u=rwx,g=rw,o=wx

给abc文件的所有者除去执行的权限,增加组写的权限 :chmod u-x,g+w

给abc文件的所有用户添加读的权限:chmod a+r abc

chown命令: 需要超级用户root的权限才能执行此命令。

chown root /var/run/httpd.pid 把/var/run/httpd.pid的所有者设置 root

chown runboob:runoobgroup fiel1.txt 将文件 file1.txt的拥有者设为 runoob,群体的使用者 runoobgroup

chown -R run oob:runoobgroup* 将当前前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup

chown :512 /home/runoob 把 /home/runoob 的关联组设置为 512 (关联组ID),不改变所有者

sudo命令:

以系统管理员的身份执行,点击,执行的接口,sudo所所见的权限就像一个root用户直接执行。使用权限:在/etc/sudoers中出现过的用户。

以root权限执行上一条 命令:sudo !!

显示sudo设置:sudo -L

指定用户来执行命令:sudo -u admin ls -l

以特定用户进行编辑文本:sudo -u uggc vi ~www/index.html(以uggc用户身份编辑首页下www目录中的index.html文件)

查看当前已有权限:sudo -l

查看sudo版本信息:sudo -V

su命令;

su username,切换到指定用户,但是当前目录不会变化,环境变量还是上一个用户的环境变量。

变更账号为root并在执行ls指令后退出变回原使用者:su -c ls root

变更账号为root并传入-f参数给新执行的shell: su root -f

变更帐号为 clsung 并改变工作目录至 clsung 的家目录:su - clsuing

su - 命令:

su - username,切换到指定用户,当前目录即刻切换成指定用户的家目录,即~,环境变量 即刻切换到指定目录的环境变量。

gpasswd命令:

如系统有个 peter 账户,该账户本身不是 groupname 群组的成员,使用 newgrp 需要输入密码即可:gpasswd groupname

添加一个用户到一个组,同时保留以前添加的组时,请使用 gpasswd 这个命令来添加操作用户:gpasswd -a user_name group_name

压缩解压:

压缩文件a.c为test.tar.gz tar -czvf test.tar.gz a.c

列出压缩文件内容:tar -tzvf test.tar.gz

解压文件:tar -xzvf test.tar.gz

将文件 abc 进行压缩时,排除1.txt,压缩后的文件名为 abc.tar (abc下有两个文件1.txt,2.txt):tar --exclude=abc/1.txt -zcvf abc.tgz abc

kill命令:

杀死进程:kill svn

强制杀死进程:kill -KILL svn

彻底杀死进程;kill -9 svn

杀死指定用户的进程:kill -u hnlinux

pkill命令:

会杀死指定名字的所有进程

pkill -9 svn

改变根目录:chcroot /mnt/ls
————————————————
版权声明:本文为CSDN博主「✪vc6」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44279159/article/details/118946385
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

回复列表

相关推荐