Linux常用指令

1.创建用户组、用户

#创建用户组 groupadd 用户组名
groupadd manage
#创建用户 groupadd -g 用户组 用户
useradd -g manage it
#给用户设置密码 passwd 用户
passwd it
#密码保持有效的最大天数  chage -M MAX_DAY 用户
chage -M 9999 用户
#设置用户登出时间
vim /etc/profile   #编辑该文件,末尾追加 TMOUT = 600 (600即为600s)
source /etc/profile  #使修改的配置文件立即生效

#切换ROOT用户
sudo su -
#切换为it用户
su - it
#添加账号至sudoers文件中(添加sudo权限)
chmod u+w /etc/sudoers   #添加w权限才能写入
vi /etc/sudoers  #将需要添加sudo权限的账号写入
chmod u-w /etc/sudoers  #去除写权限

2.特殊目录

.   #当前目录
..  #上一层目录
-   #前一个工作目录
~   #目前用户身份所在的家目录
~account #代表account用户所在的家目录

2.创建文件夹相关

#创建文件夹 mkdir -p 文件夹名 可将所需要目录(包括上级目录)递归建立起来。
mkdir -p /opt/work
#文件夹赋权 chown -R 用户:组 文件夹
chown -R it:manage /opt/work

3.创建文件夹相关

#创建文件夹 mkdir -p 文件夹名 可将所需要目录(包括上级目录)递归建立起来。
mkdir -p /opt/work
#文件夹拥有者变更 chown -R 用户:组 文件夹 其中-R表递归
chown -R it:manage /opt/work
# rwx (可读写运行) 权限则将该权限位 设置 为 4 + 2 + 1 = 7(r=4,w=2,x=1)
#mkdir -m 711  目录  建立权限为 rwx--x--x 的目录
#也可以用chmod命令赋权
chmod +x /opt/work/run.sh

查询jdk并删除现有jdk

#查询当前所有jdk版本
rpm -qa|grep jdk
#删除当前jdk (强制删)
rpm -e --nodeps 版本号
#md5sum 检查文件
md5sum 文件名
#安装.rpm后缀的jdk rpm -ivh  i 安装 v详细信息 h显示进度
rpm -ivh 包全名
#验证jdk安装 
java -version

跨机器拷贝文件

#1. scp 账号@ip:目录 目标路径
scp it@192.168.131.2:/opt/work/run.sh
#2. rsync -avzp 账号@ip:目录  目标路径  (断点续读,保留信息)

查看历史操作

#查看历史操作
history

在这里插入图片描述

查看当前目录下文件的ls命令

#按时间顺序查看当前文件夹下所有文件
#-al 列出所有档案详细的权限与属性
#-l --full-time 可以显示完整的时间格式,包括年、月、日、时间
ls -ltr
#查看所有文件包括隐藏文件
ls -ltra

关于删除命令 rm

# -i 删除前询问使用者是否动作
# -r 递归删除,危险
rm [-fir] 档案或文件

关于kill命令

# -9 无条件强制退出
# -15 进程停止,按序操作
kill -9
kill -15

关于查找文件的命令

#locate 文档的部分名称(局限性,新建立的文件在数据库更新之前可能搜索不到)
locate run
#find [path] [option] [action]
#根据文件名查找文件(文件名要全或者使用正则)
find / -name ttt.txt
find / -name ttt.*

关于复制文件cp

# -i 若目标文件已经存在,覆盖前会进行询问
# -r 递归持续复制
cp -i source destination
cp -r source destination

在这里插入图片描述 vim 的三种模式只有一般模式可以与编辑、指令列模式切换,编辑模式不指令列模式之间不能切换。

关于查看或编辑文档后相关指令

# 0 或 home 移到这一行最前面字符处 
# $或功能键[End] 移到这一行最后面字符处(常用)
# gg 移到这个档案的第一行
# yy 复制光标所在行
# p 在光标所在下一行粘贴
# x 删除当前光标元素
# a 在当前光标后输入
# o 在当前光标后方输入
# r 替换当前光标值
# n<Enter> n为数字,光标向下移动n行
# /word 向光标下寻找一个名称为 word 的字符串。例如要在档案内搜寻vbird 这个字符串,就输入 /vbird 即可!
# ?word 向光标之上寻找一个名称为 word 的字符串

通常先使用whereis或locate去搜索,都查不到才用find。因为whereis或locate是用数据库(因为 Linux 系统会将系统内的所有档案都记录在一个数据库档案里面)来搜索数据(故以数据库为准),而不是直接搜索硬盘,比较省时。
有时会发现使用这两个执行档时,会找到已经被杀掉的档案! 而且也找不到最新的刚刚建立的档案呢!这就是因为这两个指令是由数据库当中的结果去搜寻档案的所在啊!

关于which、whereis、find 和locate

which 查找执行档
which [-a] command
选项或参数:
-a :将所有由 PATH 目录中可以找到指令均列出,而不止第一个被找到指
令名称

