Ubuntu常用命令学习2

sort : 排序

sort [-fbMnrtuk] [file or stdin]
选项与参数:
-f  :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b  :忽略最前面的空格符部分;
-n  :使用『纯数字』进行排序(默认是以文字型态来排序的);
-r  :反向排序;
-u  :就是 uniq ,相同的数据中,仅出现一行代表;
-t  :分隔符,默认是用 [tab] 键来分隔;
-k  :以那个区间 (field) 来进行排序的意思

uniq : 忽略或报告重复行

uniq [-icu]
选项与参数:
-i   :忽略大小写字符的不同;
-c  :进行计数
-u  :只显示唯一的行

cut命令可以从一个文本文件或者文本流中提取文本列。

选项与参数:
-d  :后面接分隔字符。与 -f 一起使用;
-f  :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;
-c  :以字符 (characters) 的单位取出固定字符区间;

tee : 读取标准输入的数据,并将其内容输出成文件。

cat sec.log | tee file1  # 读取sec.log ,并生成file1文件
cat sec.log | tee - a file1   # 读取sec.log ,并追加,
cat sec.log  |tee  file1 file2 

history : 查看执行过的命令。

history  # 显示最近1000条历史命令
history 5   # 显示最后5条命令
!number# number为history之后命令前的序号:执行该条命令
!cat # 执行最后一条以cat开头的命令

more : 查看文件内容
less : 查看文件内容
head : 输出文件的开始的部分, 可以指定行数 , 默认显示10行

head -n 5 file 

tail : 查看文件尾部的内容。默认显示最后10行

tail file1
tail -n 5 file1
tail -f file1  # 动态监控文件

which # 查找其他命令的位置

 which ls

ls : 列出目标目录中所有的子目录和文件
格式:ls [选项] [目录名]
-a 用于显示所有文件和子目录(保罗点文件)。
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。
-r 将目录的内容清单以英文字母顺序的逆序显示。
-t 按文件修改时间进行排序,而不是按文件名进行排序。
-A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录)。
-F 在列出的文件名和目录名后添加标志。例如,在可执行文件后添加“*”,在目录名后添加“/”以区分不同的类型。
-R 如果目标目录及其子目录中有文件,就列出所有的文件。
. 和..
. 表示当前目录
.. 表示父目录

ls  # 列出当前目录下的文件和目录
ls  . # 列出当前目录下的文件和目录
ls ..   # 列出当前目录的父目录下的文件和目录
ls  /etc    # 列出/etc目录下的文件和目录

ls -l  # 以长格式显示文件信息
总用量 76
-rwxrwxrwx 1 will will    78 513 18:11 ss_start.sh

文件类型
- 普通文件
d 目录文件
b 块设备文件
c 字符设备文件
l 链接文件
p 管道文件
s socket文件

ls -l  /dev  # 可以查看字符设备文件和块设备文件
ls -l  /run  #  可以找到socket文件 
ls -l  /run/systemd/inhibit/ # 可以查看到管道文件

文件权限
rwxrwxr– : 三组rwx 分别表示 所有者、所有组、其他人 的权限。
r : 表示可读, 可以用数字 4 来表示
w : 标识可写 ,可以用数字 2 来表示
x : 表示可执行 , 可以用数字 1 来表示
- :表示没有相应权限 可以用数字 0 来表示
修改权限的方法:

chmod o+w  file1
chmod g-w file1
chmod go-w file1
chmod u=rwx file1

chmod 755  file1  # -rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
chmod 644  #  -rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限

#  其中:
#  u 代表所有者(user)
#  g 代表所有者所在的组群(group)
#  o 代表其他人,但不是u和g (other)
#  a 代表全部的人,也就是包括u,g和o

目录上的权限:
r : 表示是否可以读取目录下的文件名
w : 表示是否可以在目录下创建修改文件
x : 表示目录是否可以被搜索
有x权限后,就可以使用 ./a.py 的方式执行文件。

chown : 更改文件的所有者和所有组

chown root:root  file
chown root   file  
chown :root   file

特殊权限
SUID: 让一般用户在执行某些程序的时候,能够暂时具有该程序拥有者的权限,SUID对目录是无效的
SGID : 文件:如果SGID设置在二进制文件上,则不论用户是谁,在执行该程序的时候,它的有效用户组(effective group)将会变成该程序的用户组所有者(group id); 目录:如果SGID是设置在某目录上,则在该目录内所建立的文件或目录的用户组,将会是该目录的用户组。 SGID多用在特定的多人团队的项目开发上,在系统中用得较少
STICKY : 只针对目录有效,在具有SBit的目录下,用户若在该目录下具有w及x权限,则当用户在该目录下建立文件或目录时,只有文件拥有者与root才有权力删除。
rwsrw-r– 表明有suid标识,
rwxrws— 表明有sgid标识,
rwxrw-rwt 表明有stick标识,
当设置了特别权限位时,如果原来这个位上有x,那么这个特殊标示就显示为小写字母s,s,t ,否者就显示为大写S,S,T,此时他们不生效。

用户和用户组
linux使用文件保存用户信息 :

文件
#      /etc/passwd 用户账户信息。
#       /etc/shadow 安全用户账户信息。
#       /etc/group 组账户信息。
#       /etc/gshadow 安全组账户信息。
#       /etc/default/useradd 账户创建的默认值。
#       /etc/skel/ 包含默认文件的目录。
#       /etc/login.defs Shadow 密码套件配置。

useradd: 添加用户

# -c 备注 加上备注。并会将此备注文字加在/etc/passwd中的第5项字段中         
#  -d 用户主文件夹。指定用户登录所进入的目录,并赋予用户对该目录的的完全控制权        
#  -e 有效期限。指定帐号的有效期限。格式为YYYY-MM-DD,将存储在/etc/shadow         
#  -f 缓冲天数。限定密码过期后多少天,将该用户帐号停用       
#  -g 主要组。设置用户所属的主要组  www.cit.cn           
#  -G 次要组。设置用户所属的次要组,可设置多组         
# -M 强制不创建用户主文件夹         
#  -m 强制建立用户主文件夹,并将/etc/skel/当中的文件复制到用户的根目录下         
#  -p 密码。输入该帐号的密码         
#  -s shell。用户登录所使用的shell         
#  -u uid。指定帐号的标志符user id,简称uid

useradd user1 # 添加用户 user1
useradd  -d /home/userTT user2

userdel : 删除用户

userdel  user1  #
userdel -r user1

#  -r, --remove   用户主目录中的文件将随用户主目录和用户邮箱一起删除。在其它文件系统中的文件必须手动搜索并删除。
#    -f, --force    此选项强制删除用户账户,甚至用户仍然在登录状态。它也强制删除用户的主目录和邮箱,即使其它用户也使用同一个主目录或邮箱不属于指定的用户

usermod : 修改用户信息

# -c<备注>  修改用户帐号的备注文字。 
# -d登入目录>  修改用户登入时的目录。 
# -e<有效期限>  修改帐号的有效期限。 
# -f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。 
# -g<群组>  修改用户所属的群组。 
# -G<群组>  修改用户所属的附加群组。 
# -l<帐号名称>  修改用户帐号名称。 
# -L  锁定用户密码,使密码无效。 
# -s<shell>  修改用户登入后所使用的shell。 
# -u<uid>  修改用户ID。 

# -U  解除密码锁定。

usermod -G staff user2  # 将 newuser2 添加到组 staff 中 
usermod -l newuser1 newuser  # 修改 newuser 的用户名为 newuser1 
usermod -L newuser1  # 锁定账号 newuser1
usermod -U newuser1  # 解除对 newuser1 的锁定

groupadd : 添加组

groupadd group1 
groupadd -g  1000 group1  # 指定gid

groupdel : 删除组

groupdel group1 # 删除组

su与 sudo

su  : 切换用户,没有参数时,默认切换为root用户;
su   # 切换为root

## 推荐
su -   # 切换为root 并加载user1的环境配置
su -  user1 # 切换为user1 并加载user1的环境配置

sudo : 让当前用户暂时以管理员的身份root来执行命令。
Ubuntu 默认没有启用root用户, 普通用户执行一些特殊的操作时,使用sudo就可以让普通用户以root用户的身份执行命令
sudo有一个配置文件: /etc/sudoers ; 通过修改配置文件可以让指定用户使用sudo命令

man sudoers # 查看man手册
看下面几行: 
# Host alias specification # 配置Host_Alias:就是主机的列表 
Host_Alias      HOST_FLAG = hostname1, hostname2, hostname3
# User alias specification # 配置User_Alias:就是具有sudo权限的用户的列表 
User_Alias USER_FLAG = user1, user2, user3 

# Cmnd alias specification # 配置Cmnd_Alias:就是允许执行的命令的列表,命令前加上!表示不能执行此命令.命令一定要使用绝对路径,避免其他目录的同名命令被执行,造成安全隐患 ,因此使用的时候也是使用绝对路径! 
Cmnd_Alias      COMMAND_FLAG = command1, command2, command3 ,!command4

# 配置Runas_Alias:就是用户以什么身份执行(例如root,或者oracle)的列表 
Runas_Alias RUNAS_FLAG = operator1, operator2, operator3 


# User privilege specification  
# 配置权限的格式如下: 
#  USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG 

root    ALL=(ALL:ALL) ALL
如果不需要密码验证的话,则按照这样的格式来配置 
USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG 


格式为:用户名(用户别名) 主机名(主机别名)=[(运行用户或是Runas_Alias)可选] [tag可选]  可以执行的命令(或Cmmd_Alias)  这样描述语法很生硬,不易理解,举例子
user1  host1 = /bin/kill # user1 可以在host1上使用命令/bin/kill
user1  host1 = NOPASSWD: /bin/kill # user1 可以在host1上使用命令/bin/kill 同时可以不必输入密码(这里就是使用了NOPASSWD # 这个tag,默认是PASSWD)
user1  host1 = NOPASSWD: /bin/kill , PASSWORD: /bin/ls # user1 可以在host1上使用命令/bin/kill无需输入密码,但是使用/bin/ls则需要输入密码
user1  host1 = (opterator) /bin/kill # user1 可以在host1上使用命令/bin/kill但是必须是以operator用户运行这个命令,等价于# su -u opertor /bin/kill
user1  host1 = (:group_name) /bin/kill # user1 可以在host1上使用命令/bin/kill,且必须以group_name这个用户群组里面的用户来运行。
%group_name host1 = /bin/kill # 所有group_name里面的用户都可以在host1上执行/bin/kill(Linux中一般代表整个用户群组用# %group_name)
再举个实际例子,我之前对sudo su这个命令不理解,为什么我可以直接就su到root用户了呢,连密码都不需要?查看了一下sudoers文件才知道原来里面有这么一行:
xxx     ALL=NOPASSWD: /bin/su
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值