范例一:分别用 root 与一般账号去搜寻 ifconfig 这个指令文件名
[root@www ~]# which ifconfig
/sbin/ifconfig <==用 root 可以找到正确的执行档名
[root@www ~]# su - vbird <==切换身份成为 vbird 去!
[vbird@www ~]$ which ifconfig
/usr/bin/which: no ifconfig in 
(/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin
:/home/vbird/bin) <==一般身份账号找不到!
# 因为 which 是根据用户所设定的PATH 变量内的目录去搜寻可执行文件的,所以,
# 不同的 PATH 设定内容所找到当然不一样啦!因为 /sbin 不在 vbird 的PATH 中。

范例二:用 which 去找出 which 档名为何?
[root@www ~]# which which
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot '
 /usr/bin/which
# 结果竟然有两个 which ,其中一个是 alias ,这就是所谓的『命令别名』,
#意思是输入 which 会等于后面接的那串指令
范例三:请找出 cd 这个指令完整文件名
[root@www ~]# which cd
/usr/bin/which: no cd in 
(/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin
:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
# 发现并没有找到cd命令,这是因为 cd 是『bash 内建
#的指令』; 但是 which 预设是找 PATH 内所规范的目录,因此查询不到;可以用 type 这个指令查询。

whereis(查询特定档案)

[root@www ~]# whereis [-bmsu] 档案或目录名
选项或参数:
-b: 只找二进制文件。
-m: 只找在说明文件manual路径下的文件。
-s: 只找source源文件。
-u: 没有说明文档的文件。
范例一:请用不同的身份找出 ifconfig 这个档名
[root@www ~]# whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
[root@www ~]# su - vbird <==切换身份成为 vbird
[vbird@www ~]$ whereis ifconfig <==找到同样的结果
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
[vbird@www ~]$ exit <==回到身份成为 root 去!
# 注意看,明明 which 一般使用者找不到的 ifconfig 即可以让 whereis 找到!
# 这是因为系统真的有 ifconfig 这个『档案』,但是使用者的 PATH 并没有加入
/sbin
# 所以,未杢你找不到某些指令时,先用档案搜寻指令找找看再说!
范例二:叧找出跟 passwd 有关的『说明文件』档名(man page)
[root@www ~]# whereis -m passwd
passwd: /usr/share/man/man1/passwd.1.gz 
/usr/share/man/man5/passwd.5.gz

whereis命令安装

yum install util-linux

以下的find指令很强大,但它是直接搜索硬盘,故时间花销大;这是可以尝试使用whichis
find。

locate

[root@www ~]# locate [-ir] keyword
选项或参数:
-i :忽略大小写的差异;
-r :后面可接正则表示法的显示方式
范例一:找出系统中所有与 passwd 相关的档名
[root@www ~]# locate passwd
/etc/passwd
/etc/passwd-
/etc/news/passwd.nntp
/etc/pam.d/passwd
...
# 常用 locate 『档案的部分名称』


locate的安装方法:
yum -y install mlocate
updatedb
locate nginx.conf
locate使用的限制:

他是经由数据库库搜寻的,而数据库癿建立默认是在每天执行一次 (每个distribution 都不同,CentOS 5.x 是每天更新数据库一次!),所以对于你新建立起的档案,但还在数据库更新之前搜寻该档案,那么 locate 会告诉你『找不到!』。
可以手动更新数据库,直接输入 updatedb即可:
『 updatedb 』
updatedb 指令会去读取 /etc/updatedb.conf 这个配置文件的设定,然
后再去硬盘里面迚行搜寻文件名的操作, 最后就更新整个数据库档案。因为 updatedb 会去搜寻硬
盘,所以当你执行 updatedb 时,可能会等待数分钟的时间。
updatedb:根据 /etc/updatedb.conf 的设定去搜寻系统硬盘内的文件名,并更新/var/lib/mlocate 内癿数据库档案;
locate:依据 /var/lib/mlocate 内的数据库记载,找出用户输入的关键词文件名。

find

[root@www ~]# find [PATH] [option] [action]
选项或参数:
1. 与时间有关的选项:共有 -atime, -ctime 与 -mtime ,以 -mtime 说明
 -mtime n :n 为数字,意义为在 n 天之前的『一天之内』被更改过内容的档
案;
 -mtime +n :列出在 n 天之前(不含 n 天本身)被更改过内容的档案档名;
 -mtime -n :列出在 n 天之内(含n 天本身)被更改过内容的档案档名。
 -newer file :file 为一个存在的档案,列出比 file 还要新的档案档名
范例一:将过去系统上面 24 小时内有更改过内容 (mtime) 的档案列出
[root@www ~]# find / -mtime 0
# 那个 0 是重点!0 代表目前癿时间,所以,从现在开始到 24 小时前,
# 有变动过内容的档案都会被列出来!那如果是三天前的 24 小时内?
# find / -mtime 3 有变动过的档案都被列出的意忠!
范例二:寻找 /etc 底下的档案,如果档案日期比 /etc/passwd 新就列出
[root@www ~]# find /etc -newer /etc/passwd
# -newer 用在分辨两个档案之间的新旧关系是很有用的。

在这里插入图片描述

选项或参数:
2. 与使用者或组名有关的参数:
 -uid n :n 为数字,这个数字是用户的账号 ID,亦即 UID ,这个 UID 是记录在
 /etc/passwd 里面与账号名称对应的数字。
 -gid n :n 为数字,这个数字是组名的 ID,亦卲 GID,这个 GID 记录在/etc/group
 -user name :name 为使用者账号名称喔!例如 dmtsai
 -group name:name 为组名喔,例如 users ;
 -nouser :寻找档案的拥有者不存在 /etc/passwd 的人!
 -nogroup :寻找档案的拥有群组不存在于 /etc/group 的档案!
 #比如你自行安装软件时,很可能该软件的属性当中并没有档案拥有者,
 #这是可能的!在这个时候,就可以使用 -nouser 不 -nogroup 搜寻。
范例三:搜寻 /home 底下属于 vbird 的档案
[root@www ~]# find /home -user vbird
# 这个东西也很有用~比如我们要找出任何一个用户在系统当中的所有档案时,
# 就可以利用这个指令将属于某个使用者的所有档案都找出来喔
范例四:搜寻系统中不属于任何人的档案
[root@www ~]# find / -nouser
# 透过这个指令,可以轻易的就找出那些不太正常的档案。
# 如果有找到不属亍系统任何人癿档案时,不要太紧张,
# 那有时候是正常的~尤其是你曾经以原始码自行编译软件时。
#误删账号也可用此方法
选项或参数:
3. 与档案权限及名称有关的参数:
 -name filename:搜寻文件名为 filename 的档案;
 -iname filename:不区分大小写
 -size [+-]SIZE:搜寻比 SIZE 还要大(+)或小(-)癿档案。这个 SIZE 的规格有:
 # c: 代表 byte, k: 代表 1024bytes。
 #所以,要找比 50KB还要大的档案,就是『 -size +50k 』
 -type TYPE :搜寻档案的类型为 TYPE 的,类型主要有:一般正规档案 (f),
 #装置档案 (b, c), 目录 (d), 连结档 (l), socket (s),及 FIFO (p) 等属性。
 -perm mode :搜寻档案权限『刚好等于』 mode 的档案,这个 mode 为类
#似 chmod的属性值,举例来说, -rwsr-xr-x 癿属性为 4755 !
 -perm -mode :搜寻档案权限『必须要全部囊括 mode 的权限』的档案,举例来说
 #我们要搜寻 -rwxr--r-- ,即 0744 癿档案,使用 -perm -0744,
 #当一个档案的权限为 -rwsr-xr-x ,即 4755 时,也会被列出来,
 #因为 -rwsr-xr-x 的属性已经囊括了 -rwxr--r-- 的属性了。
 -perm +mode :搜寻档案权限『包含任一 mode 的权限』的档案,举例来说,我们搜寻
 #-rwxr-xr-x ,即 -perm +755 时,但一个文件属性为 -rw-------
 # 也会被列出来,因为他有 -rw.... 的属性存在!
范例五:找出档名为 passwd 这个档案
[root@www ~]# find / -name passwd
# 利用这个 -name 可以搜寻档名啊!
范例六:找出 /var 目录下,文件类型为 Socket 档名有哪些?
[root@www ~]# find /var -type s
# 这个 -type 的属性也很有帮助喔!尤其是要找出那些怪异的档案,
# 例如 socket 与 FIFO 档案,可以用 find /var -type p 或 -type s 查找!
范例七:搜寻档案当中含有 SGID 或 SUID 或 SBIT 的属性
[root@www ~]# find / -perm +7000
# 所谓的 7000 就是 ---s--s--t ,那么叧要含有有 s 或 t 的就列出,
# 所以当然要使用 +7000 ,使用 -7000 表示要含有 ---s--s--t 的所有三个权限,
# 因此,就是 +7000
选项或参数:
4. 额外可进行的动作:
 -exec command :command 为其他指令,-exec 后面可再接额外的指令来处理搜寻到的结果。
 -print :将结果打印到屏幕上,这个动作是预设动作
范例八:将上个范例找到的档案使用 ls -l 列出来~
[root@www ~]# find / -perm +7000 -exec ls -l {} \;
# 注意到,那个 -exec 后面的 ls -l 就是额外的指令,指令不支持命令别名,
# 所以仅能使用 ls -l 不可以使用 ll 喔!注意注意!
范例九:找出系统中,大于 1MB 的档案
[root@www ~]# find / -size +1000k

#使用通配符来查找档名
[root@www ~]# find /etc -name '*httpd*'
#文件名通配符
“*”表示通配任意的字符(字符个数不定)。
“?”表示通配任意单个字符。
“[]”表示通配括号里面的任意一个字符,可将[]内的字符单独取出使其与外面的字符构成一个文件名。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值